NdisCoSendPackets

VOID

  NdisCoSendPackets(

    IN NDIS_HANDLE  NdisVcHandle,

    IN PPNDIS_PACKET  PacketArray,

    IN UINT  NumberOfPackets

    );

NdisCoSendPacketsÇÔ¼ö´Â ³×Æ®¿÷À¸·Î Àü¼ÛÀ» À§ÇØ ¸ÖƼÆÐŶº¸³»±â¸¦ ÇÏÀ§ ´Ð µå¶óÀ̹ö·Î ÁöÁ¤ÇÑ VC·Î Æ÷¿öµå ÇÑ´Ù.

¸Å°³º¯¼ö

NdisVcHandle
VC¿¡´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. µû¶ó¼­ º¸³»±âÀÇ Å¸°ÙÀ» È®ÀÎÇÑ´Ù.

PacketArray
È£ÃâÀÚ ÇÒ´ç ÆÐŶ µð½ºÅ©¸³Å͵鿡´ëÇÑ Æ÷ÀÎÅÍ ¹è¿­ÀÇ Æ÷ÀÎÅÍ. ¹è¿­³»ÀÇ °¢ ÆÐŶ µð½ºÅ©¸³ÅÍ´Â ÇÏÀ§ ´Ð µå¶óÀ̹ö°¡ ¼±À¸·Î º¸³»¾ß¸¸ ÇÏ´Â µ¥ÀÌŸ¸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛ¸¦ ¸ÊÇÎÇϴ üÀÎµÈ ¹öÆÛ µð½ºÅ©¸³Å͵éÀ» °¡Áö°í ÀÖ´Ù.

°¢ ÆÐŶ µð½ºÅ©¸³Å͵éÀº ¶ÇÇÑ ¿¬°üµÈ NDIS_PACKET_OOB_DATAºí·°À» °¡Áö°í ÀÖ´Ù. À̰ÍÀº È£ÃâÀÚ°¡ ÇÏÀ§ ´Ð µå¶óÀ̹ö¿Í ³×Æ®¿÷ ¹Ìµð¾ö°ú °ü·ÃµÈ ¾î¶² ŸÀÓ ½ºÅÆÇÁ ¿Í/ȤÀº ¹Ìµð¾ö ÁöÁ¤ OOBÁ¤º¸¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù.

NumberOfPackets
PacketArray¿¡ Æ÷ÀÎÅÍ ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

ÁÖ¼®

NdisCoSendPacketsÇÔ¼öÀÇ È£ÃâÀº NDIS°¡ ´Ð µå¶óÀ̹öÀÇ MiniportCoSendPacketsÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù. NDIS´Â ÆÐŶ ¹è¿­À» ±×µéÀÌ NdisCoSendPacketsÇÔ¼ö¿¡°Ô ³Ñ±â´Â °Íó·³ °°Àº ¼ø¼­·Î ÇÏÀ§ µå¶óÀ̹öÀÇ MiniportCoSendPacketsÇÔ¼ö¿¡°Ô ³Ñ±ä´Ù.

ProtocolCoSendCompleteÇÔ¼ö°¡ È£ÃâµÉ¶§ NdisCoSendPacketsÇÔ¼öÀÇ È£ÃâÀÚ´Â ±×·± ¹è¿­³»ÀÇ °¢ ÆÐŶ µð½ºÅ©¸³Å͵鿡´ëÇØ ¸®ÅÏµÈ »óŸ¦ °¢°¢ Å×½ºÆ®Çؾ߸¸ ÇÑ´Ù. NDIS°¡ º¸³»´Â ÇÁ·ÎÅäÄÝ¿¡ÀÇÇØ °áÁ¤µÇ´Â FIFO¼ø¼­³»ÀÇ Àü¼Û¿¡´ëÇØ Ç×»ó Á¦ÃâÇÏ´Â µ¿¾È ÇÏÀ§ ´Ð µå¶óÀ̹ö´Â ±×·± º¸³»±â¸¦ ·£´ýÇÑ ¼ø¼­·Î ¿Ï·áÇÒÁö ¸ð¸¥´Ù.

