MiniportSendPackets

VOID

  MiniportSendPackets(

    IN NDIS_HANDLE  MiniportAdapterContext,

    IN PPNDIS_PACKET  PacketArray,

    IN UINT  NumberOfPackets

    );

MiniportSendPacketsÀº ¸¸¾à µå¶óÀ̹ö°¡ MiniportSend, MiniportWanSend, MiniportCoSendPackets ÇÔ¼ö¸¦ °¡ÁöÁö ¾Ê´Â´Ù¸éÀº ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù. MiniportSendPacketsÀº ³×Æ®¿öÅ©À» °ÉÃÄ ÆÐŶ Æ÷ÀÎÅ͵éÀÇ ¹è¿­·Î¼­ ÁöÁ¤µÈ ¸î¸î ÆÐŶµéÀ» Àü¼ÛÇÑ´Ù.

¸Å°³º¯¼ö

MiniportAdapterContext
µå¶óÀ̹ö°¡ MiniportInitialize¿¡ ÀÇÇØ ¼³Á¤µÈ NIC ´ç »óŸ¦ À¯ÁöÇÏ´Â ¹Ì´ÏÆ÷Æ® ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

PacketArray
ÆÐŶ ¹è¿­³»¿¡¼­ °¢ ¿ä¼Ò¸¦ °¡¸®Å²´Ù. Àü¼ÛµÇ¾îÁö´Â ÆÐŶÀ» À§ÇØ ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ´Â °¢ ¿ä¼Ò·Î¼­, ÆÐŶ ¿ì¼±±Ç, ¼±ÅÃÀûÀΠŸÀÓ ½ºÅÆÇÁ, MiniportSendPackets¿¡ ÀÇÇØ ¼³Á¤µÈ ÆÐŶ ´ç »óÅÂ¿Í °°Àº Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â °ü·ÃµÈ out-of-band µ¥ÀÌÅÍ ºí·°°ú °°Àº.

NumberOfPackets
PacketArray¿¡¼­ ÆÐŶ µð½ºÅ©¸³Å͵鿡 ´ëÇÑ Æ÷ÀÎÅÍµé ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

ÁÖ¼®

¸¸¾à µå¶óÀ̹ö°¡ MiniportSendPackets ¿Í MiniportSend¸¦ ÃʱâÈ­ÇÒ ¶§ µî·ÏÇÑ´Ù¸éÀº, NDIS´Â Ç×»ó MiniportSendPackets ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ¸¸¾à µå¶óÀ̹ö°¡ MiniportSendPackets ¿Í MiniportCoSendPackets ÇÔ¼öµéÀ» µî·ÏÇÑ´Ù¸éÀº, NDIS´Â ¾î¶² ¹ÙÀεåµÈ ÇÁ·ÎÅäÄÝÀÌ NdisCoSendPacketsÀ» È£ÃâÇÒ ¶§ MiniportCoSendPackets ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

ÀÔ·Â ÆÐŶ ÆÐŶ µð½ºÅ©¸³ÅÍ Æ÷ÀÎÅ͵éÀº ÆÐŶ ¹è¿­À» ¼³Á¤ÇÑ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡ ÀÇÇØ ÆÐŶµéÀÌ ³×Æ®¿öÅ©¸¦ °ÉÃÄ º¸³»¾îÁöÁú ¼ø¼­¿¡ µû¶ó ¼ø¼­È­µÇ¾îÁø´Ù. NDIS ¶óÀ̺귯¸®´Â MiniportSendPackets¿¡ °¢ ÆÐŶ ¹è¿­À» Á¦ÃâÇÒ ¶§ ÇÁ·ÎÅäÄÝ °áÁ¤ ¼ø¼­µéÀ» º¸ÀüÇÑ´Ù.

