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 ÇÔ¼öµé·Î ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ³»ºÎ Å¥¿¡
Á¢±ÙÀ» µ¿±âÈÇϴ åÀÓÀ» Áø´Ù.
|