ÇÁ·ÎÅäÄÝÀÌ NdisCoSendPacketsÇÔ¼ö¸¦ È£ÃâÇÏÀÚ¸¶ÀÚ, ´ÙÀ½°ú °°Àº ¼ÒÀ¯±ÇÀ» ¾çµµÇÑ´Ù.:

  • PacketArray¿¡ Á¢±ÙÇÒ¼ö ÀÖ´Â ¸ðµç ÆÐŶ µð½ºÅ©¸³ÅÍ.
  • ±×·¯ÇÑ ÆÐŶ µð½ºÅ©¸³Å͵鿡°Ô üÀÎµÈ ¹öÆÛ µð½ºÅ©¸³Å͵鿡ÀÇÇØ ¸ÊµÈ ¸ðµç ¹öÆÛ.
  • OOBºí·°µé³»ÀÇ ¾î¶² ¹Ìµð¾ö ÁöÁ¤ ¹öÆÛµéÀ» Æ÷ÇÔÇÏ´Â ÆÐŶ µð½ºÅ©¸³Å͵é°ú °ü°èµÈ ¸ðµç OOBµ¥ÀÌŸ ºí·°.
ProtocolCoSendCompleteÇÔ¼ö°¡ NdisCoSendPacketsÇÔ¼ö¿¡°Ô ³Ñ±â´Â ¹è¿­³»ÀÇ °¢ ÆÐŶ µð½ºÅ©¸³ÅͷΠȣÃâµÇ¾îÁö´Â °Íó·³, ÇÁ·ÎÅäÄÝÀ» ÇÒ´çÇϴ°ÍÀº ÀÌ·¯ÇÑ ¸®¼Ò½ºµéÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ȸº¹ÇÑ´Ù. Çѹø¿¡ ÇϳªÀÇ ÆÐŶµð½ºÅ©¸³ÅÍ.

±×¸®°í³ª¼­ ProtocolCoSendCompleteÇÔ¼ö´Â ÇÁ·ÎÅäÄÝÀÌ ÇÒ´çÇÑ ÀÌ·± ¸®¼Ò½ºµéÀ» ÇØÀçÇϰųª Àç»ç¿ëÀ» À§ÇØ ÁغñÇϰųª ÇÒ¼ö ÀÖ´Ù. Æò±Õ-»óÀ§ÀÇ ³×Æ®¿÷ I/OÆ®·¡ÇÈ ±â°£Áß, ÇÁ·ÎÅäÄÝÀÌ ÇÒ´çÇÑ ÆÐŶ µð½ºÅ©¸³Å͵é°ú ¹öÆÛµéÀÇ Àç»ç¿ëÇϴ°ÍÀº ¹öÆÛ¿Í ÆÐŶ µð½ºÅ©¸³Å͸¦ ÇØÁ¦ÇÏ°í ¼øÂ÷ÀûÀÎ º¸³»±â¿¡´ëÇØ °ÅÀÇ Áï½Ã ±×µéÀ» Àç ÇÒ´ç Çϴ°ͺ¸´Ù ´õ ÁÁÀº ÆÛÆ÷¸Õ½º¸¦ ³º´Â´Ù. ±×·¯³ª, ½Ã½ºÅÛ ¸®¼Ò½ºµéÀÇ »ç¿ëÀ» Á¶½É½º·´°Ô ´Ù·ç´Â ¾î¶² ÇÁ·ÎÅäÄÝÀº ³ôÀº Æ®·¡ÇÈÀÇ ±â°£ÀÌ ¸Å¿ì ³·Àº I/O¿ä±¸ÀÇ ±â°£À» Áö¼ÓÇÑÈÄ¿¡ ¸·¿¬ÇÏ°Ô ¸ÊµÈ ¹öÇÁµé·Î ÆÐŶ µð½ºÅ©¸³Å͵éÀ» Àç»ç¿ëÇÒ¼ö ÀÖ´Â ÆÐŶµéÀÇ Å« ¼ÂÀ» º¸À¯ÇÏÁö ¾Ê´Â´Ù. ProtocolCoSendCompleteÇÔ¼ö°¡ ÆÐŶ µð½ºÅ©¸³Å͵éÀ» Àç»ç¿ëÇÒ¶§, NdisUnchainBufferAtXxxÇÔ¼öÀÇ È£Ãâ·Î °¢ ÀÔ·Â ÆÐŶ µð½ºÅ©¸³Å͵é°ú üÀÎµÈ ¹öÆÛ µð½ºÅ©¸³Å͵éÀ» ÀúÀåÇØ¾ß¸¸ ÇÑ´Ù.(¾Ö¸Å) ÀÔ·Â ÆÐŶ µð½ºÅ©¸³ÅÍ·Î NdisReinitializePacketÇÔ¼ö¸¦ È£ÃâÇϱâÀü¿¡.

NdisCoSendPacketsÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ µ¿À۵ɼö ÀÖ´Ù.