°á°úÀûÀ¸·Î, MiniportSendPacketsÀº °¢ ÆÐŶÀ» ¾î¶² ÁÖ¾îÁø ¹è¿­¿¡¼­ ¼ø¼­ÀûÀ¸·Î Àü¼ÛÇØ¾ß ÇÑ´Ù. MiniportSendPacketsÀº ÆÐŶ¿¡ ¿¬°áµÈ ¹öÆÛ µð½ºÅ©¸³ÅÍµé ¼ö¿Í ¿ä±¸µÈ Àü¼ÛÀÇ ¹ÙÀÌÆ®µé ÃÑ Å©±â¿Í °°Àº Á¤º¸¸¦ ¾ò±â À§ÇØ(extract) NdisQueryPacketÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù. Àü¼ÛµÇ¾îÁú µ¥ÀÌÅÍ¿¡ Æ÷ÇÔÇÑ °¢ ¹öÆÛµé¿¡ ´ëÇÑ Á¤º¸¸¦ »©¿À±â À§ÇØ NdisGetFirstBufferFromPacket, NdisQueryBuffer, NdisQueryBufferOffset¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. Mi

niportSendPacketsÀº °ü·ÃµÈ NDIS_GET_PACKET_TIME_TO_SEND ¿Í NDIS_GET_MEDIA_SPECIFIC_INFO ¸ÅÅ©·ÎµéÀ» »ç¿ëÇÔÀ¸·Î½á °¢ ÆÐŶ°ú °ü·ÃµÈ ¾î¶² ÇÁ·ÎÅäÄÝ Á¦°ø out-of-band Á¤º¸¸¦ °Ë»öÇÒ ¼ö ÀÖ´Ù.

°¢ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportSendPackets ÇÔ¼ö¿¡¼­ NICÀ¸·Î Àü´ÞÇϱâ À§ÇØ ¼³Á¤µÈ ÆÐŶ µð½ºÅ©¸³Å͵é·Î ÆÐŶ ¹è¿­µéÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. Áï, ÇÁ·ÎÅäÄÝÀº ÇÁ·ÎÅäÄÝÀÌ ¹ÙÀεåµÇ¾îÁö´Â ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ ¼±ÅõǾîÁö´Â ¹Ìµð¾ö ŸÀÔ¿¡ Åä´ë·Î ¿ä±¸µÇ¾îÁö´Â °ÍÀÌ ¹«¾ùÀÎÁö¸¦ °áÁ¤Çϴ åÀÓÀ» Áø´Ù. ±×·¯³ª ÇÁ·ÎÅäÄÝÀº MiniportSend°¡ ¸¸¾à ¹Ìµð¾öÀÌ Àü¼ÛÇÒ °Íµé¿¡ ´ëÇØ ÃÖ¼Ò ±æÀÌ ¿ä±¸¸¦ ÇÑ´Ù¸éÀº pad ÇØ¾ß µÇ´Â ¼±ÅÃµÈ ¹Ìµð¾öÀ» À§ÇØ ÃÖ¼Òº¸´Ù ÀÛ°Ô ¿¬°áµÈ ¹öÆÛ µð½ºÅ©¸³Å͵鿡 ÀÇÇØ ¸ÊµÈ net ÆÐŶµéÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.

³ôÀº °èÃþ ÇÁ·ÎÅäÄݰú ¾Æ·¡ °èÃþ NIC µå¶óÀ̹ö»ó¿¡ ÀÖ´Â ¾î¶² NDIS intermediate µå¶óÀ̹ö´Â ¾î¶² ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö·Î¼­ ¾Æ·¡ ¹Ì´ÏÆ÷Æ®¿Í ¼±ÅÃµÈ ¹Ìµð¾ö¿¡ ¿ä±¸µé¿¡ µû¶ó ÆÐŶµéÀ» ¼³Á¤Çϱâ À§ÇØ °°Àº Ã¥ÀÓÀ» °¡Áø´Ù. ±×·¯ÇÑ ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö¿¡ ÀÇÇØ ÇÒ´çµÈ fresh ÆÐŶ µð½ºÅ©¸³Åͳ»¿¡¼­ °¢ µé¾î¿À´Â º¸³»±â ÆÐŶÀ» repackage¸¦ ÇØ¾ß ÇÑ´Ù.

