NdisMIndicateReceivePacket

VOID

  NdisMIndicateReceivePacket(

    IN NDIS_HANDLE  MiniportAdapterHandle,

    IN PPNDIS_PACKET  ReceivePackets,

    IN UINT  NumberOfPackets

    );

NdisMIndicateReceivePacketÀº NDIS¿¡°Ô ¼ö½ÅµÈ ÆÐŶµéÀÇ ¹è¿­ÀÌ Àû´çÇÑ ¹ÙÀεåµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµé¿¡°Ô Æ÷¿öµå µÇ±âÀ§ÇØ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë¸°´Ù.

¸Å°³º¯¼ö

MiniportAdapterHandle
MiniportInitialize¿¡ ´ëÇÑ ÀÔ·Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ReceivePackets
ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ¹è¿­À» °¡¸®Å²´Ù. °¢ µð½ºÅ©¸³ÅÍ´Â ¼ö½ÅµÈ µ¥ÀÌÅ͸¦ ÁöÁ¤Çϴ ȣÃâÀÚ¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù.

NumberOfPackets
ReceivedPacketsÀÎ ¹è¿­³»¿¡ ¾ó¸¶³ª ¸¹Àº Æ÷ÀÎÅ͵éÀÌ ÀÖ´ÂÁö¸¦ ÁöÁ¤ÇÑ´Ù. °ªÀº Àû¾îµµ 1ÀÌ µÉ °ÍÀÌ´Ù.

ÁÖ¼®

¹ö½º¸¶½ºÅÍ DMA NICµéÀÇ µå¶óÀ̹öµéÀº NdisMIndicateReceivePacketÀ¸·Î ¸ÖƼÆÐŶ ¼ö½Å ÀεðÄÉÀ̼ǵéÀ» ¸¸µêÀ¸·Î½á ÆÛÆ÷¸Õ½º¿¡ »ó´çÇÑ À̵帤À» º¸¿©ÁÙ °ÍÀÌ´Ù. ±×·¯³ª, ÆÐŶ ¿ì¼±±Ç, ŸÀÓ½ºÅÆÇÁµé°ú °°Àº ¼ö½Å ÆÐŶµéÀÇ out-of-band µ¥ÀÌÅ͸¦ °¡¸®Å°´Â µå¶óÀ̹öµéÀº Ç×»ó ÇϳªÀÇ ÆÐŶÀ¸·Î ÀÌ ÇÔ¼ö¸¦ ¶ÇÇÑ È£ÃâÇÒ ¼ö ÀÖ´Ù.

¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ NdisMIndicateReceivePacketÀ» È£ÃâÇÒ ¶§, NDIS´Â ´Ù¸£°Ô ReceivePackets¿¡ ¹Ì´ÏÆ÷Æ® °áÁ¤ ¼ø¼­·Î ÀÌ ÇÔ¼ö¸¦ ÀͽºÆ÷Æ®ÇÏ´Â ¹Ù¿îµåµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öÀÇ ProtocolReceivePacket ÇÔ¼ö¿¡ ´Ù¸£°Ô °¢ Æ÷ÀÎÅ͸¦ Àü´ÞÇÑ´Ù. ´Ù¸¥ ¹Ù¿îµåµÈ ÇÁ·ÎÅäÄݵ鿡°Ô, NDIS´Â °¢ ÆÐŶ Æ÷ÀÎÅ͸¦ ProtocolReceive ÇÔ¼öµéÀ» Àü´ÞÇÑ´Ù.

¸¸¾à ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ ½Ã½ºÅÛÀÌ OID_GEN_MEDIA_IN_USE Äõ¸®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ÇÊÅÍ ÆÐŰÁö¸¦ Á¦°øÇϴ ŸÀÔÀ¸·Î NIC ¹Ìµð¾öÀ» ÇÒ´çÇÏÁö ¾Ê´Â´Ù¸éÀº, NDIS´Â ProtocolReceivePacketsÀ» ÀͽºÆ÷Æ®ÇÏ´Â ¸ðµç ¹ÙÀεåµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµé¿¡°Ô µå¶óÀ̹öÀÇ ¼ö½Å ÀεðÄÉÀ̼ǵéÀ» Æ÷¿öµåÇÑ´Ù. ±×·¸Áö ¾Ê´Â´Ù¸éÀº, NDIS´Â ÀÚµ¿ÀûÀ¸·Î, ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ ¼ö½Å ÀεðÄÉÀ̼ǵ鿡°Ô Àû´çÇÑ ÇÊÅÍ ¶óÀ̺귯¸®¸¦ Àû¿ëÇÑ´Ù.

