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¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
|