MiniportSendPackets´Â ´ÜÁö ÀÚ½ÅÀÇ ¸ñÀûÀ» À§ÇØ NDIS_PACKET ±¸Á¶Ã¼³»¿¡ MiniportReserved¿¡ 8¹ÙÀÌÆ® ¿µ¿ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î, º¸³»±â ¿ä±¸µéÀ» ¾Æ·¡ NIC µå¶óÀ̹ö¿¡ º¸³»±â ¿ä±¸µéÀ» Æ÷¿öµåÇÏ´Â NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö°¡ ÆÐŶ pool·ÎºÎÅÍ ÇÒ´çÇÑ fresh ÆÐŶ µð½ºÅ©¸³Å͵鳻¿¡ MiniportSendPackets ÇÔ¼ö¿¡ ´ëÇÑ ÁÖ¾îÁø ÆÐŶµéÀ» repackageÇØ¾ß ÇÏ°í ±×·¡¼­ ¾Æ·¡ ¹Ì´ÏÆ÷Æ®´Â »ç¿ëÇÒ ¼ö ÀÖ´Â MiniportReserved ¿µ¿ªÀ» °¡Áø´Ù.

¾Æ·¡ µå¶óÀ̹öÀÇ MiniportQueryInformation ÇÔ¼ö°¡ NDIS_MAC_OPTION_NO_LOOPBACK Ç÷¡±×¸¦ NDIS ¶óÀ̺귯¸®°¡ OID_GEN_MAC_OPTIONS¸¦ Äõ¸®ÇÒ ¶§ ¼³Á¤ÇÑ´Ù¸éÀº, ¹Ì´ÏÆ÷Æ®´Â ¾î¶² ÆÐŶµéÀ» ·çÇÁ¹é ½Ãµµ¸¦ ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. NDIS ¶óÀ̺귯¸®´Â ±×·¯ÇÑ µå¶óÀ̹ö¸¦ À§ÇØ ¼ÒÇÁÆ®¿þ¾î ·çÇÁ¹é Áö¿øÀ» Á¦°øÇÑ´Ù.

µå¶óÀ̹ö°¡ Á÷·ÄÈ­µÈ ȤÀº ºñÁ÷·ÄÈ­µÈ °ÍÀÎÁö´Â ¾î¶»°Ô MiniportSendPackets ÇÔ¼ö°¡ ÀÌ·¯ÇÑ µå¶óÀ̹ö ÇÔ¼ö°¡ È£ÃâµÇ¾îÁú ¶§ ÀÔ·Â ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ¿Ï¼ºÀ» ´Ù·ç´ÂÁö¸¦ °áÁ¤ÇÑ´Ù.

Serialized Miniports

Á÷·ÄÈ­µÈ µå¶óÀ̹öÀÇ MiniportSendPackets ÇÔ¼ö´Â ÀÔ·Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ NDIS_PACKET_OOB_DATA ºí·°ÀÇ Status ¸â¹ö³»¿¡ ´ÙÀ½ÀÇ °ªµé Áß¿¡ Çϳª¸¦ ¼³Á¤ÇÑ´Ù:

NDIS_STATUS_SUCCESS
µå¶óÀ̹ö´Â(ȤÀº NIC) Àü¼ÛÀ» À§ÇÑ ÆÐŶ µ¥ÀÌÅ͸¦ ¼ö¶ôÇØ¼­ MiniportSendPacketsÀÌ NDIS°¡ ÀÌ·¯ÇÑ ¿ä±¸·Î ÇàÇØÁø ÇÁ·ÎÅäÄÝ¿¡ ¸®Å쵃 ÆÐŶ°ú °ü·ÃµÈ out-of-band µ¥ÀÌÅͰ¡ ¸®Å쵃 °ÍÀÌ´Ù.

NDIS_STATUS_PENDING
µå¶óÀ̹ö´Â NdisMSendComplete·Î ºñµ¿±âÀûÀ¸·Î Àü¼Û ¿¬»êÀ» ¿Ï¼ºÇÒ °ÍÀÌ´Ù.

NDIS_STATUS_RESOURCES
Á÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®´Â ÇöÀç ÀÚ¿ø Á¦ÇÑ¿¡ ±âÀÎÇØ¼­ Àü¼Û ¿¬»êÀ» ¼³Á¤ÇÒ ¼ö ¾øÁö¸¸Àº NDIS´Â ÀÌ ÆÐŶÀ» Å¥¿¡ ÀúÀåÇØ¾ß ÇÏ°í µå¶óÀ̹ö°¡ ´ÙÀ½¿¡ NdisMSendResourcesAvailable ȤÀº NdisMSendCompleteÀ» È£ÃâÇÒ ¶§ MiniportSendPackets¿¡ ´ëÇÑ ´Ù½Ã Á¦ÃâÀ» À§ÇÑ ÁÖ¾îÁø ¹è¿­³»¿¡¼­ ¸ðµç ³²¾ÆÀÖ´Â ÆÐŶµéÀ» Å¥¿¡ ÀúÀåÇØ¾ß ÇÑ´Ù.

