1.6.7.1 VC¿¡¼ ÆÐŶ ¼Û½Å
³×Æ®¿öÅ©À» °ÉÃÄ ÆÐŶµéÀ» º¸³»±â À§ÇØ, ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â NdisCoSendPackets¸¦
È£ÃâÇÑ´Ù. MCM°ú °ü·ÃµÈ ¿¬°á ÁöÇâ Ŭ¶óÀÌ¾ðÆ®´Â ¶ÇÇÑ NdisCoSendPacketsÀ» È£ÃâÇÑ´Ù.
±×·¯³ª, MCMÀº °áÄÚ NdisCoSendPacketsÀ» È£ÃâÇÏÁö ¾Ê´Â´Ù.; ±× ´ë½Å¿¡ ÄÝ ¸Å´ÏÀú ¿Í MCM »çÀÌ¿¡
ÀÎÅÍÆäÀ̽º°¡ MCM¿¡ ´ëÇØ ³»ºÎÀûÀÏ ¶§, MCMÀº NDIS¿¡°Ô ¾Ë·ÁÁÖ´Â °Í ¾øÀÌ NIC¿¡°Ô Á÷Á¢ ÆÐŶµéÀ»
Àü´ÞÇÑ´Ù.
±×¸² 1.37Àº ¹Ì´ÏÆ÷Æ®¸¦ ÅëÇØ ÆÐŶµéÀ» º¸³»´Â Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú¿¡°Ô º¸¿©ÁØ´Ù.

±×¸² 1.37 ¹Ì´ÏÆ÷Æ®¸¦ ÅëÇØ¼ Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú·ÎºÎÅÍ ÆÐŶ º¸³»±â
±×¸² 1.38Àº MCMÀ» ÅëÇØ ÆÐŶµéÀ» º¸³»´Â Ŭ¶óÀÌ¾ðÆ®¸¦ º¸¿©ÁØ´Ù.

