NdisMArcIndicateReceive
VOID
NdisMArcIndicateReceive(
IN NDIS_HANDLE MiniportAdapterHandle,
IN PUCHAR HeaderBuffer,
IN PUCHAR DataBuffer,
IN UINT Length
);
|
NdisMArcIndicateReceiveÇÔ¼ö´Â NDIS¿¡°Ô ARCNETÆÐŶ(ȤÀº ¸î¸î ÆÐŶÀÇ Ã³À½ ·è¾îÇìµå À§Ä¡)ÀÌ µµÂøÇؼ NDIS°¡ ¹ÞÀº ÆÐŶÀ» ¹ÙÀεùµÈ ÇÁ·ÎÅäÄݵ鿡°Ô Æ÷¿öµå ÇÒ¼ö ÀÖÀ½À» ¾Ë¸°´Ù.
¸Å°³º¯¼ö
- MiniportAdapterHandle
- MiniportInitializeÇÔ¼ö¿¡°Ô óÀ½À¸·Î ÀԷµǴ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- HeaderBuffer
- ÆÐŶ Çì´õÀÇ º£À̽º °¡»óÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù. Çì´õ ¹öÆÛ´Â ÇÁ·ÎÅäÄÝID¸¦ ¾Õ¼´Â ¸ðµç ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÑ´Ù.
- DataBuffer
- ¼ö½ÅµÈ ÆÐŶ µ¥ÀÌŸÀÇ Length¹ÙÀÌÆ®µéÀ» Æ÷ÇÔÇÏ´Â ¹öÆÛÀÇ °¡»ó º£À̽º ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.
- Length
- DataBuffer¿¡ ¹öÆÛ³»ÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
ÁÖ¼®
¸¸¾à Á÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®°¡ ´ÐÀ» NdisMediumArcnet878_3ŸÀÔÀ¸·Î½á ȤÀº OID_GEN_MEDIA_IN_USEÄõ¸®¿¡´ëÇÑ ÀÀ´äÀ¸·Î NdisMediumArcnetRaw·Î½á ¼³¸íÇÑ´Ù¸é, ¸¸¾à µå¶óÀ̹ö°¡ ¸ÖƼ ÆÐŶÀ» ¼ö½ÅÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù¸é, Á÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®´Â NdisMArcIndicateReceiveÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ¸ÖƼÆÐŶ¼ö½ÅÀ» Áö¿øÇÏ´Â ¾î¶² ¹Ì´ÏÆ÷Æ®´Â ¹Ìµð¾ö ŸÀÔ ÁöÁ¤ NdisM..IndicateReceiveÇÔ¼öµéÀ» È£ÃâÇϱ⺸´Ù´Â ÆÐŶ ¹è¿·Î NdisMIndicateReceivePacketÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
¹Ì´ÏÆ÷Æ®°¡ NdisMArcIndicateReceiveÇÔ¼ö¸¦ È£ÃâÇÒ¶§, NDIS´Â ÆÐŶÇì´õÀÇ Æ÷ÀÎÅÍ¿Í ÆÐŶ³»ÀÇ µ¥ÀÌŸÀÇ ¸î¸î ȤÀº ¸ðµç Æ÷ÀÎÅ͸¦ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö(µé)ÀÇ ProtocolReceiveÇÔ¼ö(µé)¿¡°Ô ³Ñ±ä´Ù. ÀεðÄÉÀÌÆ®¸¦ ¹ÞÀº °¢ ÇÁ·ÎÅäÄÝÀº ´ÙÀ½°ú °°ÀÌ ÇÒ¼ö ÀÖ´Ù.:
- ÀεðÄÉÀ̼ÇÀÌ ÇÁ·ÎÅäÄÝ Å¬¶óÀÌ¾ðÆ®¿¡°Ô Èï¹Ì°¡ ÀÖ´ÂÁö¸¦ °áÁ¤ÇϱâÀ§ÇØ ÆÐŶ³»ÀÇ Çì´õ¿Í µ¥ÀÌŸ¸¦ Á¶»çÇÑ´Ù.
- ¸¸¾à ±×·¸´Ù¸é, Çì´õȤÀº µ¥ÀÌŸ¸¸ÅÀÇ Ä«ÇÇ´Â NdisMoveMemoryÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÅäÄÝ ÇÒ´çÀÇ ¸Þ¸ð¸®¿¡¼ º¼¼ö ÀÖ´Ù.
- ÃæºÐÈ÷ üÀÎÈµÈ ¹öÆÛ µð½ºÅ©¸³Å͵é·Î ÆÐŶ µð½ºÅ©¸³Å͸¦ ÇÒ´çÇÔ¿¡ÀÇÇØ ±×¸®°í NdisTransferDataµ¥ÀÌŸ¸¦ È£ÃâÇÔ¿¡ÀÇÇØ ³²¾ÆÀÖ´Â µ¥ÀÌŸ°¡ ÀÖ´Ù¸é ¾ò¾î¿Â´Ù. NdisTransferDataÇÔ¼öÀÇ È£ÃâÀº µ¥ÀÌŸ¸¦ ÇÁ·ÎÅäÄÝ Á¦°ø ÆÐŶÀ¸·Î Ä«ÇÇÇϱâÀ§ÇØ ´Ð µå¶óÀ̹öÀÇ MiniportTransferDataÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.
NdisMArcIndicateReceiveÇÔ¼ö¸¦ ÅëÇÑ ÀεðÄÉÀÌÆ®¸¦ ¹Þ´Â ¾î¶² ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡´ëÇØ¼, HeaderBuffer¿Í DataBufferÁÖ¼ÒµéÀº ProtocolReceiveÇÔ¼ö¿¡´ëÇÑ ÇöÀç È£Ã⵿¾È¿¡¸¸ À¯È¿ÇÏ´Ù. ±×¸®°í ÀÌ·¯ÇÑ ¹öÆÛµéÀº ÀбâÀü¿ëÀÌ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ÀÌ·¯ÇÑ °ü°èµÈ ¹öÆÛµé·Î ÀεðÄÉÀÌÆ®µÈ ÆÐŶ¿¡´ëÇÑ Æ÷ÀÎÅ͸¦ ¾òÀ»¼ö ¾øÀ»»Ó´õ·¯ Â÷ÈÄ »ç¿ëÀ» À§ÇÑ ÀÌ·¯ÇÑ ¹öÆÛµéÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ»¼ö ¾ø´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ±×·± ÆÐŶÀ¸·ÎºÎÅÍ ÇÊ¿ä·ÎÇÏ´Â ¾î¶² µ¥ÀÌŸ´Â ¼ö½Å ÀεðÄÉÀÌÆ®µ¿¾È¿¡ Ä«ÇÇµÇ°í º¹»çµÇ¾î¾ß¸¸ ÇÑ´Ù.
Çì´õ³»ÀÇ µ¥ÀÌŸ´Â ´Ð¿¡¼ ¼ö½ÅµÈ °Í°ú °°´Ù. ¹Ì´ÏÆ÷Æ®´Â ´ÐÀÌ ¼ö½ÅÇÑ µ¥ÀÌŸ·ÎºÎÅÍ ¾î¶² Çì´õµé ȤÀº Æ®·¹ÀÏ·¯µéÀ» Á¦°ÅÇÒ Çʿ䰡 ¾ø´Ù.
Àü¼Û µå¶óÀ̹ö´Â ¹Ìµð¾öÀÇ ¿ä±¸¿¡´ëÇØ ³Ê¹« ÀÛÀº ¾î¶² ÆÐŶ¿¡´ëÇÑ ÆÐµùÀ» Ãß°¡ÇÑ´Ù. ¼ö½ÅÇÏ´Â ¹Ì´ÏÆ÷Æ®´Â µ¥ÀÌŸ³»¿¡ ±×·± ÆÐµùÀ» Æ÷ÇÔÇÒ¼ö ÀÖ°í ±× ÈÄ¿¡ ÀεðÄÉÀÌÆ®ÇÏ´Â ±æÀ̸¦ Æ÷ÇÔÇÒ¼ö ÀÖ´Ù. °¢ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝÀº ¾î¶² ±×·± ÆÐµùÀ» °Ë»çÇÏ°í ±×°ÍÀ» ¹«½ÃÇϴ åÀÓÀÌ ÀÖ´Ù.
´ÜÁö Á÷·ÂÈµÈ ¹Ì´ÏÆ÷Æ®µé¸¸ÀÌ NdisMArcIndicateReceiveÇÔ¼ö¸¦ È£ÃâÇÒ¼ö ÀÖÀ½À» ±â¾ïÇ϶ó.
NdisMArcIndicateReceiveÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL DISPATCH_LEVEL¿¡¼ µ¿ÀÛÇÑ´Ù.
|