MiniportSendPacketsÀÌ ÀÔ·Â ¹è¿­¿¡¼­ ÆÐŶÀ» À§ÇÑ ÀÌ·¯ÇÑ °ªÀ» ¼³Á¤ÇÒ ¶§, NDIS ¶óÀ̺귯¸®´Â ¹è¿­³»¿¡ ¸ðµç ³²¾Æ ÀÖ´Â ÆÐŶµéÀÌ °°Àº »óÅ ¼³Á¤À» °¡Áö°í ÀÖ°í ±×·¡¼­ NDIS°¡ ÇÁ·ÎÅäÄÝ °áÁ¤ ÆÐŶ ¹è¿­ÀÇ ¼ø¼­¸¦ À¯ÁöÇÏ´Â °°Àº ¼ø¼­·Î °ü·ÃµÈ ÆÐŶµéÀ» ´Ù½Ã Å¥¿¡ ÀúÀåÇÑ´Ù. NDIS´Â ÀÌ »óŸ¦ ÇÁ·ÎÅäÄÝ¿¡ ÀÌ·¯ÇÑ ÆÐŶÀ» À§ÇØ ±×¸®°í ÁÖ¾îÁø ¹è¿­³»¿¡ ¸ðµç ³²¾Æ ÀÖ´Â ÆÐŶµéÀ» À§ÇØ NDIS_STATUS_PENDINGÀ¸·Î ¹Ý¿µÇÑ´Ù.

NDIS_STATUS_FAILURE
ÁÖ¾îÁø ÆÐŶÀÌ NIC¿¡ À¯È¿ÇÏÁö ¾Ê°Å³ª ¹Þ¾ÆµéÀÏ ¼ö ¾ø´Ù. ÀÌ·¯ÇÑ »óŸ¦ ¼¼ÆÃÇÏ´Â °Í ȤÀº ÆÐŶÀ» À§ÇØ ¾î¶² ´Ù¸¥ µå¶óÀ̹ö °áÁ¤ NDIS_STATUS_XXX ¿¡·¯ °ªÀº NDIS°¡ ½ÇÆÐµÈ º¸³»±â ¿ä±¸·Î¼­ ÇÒ´çÇÏ´Â ÇÁ·ÎÅäÄÝ·Î ¸®ÅÏÇÏ´Â ÆÐŶÀ» ¿Ï¼ºÇÑ´Ù.

MiniportSendPacketsÀÌ Á¦¾î¸¦ ¸®ÅÏÇÒ ¶§, Á÷·ÄÈ­µÈ µå¶óÀ̹ö´Â ´õ ÀÌ»ó ´ÙÀ½Àº ¿¹¿Ü»çÇ׵鿡¼­ ÁÖ¾îÁø ÆÐŶ ¹è¿­³»¿¡ ¾î¶² °Í¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.

  • ¸¸¾à MiniportSendPacketsÀº ÆÐŶÀÇ Status°¡ NDIS_STATUS_PENDING·Î ¼³Á¤ÇÑ´Ù¸éÀº, ¹Ì´ÏÆ÷Æ®´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í ¾î¶² °ü·ÃµÈ out-of-band µ¥ÀÌÅÍ ºí·°³»¿¡ ¹Ìµð¾î ƯÁ¤ Á¤º¸¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. MiniportSendPacketsÀº ¸¶Âù°¡Áö·Î ÆÐŶ µð½ºÅ©¸³ÅÍ¿¡ ¿¬°áµÈ ¹öÆÛ µð½ºÅ©¸³Å͵é°ú »ç¿ëÇÒ ¼ö ÀÖ´Ù.

    µå¶óÀ̹ö°¡ Àü¼Û ¿¬»êÀÇ ¸¶Áö¸· »óÅ·ΠNdisMSendComplete¸¦ È£ÃâÇÑ ÈÄ¿¡, ÁÖ¾îÁø ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ¼ÒÀ¯±Ç, out-of-band µ¥ÀÌÅÍ ºí·°, °ü·ÃµÈ ¹öÆÛµéÀº ÇÒ´çÇÏ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. ¹Ì´ÏÆ÷Æ®´Â °áÄÚ NdisMSendComplete¿¡ Àü´ÞÇÏ´Â ÆÐŶÀ» À§ÇØ NDIS_STATUS_RESOURCES¸¦ ¸®ÅÏÇÒ Çʿ䰡 ¾ø´Ù.

  • ¸¸¾à MiniportSendPacketsÀº NDIS_STATUS_RESOURCES·Î ÆÐŶÀ» À§ÇÑ Status¸¦ ¼³Á¤ÇÑ´Ù¸éÀº, ¹Ì´ÏÆ÷Æ®´Â ÆÐŶ µð½ºÅ©¸³ÅÍ, °ü·ÃµÈ out-of-band µ¥ÀÌÅÍ ºí·°, NDIS°¡ MiniportSendPackets¿¡ ´ëÇÑ ÆÐŶ ¹è¿­ÀÇ ¿¬¼ÓµÈ ¿ä¼Ò¿¡ µû¶ó º¸³»±â ¿ä±¸¸¦ ´Ù½Ã Á¦ÃâÇÒ ¶§, ±×·¯ÇÑ ÆÐŶ¿¡ ¿¬°áµÈ ¹öÆÛ µð½ºÅ©¸³Å͵éÀ» Á¢±ÙÇÒ ¼ö ÀÖ´Ù.
