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ÇÔ¼ö(µé)¿¡°Ô ³Ñ±ä´Ù. ÀεðÄÉÀÌÆ®¸¦ ¹ÞÀº °¢ ÇÁ·ÎÅäÄÝÀº ´ÙÀ½°ú °°ÀÌ ÇÒ¼ö ÀÖ´Ù.:

  1. ÀεðÄÉÀ̼ÇÀÌ ÇÁ·ÎÅäÄÝ Å¬¶óÀÌ¾ðÆ®¿¡°Ô Èï¹Ì°¡ ÀÖ´ÂÁö¸¦ °áÁ¤ÇϱâÀ§ÇØ ÆÐŶ³»ÀÇ Çì´õ¿Í µ¥ÀÌŸ¸¦ Á¶»çÇÑ´Ù.
  2. ¸¸¾à ±×·¸´Ù¸é, Çì´õȤÀº µ¥ÀÌŸ¸¸Å­ÀÇ Ä«ÇÇ´Â NdisMoveMemoryÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÅäÄÝ ÇÒ´çÀÇ ¸Þ¸ð¸®¿¡¼­ º¼¼ö ÀÖ´Ù.
  3. ÃæºÐÈ÷ üÀÎÈ­µÈ ¹öÆÛ µð½ºÅ©¸³Å͵é·Î ÆÐŶ µð½ºÅ©¸³Å͸¦ ÇÒ´çÇÔ¿¡ÀÇÇØ ±×¸®°í NdisTransferDataµ¥ÀÌŸ¸¦ È£ÃâÇÔ¿¡ÀÇÇØ ³²¾ÆÀÖ´Â µ¥ÀÌŸ°¡ ÀÖ´Ù¸é ¾ò¾î¿Â´Ù. NdisTransferDataÇÔ¼öÀÇ È£ÃâÀº µ¥ÀÌŸ¸¦ ÇÁ·ÎÅäÄÝ Á¦°ø ÆÐŶÀ¸·Î Ä«ÇÇÇϱâÀ§ÇØ ´Ð µå¶óÀ̹öÀÇ MiniportTransferDataÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.
NdisMArcIndicateReceiveÇÔ¼ö¸¦ ÅëÇÑ ÀεðÄÉÀÌÆ®¸¦ ¹Þ´Â ¾î¶² ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡´ëÇØ¼­, HeaderBuffer¿Í DataBufferÁÖ¼ÒµéÀº ProtocolReceiveÇÔ¼ö¿¡´ëÇÑ ÇöÀç È£Ã⵿¾È¿¡¸¸ À¯È¿ÇÏ´Ù. ±×¸®°í ÀÌ·¯ÇÑ ¹öÆÛµéÀº ÀбâÀü¿ëÀÌ´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ÀÌ·¯ÇÑ °ü°èµÈ ¹öÆÛµé·Î ÀεðÄÉÀÌÆ®µÈ ÆÐŶ¿¡´ëÇÑ Æ÷ÀÎÅ͸¦ ¾òÀ»¼ö ¾øÀ»»Ó´õ·¯ Â÷ÈÄ »ç¿ëÀ» À§ÇÑ ÀÌ·¯ÇÑ ¹öÆÛµéÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ»¼ö ¾ø´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ±×·± ÆÐŶÀ¸·ÎºÎÅÍ ÇÊ¿ä·ÎÇÏ´Â ¾î¶² µ¥ÀÌŸ´Â ¼ö½Å ÀεðÄÉÀÌÆ®µ¿¾È¿¡ Ä«ÇÇµÇ°í º¹»çµÇ¾î¾ß¸¸ ÇÑ´Ù.

Çì´õ³»ÀÇ µ¥ÀÌŸ´Â ´Ð¿¡¼­ ¼ö½ÅµÈ °Í°ú °°´Ù. ¹Ì´ÏÆ÷Æ®´Â ´ÐÀÌ ¼ö½ÅÇÑ µ¥ÀÌŸ·ÎºÎÅÍ ¾î¶² Çì´õµé ȤÀº Æ®·¹ÀÏ·¯µéÀ» Á¦°ÅÇÒ Çʿ䰡 ¾ø´Ù.

Àü¼Û µå¶óÀ̹ö´Â ¹Ìµð¾öÀÇ ¿ä±¸¿¡´ëÇØ ³Ê¹« ÀÛÀº ¾î¶² ÆÐŶ¿¡´ëÇÑ ÆÐµùÀ» Ãß°¡ÇÑ´Ù. ¼ö½ÅÇÏ´Â ¹Ì´ÏÆ÷Æ®´Â µ¥ÀÌŸ³»¿¡ ±×·± ÆÐµùÀ» Æ÷ÇÔÇÒ¼ö ÀÖ°í ±× ÈÄ¿¡ ÀεðÄÉÀÌÆ®ÇÏ´Â ±æÀ̸¦ Æ÷ÇÔÇÒ¼ö ÀÖ´Ù. °¢ ¹ÙÀεùµÈ ÇÁ·ÎÅäÄÝÀº ¾î¶² ±×·± ÆÐµùÀ» °Ë»çÇÏ°í ±×°ÍÀ» ¹«½ÃÇϴ åÀÓÀÌ ÀÖ´Ù.

´ÜÁö Á÷·ÂÈ­µÈ ¹Ì´ÏÆ÷Æ®µé¸¸ÀÌ NdisMArcIndicateReceiveÇÔ¼ö¸¦ È£ÃâÇÒ¼ö ÀÖÀ½À» ±â¾ïÇ϶ó.

NdisMArcIndicateReceiveÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL DISPATCH_LEVEL¿¡¼­ µ¿ÀÛÇÑ´Ù.