NdisMIndicateReceivePacketÀÇ ¾î¶² È£ÃâÀÚ´Â ´ÙÀ½°ú °°Àº ÆÐŶ ¹è¿­À» óÀ½ ¼³Á¤ÇØ¾ß ÇÑ´Ù.

  • °¢ ¿ä¼Ò´Â È£ÃâÀÚ°¡ ÆÐŶ pool·ÎºÎÅÍ ÇÒ´çÇØ¾ß ÇÏ´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù. °¢ ÆÐŶ µð½ºÅ©¸³ÅÍ´Â Àû¾îµµ PotocolReserved ¼½¼ÇÀÌ 16¹ÙÀÌÆ®¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù.
  • ±×·¯ÇÑ ÆÐŶ µð½ºÅ©¸³Åͳ»¿¡ ¿¬°áµÈ ¸ðµç ¹öÆÛ µð½ºÅ©¸³Å͵éÀº ¹öÆÛ pool·ÎºÎÅÍ ÇÒ´çµÇ¾îÁ®¾ß ÇÑ´Ù. ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ¹öÆÛ µð½ºÅ©¸³ÅÍ´Â ´ÜÁö ÀεðÄÉÀ̼ÇÀ» À§ÇØ ¼ö½ÅµÈ µ¥ÀÌÅ͸¦ ¸ÊÇϱâ À§ÇØ ¼ö½Å ¹öÆÛÀÇ full ¹üÀ§º¸´Ù ÀÛÀº ¼ö½ÅµÈ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â NIC¿¡ ¼ö½Å ¹öÆÛ¸¦ ¸ÊÇÎÇÏ´Â ¾î¶² ¹öÆÛ µð½ºÅ©¸³ÅÍ·Î NdisAdjustBufferLength¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. (NIC µå¶óÀ̹ö´Â ¸¶Âù°¡Áö·Î, ±×·¯ÇÑ ¹öÆÛ µð½ºÅ©¸³ÅÍÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ¾ò±â À§ÇØ NdisAdjustBufferLength·Î ¸ÊÇÎÀ» ÀçÁ¶Á¤ÇØ¾ß ÇÑ´Ù.)
  • ¸¸¾à ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ ¼ö½ÅµÈ ÆÐŶµéÀ» À§ÇÑ Å¸ÀÓ½ºÅÆÇÁµéÀ» ÀεðÄÉÀÌÆ®ÇÑ´Ù¸éÀº, NDIS_SET_PACKET_TME_RECEIVED¿Í NDIS_SET_PACKET_TIME_SENT ¸ÅÅ©·Î¸¦ »ç¿ëÇÏ¿© ÆÐŶ µð½ºÅ©¸³Å͵é°ú °ü·ÃµÈ NDIS_PACKET_OOB_DATA ³»¿¡ TimeReceived ¿Í TimeSent ¸â¹öµéÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ÀÏ´Ü Æ¯Á¤ ÆÐŶ ¹è¿­ÀÇ ¸ðµç ÆÐŶµéÀ» À§ÇØ ¼ö½Å ŸÀÓ½ºÅÆÇÁ¸¦ ¼³Á¤Çϱâ À§ÇØ NdisGetCurrentSystemTimeÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù.
  • out-of-band ºí·°³»¿¡ HeaderSize´Â ¹Ìµð¾öÀ» À§ÇØ °¢ ¼ö½ÅµÈ ÆÐŶÀÇ Çì´õ Å©±â¿Í ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ¿øÇÏ´Â ¹Ìµð¾öÀ¸·Î EthernetÀ» ¼±ÅÃÇÏ´Â µå¶óÀ̹ö´Â ÆÐŶ µð½ºÅ©¸³Å͸¦ ÇÒ´çÇÒ ¶§ NDIS_PACKET_OOB_DATA ºí·°ÀÇ HeaderSize¸¦ 14·Î ÃʱâÈ­ ÇÑ´Ù. µå¶óÀ̹ö´Â HeaderSize¸¦ ¼³Á¤Çϱâ À§ÇØ NDIS_SET_PACKET_HEADER_SIZE ¸ÅÅ©·Î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
  • ¸¸¾à µå¶óÀ̹ö°¡ ¼ö½Åµé·Î Ãß°¡ÀûÀÎ out-of-band Á¤º¸¸¦ ÀεðÄÉÀÌÆ®ÇÑ´Ù¸éÀº, MediaSpecificInformation¿¡ È£ÃâÀÚ ÇÒ´ç ¹öÆÛ³»¿¡ Á¦°øµÈ ¼ö ¹ÙÀÌÆ®ÀÇ Á¤º¸·Î SizeMediaSpecificInfo¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù.
  • ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ÀÌ·¯ÇÑ °ªµéÀ» ¼³Á¤Çϱâ À§ÇØ NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾Ê´Â´Ù¸éÀº, SizeMediaSpecificInfo¸¦ 0À¸·Î ¼³Á¤µÉ °ÍÀ̰í, MediaSpecficInformationÀº NULL·Î µÉ °ÍÀÌ´Ù.
  • ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ¸¸¾à ƯÁ¤ ÀεðÄÉÀ̼dz»¿¡¼­ ¸î¸î ¿ä¼ÒÀÇ ¹öÆÛ µð½ºÅ©¸³Å͵é°ú ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ¼ÒÀ¯±ÇÀ» À¯ÁöÇÒ Çʿ䰡 ÀÖ´Ù¸éÀº out-of-band µ¥ÀÌÅÍ ºí·°ÀÇ Status ¸â¹ö¸¦ NDIS_STATUS_RESOURCES·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. NDIS_STATUS_RESOURCES·Î ¼³Á¤ÇÏ´Â °ÍÀº NDIS¿¡°Ô °¢ ÇÁ·ÎÅäÄÝ¿¡°Ô ÆÐŶ µ¥ÀÌÅ͸¦ º¹»çÇϵµ·Ï ÇÏ°í ¹Ì´ÏÆ÷Æ®¿¡°Ô ´Ù½Ã ¸®ÅϵǾîÁö´Â °¢ ÆÐŶÀ» ÇØÁ¦Çϵµ·Ï ÇÔÀ¸·Î½á ¹ÙÀεåµÈ ÇÁ·ÎÅäÄÝÀÇ ProtocolReceive ÇÔ¼öµé¿¡°Ô Çѹø¿¡ Çѹø °¢ ±×·¯ÇÑ ÆÐŶÀ» ÀεðÄÉÀÌÆ®Çϵµ·Ï ÇÑ´Ù.
  • ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ÆÐŶ µð½ºÅ©¸³Å͸¦ À§·Î ÀεðÄÉÀÌÆ®Çϱâ Àü¿¡ Áö¿ª º¯¼ö¿¡ out-of-band µ¥ÀÌÅÍ ºí·°ÀÇ Status ¸â¹ö¿¡ ¼³Á¤ÇÒ ¼ö ÀÖµû. ¾Æ·¡ ´õ ÀÚ¼¼ÇÑ ¼³¸íÀ» ÀÖ´Â °Íó·³, NdisMIndicateReceivePacketÀ» ¸®ÅÏÇÒ ¶§, ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â Áï½Ã ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ ¹öÆÛµéÀ» Àç¿ä±¸ÇÒ ¼ö ÀÖ´ÂÁö¸¦ °áÁ¤Çϱâ À§ÇØ ÀúÀåµÈ ÆÐŶÀÇ StatusÀ» Ã¼Å©ÇØ¾ß ÇÑ´Ù.