µé¾î¿À´Â ÆÐŶÀ» À§ÇØ NDIS_STATUS_RESOURCES·Î ¼³Á¤ÇÏ´Â °ÍÀº NDIS¿¡°Ô °ü·ÃµÈ ÆÐŶÀ» ´Ù½Ã Å¥¿¡ ÀúÀåÇϵµ·Ï Çϰí Á÷·ÄÈ­µÈ µå¶óÀ̹öÀÇ MiniportSendPackets¿¡ ´ëÇÑ ¿¬¼ÓµÈ ´Ù½Ã Á¦ÃâÀ» À§ÇØ ¸ðµç ³²¾ÆÀÖ´Â ¹è¿­ ¿ä¼Òµé¿¡ ÁöÁ¤µÈ °Íµéµµ ´Ù½Ã Å¥¿¡ ÀúÀåÇϵµ·Ï ÇÑ´Ù. NDIS´Â óÀ½ ¹ß»ýÇÑ °ÍÀÌ ¾î´À°ÍÀε簣¿¡ NdisMSendResourcesAvailable ȤÀº NdisMSendComplete¿¡ ´ëÇÑ ¿¬¼ÓµÈ È£ÃâÀº ±×·¯ÇÑ µå¶óÀ̹öÀÇ MiniportSendPackets ÇÔ¼ö°¡ Àü¼ÛÀ» À§ÇØ ´õ ¸¹Àº ÆÐŶµéÀ» ¼ö¶ôÇϵµ·Ï Áغñ°¡ µÇ¾ú´Ù´Â °ÍÀ» °¡¸®Å°´Â °ÍÀ̶ó°í ÃßÃøÇÑ´Ù. NDIS´Â ±×µéÀÌ MiniportSendPackets¿¡ ÆÐŶ ¹è¿­·Î¼­ ´Ù½Ã Á¦ÃâµÉ ¶§ ¸®ÅÏµÈ ¹è¿­ ¿ä¼ÒµéÀÇ ¿ø·¡ ¼ø¼­·Î º¸Á¸ÇÑ´Ù.

µðÆúÆ®·Î, Á÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®ÀÇ MiniportSendPacketsÀº IRQL DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.

ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®µé