±×¸² 1.38 MCMÀ» ÅëÇØ¼ Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ÆÐŶ º¸³»±â
NdisCoSendPacketsÀ» È£ÃâÇϱâ Àü¿¡, Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â ÆÐŶµéÀÌ wireÀ» °ÉÃÄ º¸³»Á®¾ß
ÇÏ´Â °°Àº ¼ø¼·Î ÆÐŶ Æ÷ÀÎÅ͵éÀÇ ¹è¿·Î ¼³Á¤ÇØ¾ß ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú´Â ±×¸®°í³ª¼
ÆÐŶµéÀÌ º¸³»¾îÁö´Â NdisVcHandle°ú ÆÐŶ Æ÷ÀÎÅ͵éÀÇ ¹è¿¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ º¸³»´Â(´Ù¸¥ °Íµé »çÀÌ¿¡),
NdisCoSendPacketsÀ» È£ÃâÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ® È¤Àº ÄÝ ¸Å´ÏÀú°¡ NdisCoSendPacketsÀ» È£ÃâÇÏÀÚ¸¶ÀÚ ´ÙÀ½°ú °°Àº ¼ÒÀ¯±ÇµéÀ» ¾çµµÇÑ´Ù:
- PacketArray·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â ¸ðµç ÆÐŶ µð½ºÅ©¸³Å͵é
- ÀÌ·¯ÇÑ ÆÐŶ µð½ºÅ©¸³ÅÍ¿¡ ¿¬°áµÈ ¹öÆÛ µð½ºÅ©¸³Å͵鿡 ÀÇÇØ ¸ÊµÈ ¸ðµç ¹öÆÛµé
- OOB ºí·°µé³»¿¡¼ ÁöÁ¤µÈ ¾î¶² ¹Ìµð¾ö ƯÁ¤ ¹öÆÛµéÀ» Æ÷ÇÔÇÏ´Â ÆÐŶ µð½ºÅ©¸³Å͵é°ú °ü·ÃµÈ ¸ðµç
¾Æ¿ô¿Àºê¹êµå(OOB) µ¥ÀÌÅÍ ºí·°µé.
NdisCoSendPackets¿¡ ´ëÇÑ È£ÃâÀº NDIS°¡ ¹Ì´ÏÆ÷Æ®ÀÇ MiniportCoSendPackets ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÑ´Ù.
MiniportCoSendPacketsÀº ¹è¿³»¿¡´Â ÆÐŶµéÀÇ ¼ø¼¸¦ º¸Á¸ÇÏ¸é¼ ¿¬¼ÓÀûÀ¸·Î ¹è¿³»¿¡, °¢ ÆÐŶÀ» Àü¼ÛÇØ¾ß ÇÑ´Ù.
MiniportCoSendPacketsÀº ¿ä±¸µÈ Àü¼ÛÀÇ ¹ÙÀÌÆ®·Î ÃÑ Å©±â¿Í ÆÐŶ¿¡ ¿¬°áµÈ ¹öÆÛ µð½ºÅ©¸³ÅÍµé ¼ö¿Í °°Àº
Á¤º¸¸¦ ¾ò±â(extract) À§ÇØ NdisQueryPacket¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
MiniportCoSendPacketsÀº Àü¼ÛÇϱâ À§ÇÑ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â °¢°¢ÀÇ ¹öÆÛµé¿¡ ´ëÇØ¼ Á¤º¸¸¦ ¾ò±â À§ÇØ
NdisGetFirstFromPacket, NdisQueryBuffer, ȤÀº NdisQueryBufferOffset¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.
MiniportCoSendPacketsÀº Àû´çÇÑ NDIS_GET_PACKET_XXX ¸ÅÅ©·ÎµéÀ» »ç¿ëÇÔÀ¸·Î½á °¢ ÆÐŶ°ú °ü·ÃµÈ
ÇÁ·ÎÅäÄÝ Á¦°ø OOB Á¤º¸¸¦ °Ë»öÇÒ ¼ö ÀÖ´Ù. MiniportCoSendPackets ÇÔ¼ö´Â Ç×»ó NDIS_PACKET_OOB_DATA ºí·°ÀÇ
Status ¸â¹ö¸¦ ¹«½ÃÇÏÁö¸¸Àº, ÀÌ ¸â¹ö¸¦ NdisMCoSendComplete¿¡ Àü´ÞÇÏ´Â °°Àº »óÅ·Π¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
MiniportCoSendPackets ÇÔ¼ö°¡ ÁÖ¾îÁø ÆÐŶµéÀ» º¸³»±â À§ÇÑ ºÒÃæºÐÇÑ ÀÚ¿øµéÀ» °¡Áö°í ÀÖÀ» ¶§¸¶´Ù
º¸³»±â ÆÐŶµéÀ» Å¥¿¡ ÀúÀåÇÏ°í ´Ù½Ã º¸³»±â(resubmit)À§ÇØ NDIS¿¡°Ô ÀÇÁ¸ÇÏ´Â °Íº¸´Ù ¿ÀÈ÷·Á, ¿¬°á ÁöÇâ
¹Ì´ÏÆ÷Æ®´Â ÀÚ½ÅÀÇ ³»ºÎ ÆÐŶ Å¥¸¦ °ü¸®ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â ±×µéÀÌ ³×Æ®¿öÅ©À» ÅëÇØ Àü¼ÛµÇ¾îÁú ¶§±îÁö
³»ºÎ Å¥¿¡ µé¾î¿À´Â º¸³»±â ÆÐŶµéÀ» À¯ÁöÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ Å¥´Â ¹Ì´ÏÆ÷Æ®ÀÇ MiniportCoSendPackets ÇÔ¼ö¿¡ ´ëÇØ
µé¾î¿À´Â ÆÐŶ µð½ºÅ©¸³Å͵éÀÇ ÇÁ·ÎÅäÄÝ °áÁ¤ ¼ø¼¸¦ º¸Á¸ÇÑ´Ù.
¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®´Â NdisMCoSendComplete·Î °¢ µé¾î¿À´Â º¸³»±â ÆÐŶÀ» ¿Ï¼ºÇØ¾ß ÇÑ´Ù.
NdisMSendResourcesAvailable¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù. ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®´Â °áÄÚ ¿ø·¡ MiniportCoSendPackets ÇÔ¼ö¿¡
Àü´ÞµÇ¾îÁö´Â ÇÁ·ÎÅäÄÝ ÇÒ´ç ÆÐŶ µð½ºÅ©¸³ÅÍ·Î NdisMCoSendComplete¿¡ STATUS_INSUFFICIENT_RESOURCES¸¦
Àü´ÞÇÒ Çʿ䰡 ¾ø´Ù.
NdisMCoSendComplete¿¡ ´ëÇÑ È£ÃâÀº NDIS°¡ º¸³»±â ¿¬»êÀ» ÃʱâÈÇϴ Ŭ¶óÀ̾ðÆ®ÀÇ ProtocolCoSendCompleteÀ»
È£ÃâÇϵµ·Ï ÇÑ´Ù. ProtocolCoSendCompleteÀº ¿ø·¡ VC·Î ³×Æ®¿öÅ©À» °¡·ÎÁú·¯ µ¥ÀÌÅ͸¦ º¸³»±â À§ÇØ
ÇÁ·ÎÅäÄÝ¿¡°Ô ¿ä±¸Çϴ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾Ë¸®´Â °Íó·³ ¿Ï¼ºµÈ Àü¼Û ¿¬»êÀ» À§ÇØ ÇÊ¿äÇÑ ¾î¶² ÈÄ󸮸¦
ÇàÇÑ´Ù.
º¸³»±â ¿¬»êÀÇ ¿Ï¼ºÀº Ç×»ó ¾Æ·¡ NIC µå¶óÀ̹ö°¡ ½ÇÁ¦ ³×Æ®¿öÅ©À» °¡·ÎÁú·¯ ÁÖ¾ü¤¤ ÆÐŶÀ» Àü¼ÛÇß´Ù´Â
°ÍÀ» ¾Ï½ÃÇÑ´Ù. ±×·¯³ª, intelligent NICÀÇ µå¶óÀ̹ö´Â NIC¿¡ net ÆÐŶÀ» ´Ù¿î·ÎµåÇÏÀÚ¸¶ÀÚ º¸³»±â ¿Ï¼ºÀ»
°í·ÁÇÒ ¼ö ÀÖ´Ù.
ProtocolCoSendCompleteÀÌ È£ÃâµÇ¾îÁø ÈÄ¿¡, µå¶óÀ̹ö´Â ´ÙÀ½ÀÇ ÇÁ·ÎÅäÄÝ ÇÒ´ç ÀÚ¿øµéÀÇ ¼ÒÀ¯±ÇÀ» ´Ù½Ã ¾ò´Â´Ù:
- ÆÐŶ µð½ºÅ©¸³ÅÍ
- net ÆÐŰ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛµéÀ» ¸ÊÇÏ´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿¡ ¿¬°áµÈ ¸ðµç ¹öÆÛ µð½ºÅ©¸³Å͵é°ú
¾î¶² ÀÌ·¯ÇÑ µð½ºÅ©¸³Å͵鿡 ÀÇÇØ ¸ÊµÈ ÇÁ·ÎÅäÄÝ ÇÒ´ç ¹öÆÛµé
- ¾î¶² ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ OOB ºí·°
- ¾î¶² OOB ºí·°³»¿¡ ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝ ÇÒ´ç ¹öÆÛ.
ºñ·Ï NDIS´Â Ç×»ó NdisCoSendPackets¿¡ ´ëÇÑ È£Ãâ·Î Àü´ÞµÇ¾îÁö´Â ÇÁ·ÎÅäÄÝ °áÁ¤ ¼ø¼·Î ¾Æ·¡ ¹Ì´ÏÆ÷Æ®¿¡°Ô
ÇÁ·ÎÅäÄÝ Á¦°ø ÆÐŶ ¹è¿µéÀ» Á¦ÃâÇÏÁö¸¸Àº, ¾Æ·¡ µå¶óÀ̹ö´Â ·£´ý ¼ø¼·Î ÁÖ¾îÁø ÆÐŶµéÀ» ¿Ï¼ºÇÒ ¼ö ÀÖ´Ù.
Áï, ¸ðµç ¹ÙÀεù µÈ ÇÁ·ÎÅäÄÝÀº ¾Æ·¡ µå¶óÀ̹ö¿¡ FIFO ¼ø¼·Î ÇÁ·ÎÅäÄÝÀÌ NdisCoSendPackets¿¡ Àü´ÞÇÏ´Â
ÆÐŶµéÀ» Á¦ÃâÇÏ´Â °ÍÀ» NDIS¿¡°Ô ÀÇÁ¸ÇÒ ¼ö ÀÖÁö¸¸Àº, ¾î¶°ÇÑ ÇÁ·ÎÅäÄݵµ °°Àº ¼ø¼·Î ÀÌ·¯ÇÑ ÆÐŶµé·Î
NdisMCoSendCompleteÀ» È£ÃâÇÏ´Â °ÍÀ» ¾Æ·¡ µå¶óÀ̹ö¿¡ ÀÇÁ¸ÇÒ ¼ö ¾ø´Ù. |