¸¸¾à Á÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ NDIS_STATUS_RESOURCES·Î ÆÐŶÀÇ Status ¸â¹ö¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù¸éÀº NdisMIndicateReceivePacket¿¡ ´ëÇÑ È£ÃâÀº °ü½ÉÀÖ´Â ÇÁ·ÎÅäÄݵéÀÇ ¹èŸÀûÀ̰í Àбâ Àü¿ëÀÇ °¢ ÆÐŶ¿¡ ¿¬°áµÈ ¹öÆÛµé¿¡ ´ëÇÑ Á¢±ÙÀ» Á¦°øÇÑ´Ù. ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ´ÙÀ½°ú °°ÀÌ ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ ¹öÆÛµéÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ¾ò´Â´Ù.

  • ¸¸¾à out-of-band µ¥ÀÌÅÍ ºí·°³»¿¡ StatusÀÌ NdisMIndicateReceivePacketÀ¸·ÎºÎÅÍ ¸®ÅÏµÈ °ªÀÌ NDIS_STATUS_SUCCESS·Î ¼³Á¤µÈ´Ù¸éÀº, ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â Áï½Ã ÆÐŶ¿¡ ¿¬°áµÈ ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í ¸ðµç ¹öÆÛµéÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ¾ò´Â´Ù. ¿¬¼ÓÀûÀÎ ¼ö½Å ÀεðÄÉÀ̼ǵ鿡¼­ Àç»ç¿ëÀ» À§ÇØ ÀÌ·¯ÇÑ µð½ºÅ©¸³Å͵éÀ» ÁغñÇÒ ¼ö ÀÖ´Ù.
  • ¸¸¾à Status°¡ NdisMIndicateReceivePacketÀ¸·ÎºÎÅÍ ¸®ÅϰªÀÌ NDIS_STATUS_PENDINGÀ¸·Î ¼³Á¤µÈ´Ù¸éÀº, ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NDIS°¡ °è¼ÓÇØ¼­ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ MiniportReturnPacket ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÆÐŶ¿¡ ¿¬°áµÈ ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í ¸ðµç ¹öÆÛµéÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ¾ò´Â´Ù. ±×¸®°í³ª¼­ °è¼ÓÀûÀÎ ¼ö½Å ÀεðÄÉÀ̼ǵ鿡¼­ Àç»ç¿ëÀ» À§ÇØ ÀÌ·¯ÇÑ µð½ºÅ©¸³Å͵éÀ» ÁغñÇÒ ¼ö ÀÖ´Ù.