NDIS ¶óÀ̺귯¸®´Â ºñÁ÷·ÄÈ­µÈ µå¶óÀ̹öµéÀÇ MiniportSendPackets ÇÔ¼öµé¿¡ Á¦ÃâÇÏ´Â ¸ðµç ÆÐŶ µð½ºÅ©¸³Åͳ»¿¡ OOB ºí·°À» ¹«½ÃÇÏ°í ¸ðµç ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®µéÀº NdisMSendComplete·Î ºñµ¿±âÀûÀ¸·Î ±×µéÀÇ MiniportSendPackets ÇÔ¼öµé·Î °¢ ÆÐŶ µð½ºÅ©¸³ÅÍ ÀÔ·ÂÀ¸·Î ¿Ï¼ºÇÒ °ÍÀÌ´Ù. °á°úÀûÀ¸·Î, ±×·¯ÇÑ ºñÁ÷·ÄÈ­µÈ µå¶óÀ̹öÀÇ MiniportSendPackets ÇÔ¼ö´Â Ç×»ó NDIS_PACKET_OOB_DATA ºí·°ÀÇ Status ¸â¹ö¸¦ ¹«½ÃÇÏÁö¸¸, ÀÌ ¸â¹ö¸¦ °è¼ÓÀûÀ¸·Î NdisMSendComplete¿¡ Àü´ÞÇÏ´Â °°Àº »óÅ·Π¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

MiniportSendPacketsÀÌ ÁÖ¾îÁø ÆÐŶµéÀ» Àü¼ÛÇϱâ À§ÇØ ºÒÃæºÐÇÑ ÀÚ¿øµéÀ» °¡Áú ¶§¸¶´Ù º¸³»±â ÆÐŶµéÀ» Å¥¿¡ ÀúÀåÇÏ°í ´Ù½Ã Á¦ÃâÇÏ´Â °ÍÀ» NDIS¿¡°Ô ÀÇÁ¸ÇÏ´Â °Íº¸´Ù ¿ÀÈ÷·Á ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®´Â ÀÚ½ÅÀÇ ³»ºÎ ÆÐŶ Å¥¿¡ ÀúÀåÇÏ´Â °ÍÀ» °ü¸®ÇÑ´Ù. ±×·¯ÇÑ µå¶óÀ̹ö´Â ±×µéÀÌ ³×Æ®¿öÅ©À» °ÉÃÄ º¸³»¾îÁú ¼ö ÀÖÀ» ¶§±îÁö ³»ºÎ Å¥¿¡ µé¾î¿À´Â º¸³»±â ÆÐŶµéÀ» À¯ÁöÇϰí MiniportSendPackets ÇÔ¼ö¿¡ µé¾î¿À´Â ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ÇÁ·ÎÅäÄÝ °áÁ¤ ¼ø¼­´ë·Î º¸Á¸Çϴ åÀÓÀ» Áø´Ù.

ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®´Â NdisMSendComplete·Î °¢ µé¾î¿À´Â º¸³»±â ÆÐŶÀ» ¿Ï¼ºÇØ¾ß Çϰí NdisMSendResourcesAvailableÀ» È£ÃâÇÒ ¼ö ¾ø´Ù. ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®´Â ¿ø·¡ MiniportSendPackets ÇÔ¼ö¿¡ Á¦ÃâµÈ ÇÁ·ÎÅäÄÝ ÇÒ´ç ÆÐŶ µð½ºÅ©¸³ÅÍ·Î NdisMSendComplete¿¡ STATUS_INSUFFICIENT_RESOURCES¸¦ Àü´ÞÇÒ Çʿ䰡 ¾ø´Ù. ±×·¯ÇÑ ¸®ÅÏµÈ »óÅ´ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ ¿ä±¸µÈ º¸³»±â ¿¬»êÀ» ½ÇÆÐÇϰí, NDIS´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í ¿ø·¡ ±×°ÍÀ» ÇÒ´çÇÑ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¸ðµç °ü·ÃµÈ ÀÚ¿øµéÀ» ¸®ÅÏÇÒ °ÍÀÌ´Ù.

ºñÁ÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ®ÀÇ MiniportSendPackets ÇÔ¼ö´Â ¾î¶² IRQL <= DISPATCH_LEVEL·Î È£ÃâµÇ¾îÁú ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î, ºñÁ÷·ÄÈ­µÈ µå¶óÀ̹öÀÇ MiniportSendPackets ÇÔ¼ö´Â °°Àº Å¥µé¿¡ Á¢±ÙÇÏ´Â µå¶óÀ̹öÀÇ ´Ù¸¥ MiniprotXxx ÇÔ¼öµé·Î ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ³»ºÎ Å¥¿¡ Á¢±ÙÀ» µ¿±âÈ­Çϴ åÀÓÀ» Áø´Ù.