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 ÇÔ¼öµé°ú ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ³»ºÎ Å¥¿¡ ´ëÇÑ Á¢±ÙÀ» µ¿±âÈ­ÇØ¾ß ÇÑ´Ù.