Á÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NdisMIndicateReceivePacketÀÌ Á¦¾î¸¦ ¸®ÅÏÇÏ ¶§ ÀεðÄÉÀÌÆ®µÈ ÆÐŶµéÀÇ ¼ÒÀ¯±ÇÀ» ¾ò´Â °ÍÀ» °áÁ¤Çϱâ À§ÇØ NDIS_GET_PACKET_STATUS¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NdisMIndicateReceivePacketÀÇ ¸®ÅÏÀ¸·Î ÀεðÄÉÀÌÆ®µÈ ÆÐŶµéÀÇ Status¸¦ Á¶»çÇÒ Çʿ䰡 ¾ø´Ù. ±× ´ë½Å¿¡, Á÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ÆÐŶ µð½ºÅ©¸³Å͸¦ À§·Î ÀεðÄÉÀÌÆ®Çϱâ Àü¿¡ Áö¿ª º¯¼ö¿¡ ÆÐŶÀÇ Status °ªÀ» ÀúÀåÇØ¾ß ÇÑ´Ù. NdisMIndicateReceivePacketÀ» ¸®ÅÏÇÒ ¶§, ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ÀúÀåµÈ ÆÐŶÀÇ Status¸¦ Ã¼Å©ÇØ¾ß ÇÑ´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ ÆÐŶÀÇ Status¸¦ ÆÐŶ µð½ºÅ©¸³Å͸¦ À§·Î ÀεðÄÉÀÌÆ®Çϱâ Àü¿¡ NDIS_STATUS_RESOURCES·Î ¼³Á¤ÇÑ´Ù¸éÀº, ÀÚ½ÅÀÇ MiniportReturnPacket¸¦ È£ÃâÇÔÀ¸·Î½á NdisMIndicateReceivePacket¸¦ ¸®ÅÏÇÑ ÈÄ¿¡ Áï½Ã ÆÐŶ µð½ºÅ©¸³Å͸¦ ÀçÁÖÀåÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡, NDIS´Â ÆÐŶ µð½ºÅ©¸³Å͸¦ ¸®ÅÏÇϱâ À§ÇØ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ MiniportReturnPacket ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ ÆÐŶ µð½ºÅ©¸³Å͸¦ À§·Î ÀεðÄÉÀÌÆ®Çϱâ Àü¿¡ ÆÐŶÀÇ Status¸¦ NDIS_STATUS_SUCCESS·Î ¼³Á¤ÇÑ´Ù¸éÀº ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NDIS°¡ °è¼ÓÇØ¼­ ÆÐŶ µð½ºÅ©¸³Å͸¦ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹öÀÇ MiniportReturnPacket ÇÔ¼ö¿¡ ¸®ÅÏÇÒ ¶§±îÁöÆÐŶ µð½ºÅ©¸³Å͸¦ Àç¿ä±¸ÇÒ Çʿ䰡 ¾ø´Ù.

¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö°¡ ÀεðÄÉÀÌÆ®µÈ ÆÐŶÀÇ µð½ºÅ©¸³ÅÍÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ¾ò´Â´Ù¸éÀº, NdisZeroMemory·Î NDIS_OOB_DATA_FROM_PACKET¿¡ ÀÇÇØ ¸®ÅÏµÈ Æ÷ÀÎÅ͸¦ Àü´ÞÇÔÀ¸·Î½á Àç»ç¿ëÀ» À§ÇØ °ü·ÃµÈ out-of-band µ¥ÀÌÅÍ ºí·°À» ÁغñÇÒ ¼ö ÀÖ´Ù. ´ëü·Î, ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â °£´ÜÈ÷ NDIS_SET_PACKET_XXX ¸ÅÅ©·Îµé·Î ȤÀº NDIS_OOB_DATA_FROM_PACKET¿¡ ÀÇÇØ ¸®ÅÏµÈ Æ÷ÀÎÅÍ·Î °è¼ÓÀûÀÎ ¼ö½Å¿¡¼­ °ü·ÃµÈ ¸â¹öµéÀ» ¸®¼ÂÇÒ ¼ö ÀÖ´Ù.

¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â NdisZeroMemory·Î ÆÐŶ µð½ºÅ©¸³ÅÍ Æ÷ÀÎÅ͸¦ Àü´ÞÇÒ Çʿ䰡 ¾ø´Ù. ÀÌ·¯ÇÑ ÇÏ´Â µ¿¾È °è¼ÓÀûÀÎ ÀεðÄÉÀ̼ǵéÀ» À§ÇØ Àç»ç¿ëÇÒ ¼ö ¾øµµ·Ï ÇÔÀ¸·Î½á ÆÐŶ µð½ºÅ©¸³Å͸¦ ÆÄ±«ÇÑ´Ù. °ü·ÃµÈ out-of-band µ¥ÀÌÅ͸¦ Ŭ¸®¾îÇϱâ À§ÇØ, µå¶óÀ̹ö´Â NDIS_OOB_DATA_FROM_PACKET¿¡ ÀÇÇØ ¸®ÅÏµÈ Æ÷ÀÎÅ͸¦ Àü´ÞÇØ¾ß ÇÑ´Ù.

NdisMIndicareReceivePacket¿¡°Ô Àü´ÞµÈ ÆÐŶ ¹è¿­µéÀº NDIS ¶óÀ̺귯¸®ÀÇ ¼ö½Å ÀεðÄÉÀÌ¼Ç ÄÚµå °æ¿À³»¿¡ ÆäÀÌÁö ¾Æ¿ô(page out)µÉ ¼ö ¾ø´Â ½ºÅÿ¡ ÇÒ´çµÇ¾îÁú ¼ö ÀÖ´Ù.

NDIS°¡ ProtocolReceivePacket ÇÔ¼ö¸¦ ÀͽºÆ÷Æ®ÇÏ´Â µå¶óÀ̹öÀÇ ProtocolReceive ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§, ProtocolReceive ÇÔ¼ö´Â ÆÐŶ ¹è¿­ÀÇ ºÎºÐÀ¸·Î ÀεðÄÉÀÌÆ®µÇ´Â µé¾î¿À´Â ÆÐŶ°ú °ü·ÃµÈ out-of-band Á¤º¸¸¦ °Ë»öÇϱâ À§ÇØ NDIS_GET_ORIGINAL_PACKET°ú NdisGetReceivePacketÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù.

NdisMIndicateReceivePacket¸¦ È£ÃâÇÏ´Â ¾î¶² ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â full ÆÐŶµéÀ» ÀεðÄÉÀÌÆ®ÇØ¾ß ÇÑ´Ù. °á°úÀûÀ¸·Î, ±×·¯ÇÑ µå¶óÀ̹ö´Â MiniportTransferDataÇÔ¼ö¸¦ °¡ÁöÁö ¾Ê´Â´Ù.

NdisMIndicateReceivePacketÀÇ Á÷·ÄÈ­µÈ È£ÃâÀÚµéÀº IRQL DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇØ¾ßÇÑ´Ù. Á÷·ÄÈ­µÈ NdisMIndicateReceivePacketÀÇ È£ÃâÀÚµéÀº IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.