MiniportCoSendPackets
VOID
MiniportCoSendPackets(
IN NDIS_HANDLE MiniportVcContext,
IN PPNDIS_PACKET PacketArray,
IN UINT NumberOfPackets
);
|
MiniportCoSendPacketsÀº ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®µéÀ» À§ÇØ ÇÊ¿äÇÑ ÇÔ¼öÀÌ´Ù.
MiniportCoSendPackets´Â ³×Æ®¿öÅ©¸¦ °ÉÃÄ Æ÷ÀÎÅÍ ¹è¿·Î ÁöÁ¤µÈ ¸î°³ÀÇ ÆÐŶµéÀ» Àü¼ÛÇϱâ À§ÇØ
È£ÃâµÇ¾îÁø´Ù.
¸Å°³º¯¼ö
- MiniportVcContext
- ¹Ì´ÏÆ÷Æ®´Â VC´ç »óŸ¦ À¯ÁöÇÏ´Â ¹Ì´ÏÆ÷Æ® ÇÒ´ç ÄÁÅØ½ºÆ® ¿µ¿ª¿¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â
MiniportCoCreateVc ÇÔ¼ö·ÎºÎÅÍ NDIS¿¡°Ô ÀÌ ÇÚµéÀ» Á¦°øÇÑ´Ù.
- PacketArray
- ÆÐŶ ¹è¿³»¿¡ Ãʱ⠿ä¼Òµé¿¡ ´ëÇÑ °ÍÀ» °¡¸®Å²´Ù. Àü¼ÛµÇ´Â ÆÐŶÀ» À§ÇÑ ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ÁÖ¼ÒÀ»
ÁöÁ¤ÇÏ´Â °¢ ¿ä¼ÒÀÌ´Ù. ÆÐŶ ¿ì¼±±Ç, ¼±ÅÃÀΠŸÀÓ½ºÅÆÇÁ, ÆÐŶ ´ç »óÅ MiniportCoSendPackets¿¡ ÀÇÇØ
¼³Á¤µÈ, °ú °°Àº Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â °ü·ÃµÈ ¾Æ¿ô¿Àºê¹êµå µ¥ÀÌÅÍ ºí·°°ú ÇÔ°è,
- NumberOfPackets
- PacketArray¿¡¼ ÆÐŶ µð½ºÅ©¸³Å͵鿡 ´ëÇÑ Æ÷ÀÎÅÍ ¼ö¸¦ °¡¸®Å²´Ù.
ÁÖ¼®
MiniportCoSendPacketsÀº ³×Æ®¿öÅ©¸¦ °¡·ÎÁú·¯ µ¥ÀÌÅÍ ÆÐŶµéÀÇ ¼ø¼ÈµÈ ¸®½ºÆ®·Î º¸³»±â À§ÇØ
¹Ù¿îµåµÈ ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡ ÀÇÇÑ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î NDIS¿¡ ÀÇÇØ È£ÃâµÇ¾îÁø´Ù.
MiniportCoSendPacketsÀº ¿¬¼ÓÀûÀ¸·Î ¾î¶² ÁÖ¾îÁø ¹è¿¿¡¼ °¢ ÆÐŶÀ» Àü¼ÛÇØ¾ß ÇÑ´Ù. MiniportCoSendPacketsÀº
ÆÐŶ¿¡ ¿¬°á ¸¹Àº ¹öÆÛ µð½ºÅ©¸³Å͵é°ú ¿ä±¸µÈ Àü¼ÛÀ¸ ¹ÙÀÌÆ®ÀÇ ÃÑ Å©±â°°Àº Á¤º¸¸¦ »Ì¾Æ³»±â À§ÇØ
NdisQueryPacketÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ÀÌ ÇÔ¼ö´Â Àü¼ÛµÉ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ °¢°¢ÀÇ ¹öÆÛµé¿¡ ´ëÇÏ¿© Á¤º¸¸¦ »Ì¾Æ³»±â À§ÇØ NdisGetFirstBufferFromPacket,
NdisQueryBuffer, NdisQueryBufferOffset¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.
MiniportCoSendPacketsÀº Àû´çÇÑ NDIS_GET_PACKET_XXX ¸ÅÅ©·ÎµéÀ» »ç¿ëÇÔÀ¸·Î½á °¢ ÆÐŶ°ú °ü·ÃµÈ ÇÁ·ÎÅäÄÝ Á¦°ø
¾Æ¿ô¿Àºê¹êµå Á¤º¸¸¦ °Ë»öÇÒ ¼ö ÀÖ´Ù.
MiniportCoSendPacketsÀº ÀÚ±â ÀÚ½ÅÀÇ ¸ñÀûÀ» À§ÇØ NDIS_PACKET ±¸Á¶Ã¼³»¿¡ MiniportReserved¿¡ ´ÜÁö 8¹ÙÀÌÆ® ¿µ¿ªÀ»
»ç¿ëÇÒ ¼ö ÀÖ´Ù.
NDIS ¶óÀ̺귯¸®´Â MiniportCoSendPackets¿¡ Á¦ÃâµÈ ¸ðµç ÆÐŶ µð½ºÅ©¸³Å͵鿡¼ OOB ºí·°À» ¹«½ÃÇϰí
¸ðµç ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®´Â NdisMCoSendComplete·Î ºñµ¿±âÀûÀÎ °¢ ÀÔ·Â ÆÐŶ µð½ºÅ©¸³ÅÍÀ» ¿Ï¼ºÇϱâ À§ÇÏ¿©
ºñÁ÷·ÄÈµÈ µå¶óÀ̹ö¶ó°í »ý°¢ÇÑ´Ù.
°á°úÀûÀ¸·Î, ±×·¯ÇÑ ºñÁ÷·ÄÈµÈ µå¶óÀ̹öÀÇ MiniportCoSendPackets ÇÔ¼ö´Â Ç×»ó NDIS_PACKET_OOB_DATA ºí·°ÀÇ
Status ¸â¹ö¸¦ ¹«½ÃÇÏÁö¸¸Àº ÀÌ ÇÔ¼ö´Â °á°úÀûÀ¸·Î NdisMConSendComplete¿¡ Àü´ÞÇÏ´Â °°Àº »óŰªÀ¸·Î ÀÌ ¸â¹ö¸¦
¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
MiniportCoSendPacketsÀÌ ÁÖ¾îÁø ÆÐŶµéÀ» Àü¼ÛÇϱâ À§ÇØ ÃæºÐÇÏÁö ¸øÇÑ ÀÚ¿øµéÀ» °¡Áú¶§¸¶´Ù º¸³»´Â ÆÐŶµéÀ» Å¥¿¡
ÀúÀåÇϰųª ´Ù½Ã Á¦ÃâÇϱâ À§ÇØ NDIS¿¡ ÀÇÁ¸ÇÏ´Â °Íº¸´Ù ¿ÀÈ÷·Á ºñÁ÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®´Â ÀÚ½ÅÀÇ ³»ºÎ ÆÐŶ Å¥ ±¸Á¶¸¦
°ü¸®ÇÑ´Ù. ±×·¯ÇÑ µå¶óÀ̹ö´Â ±×µéÀÌ ³×Æ®¿öÅ©À» °ÉÃÄ Àü¼ÛµÇ¾îÁú ¼ö ÀÖÀ» ¶§±îÁö ³»ºÎ Å¥¿¡ µé¾î¿À´Â º¸³»±â ÆÐŶµéÀ»
À¯ÁöÇϴ åÀÓÀ» Á®¾ß Çϰí MiniportCoSendPackets ÇÔ¼ö¿¡°Ô µé¾î¿À´Â ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ÇÁ·ÎÅäÄÝ °áÁ¤ ¼ø¼·Î
º¸Á¸ÇØ¾ß ÇÑ´Ù.
ºñÁ÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®´Â NdisMCoSendComplete·Î °¢ µé¾î¿À´Â º¸³»±â ÆÐŶÀ» ¿Ï¼ºÇØ¾ß Çϰí
ÀÌ ÇÔ¼ö´Â NdisMSendResourceAvailable¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù.
ºñÁ÷·ÄÈµÈ ¹Ì´ÏÆ÷Æ®´Â ¿ø·¡ MiniportCoSendPackets ÇÔ¼ö¿¡ Á¦ÃâµÈ ÇÁ·ÎÅäÄÝ ÇÒ´ç ÆÐŶµð½ºÅ©¸³ÅÍ¿¡ NdisMCoSendComplete·Î
STATUS_INSUFFICIENT_RESOURCES¸¦ °áÄÚ Àü´ÞÇÒ Çʿ䰡 ¾ø´Ù.
±×·¯ÇÑ ¸®ÅÏµÈ »óÅ´ ȿÀ²ÀûÀ¸·Î ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ ¿ä±¸µÈ º¸³»±â ¿¬»êÀ» ½ÇÆÐÇϰí NDIS´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í ¿ø·¡ ±×°ÍÀ»
ÇÒ´çÇÑ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¸ðµç °ü·ÃµÈ ÀÚ¿øµéÀ» ¸®ÅÏÇÒ °ÍÀÌ´Ù.
MiniportCoSendPacketsÀº IRQL <= DISPATCH_LEVEL¿¡¼ È£ÃâµÇ¾îÁú ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î, MiniportCoSendPackets ÇÔ¼ö´Â
¶ÇÇÑ °°Àº Å¥µé¿¡ Á¢±ÙÇÏ´Â µå¶óÀ̹öÀÇ ´Ù¸¥ MiniportXxx ÇÔ¼öµé°ú ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ³»ºÎ Å¥¿¡ ´ëÇÑ Á¢±ÙÀ»
µ¿±âÈÇØ¾ß ÇÑ´Ù.
|