Windows Support for USB Remote NDIS Network Devices

MSÀÇ ME, windows 2000, ¹Ì·¡ ¹ßÇ¥ ¿¹Á¤ÀÎ ÈÖ½½·¯´Â USB remote Network driver Interface Specification(NDIS) ÀåÄ¡µéÀ» Áö¿øÇÒ °ÍÀÌ´Ù. ÀÌ ¹®¼­´Â ME¿Í ÈÖ½½·¯¿¡¼­ USB ³×Æ®¿öÅ© ¾î´ðÅ͸¦ °³¹ßÇÏ·Á´Â Çϵå¿þ¾î ¾÷ü¿¡°Ô Á¦°øµÈ´Ù. µ¶ÀÚ´Â Remote NDIS Spec, USB Spec1.1,USB CDC(Communications Device Class) Spec 1.0 À» Àß ¾Ë°í ÀÖ´Ù°í »ý°¢ÇÒ °ÍÀÌ´Ù.



Contents:
Introduction and Background
USB and Windows
Remote NDIS
USB Remote NDIS Ethernet Adapter
Sample USB Remote NDIS Ethernet Adapter
Call to Action
References

Introduction and Background
Back to Top

Remote NDIS´Â µ¿ÀûÀÎ PnP ¹ö½ºµé¿¡¼­ º»ÁúÀûÀÎ ³×Æ®¿öÅ© ÀåÄ¡µéÀ» Áö¿øÇÏ´Â À©µµ¿ì ±¸Á¶ÀÌ´Ù. À©µµ¿ì ¹ÌME´Â USB Remote NDIS Ethernet adapterµéÀ» Áö¿øÇÑ´Ù. ´ÙÀ½ ¹öÀüÀÎ Windows2000, ¿Í whistlerÀº Áö¿øµÉ °ÍÀÌ´Ù. ÀÌ ¹®¼­´Â USB µð½ºÅ©¸³ÅÍ ¿¹Á¦¸¦ Æ÷ÇÔÇÏ´Â USB remote NDIS adapter¸¦ ¸¸µå´Â ¹ýÀ» Á¦°øÇÑ´Ù.

µ¶ÀÚ´Â USB½ºÆåÀ» Àß ¾Ë¾Æ¾ß ÇÑ´Ù. ƯÈ÷ µ¶ÀÚ´Â OS ¿¡ USB device functionality¸¦ Á¤ÀÇÇÑ µð½ºÅ©¸³Å͵éÀÇ »ó¼ÓÀûÀÎ ¼ÂÀ» ÀÌÇØÇØ¾ß ÇÑ´Ù. Remote NDIS ½ºÆåÀº °¡Àå ½Å·ÚÇÒ¸¸ÇÑ ¹®¼­·Î ¿ä±¸µÇ¾îÁø´Ù. ÀÌ ¹®¼­ ³¡¿¡ ³ª¿­µÈ ½ºÆåµéÀº ÂüÁ¶ ¹®¼­·Î ¿ä±¸µÇ¾îÁø´Ù.

legacy-free¶ó´Â PCÇõ¸íÀº ½Ã¸®¾ó, º´·Ä,PS/2°°Àº legacy ¿¬°á Æ÷Æ®µé»Ó¸¸ ¾Æ´Ï¶ó PCÁÖ·ùÀÎ ISA,PCI °°Àº legacy È®Àå ¹ö½ºµéÀ» ¾ø¾Ù ¼ö´Â ¾øÀ» °ÍÀÌ´Ù. The resulting "sealed case" PCsÀº ¸ÞÀκ¸µåÀ§¿¡¼­ ³×Æ®¿öÅ·À» Áö¿øÀ» ¿ä±¸Çϰųª, ¿ÜºÎ ¹ö½ºµé¿¡ ³×Æ®¿öÅ© ¾î´ðÅÍ¿¡ ´ëÇÑ Áö¿øÀ» ¿ä±¸ÇÒ °ÍÀÌ´Ù. MS´Â ¿ÜºÎ ³×Æ®¿öÅ© µå¶óÀ̹öµéÀ» Áö¿øÇϱâ À§Çؼ­ Remote NDIS ±¸Á¶¸¦ ¼³°èÇß°í, À©µµ¿ì¿¡¼­´Â º¥´õ µ¶¸³ÀûÀÎ µå¶óÀ̹ö¸¦ Á¦°øÇÑ´Ù.

USB and Windows
Back to Top

USB Æ÷Æ®µéÀº °ÅÀÇ ¸ðµç »õ·Î¿î PC¿¡ Á¸ÀçÇÑ´Ù. ±×¸®°í ÇöÀç À©µµ¿ì¿¡¼­ Áö¿øÇÑ´Ù. ´õ±¸³ª USB´Â ¿ÜºÎ È®Àå°ú µ¿Àû PnP¸¦ Á¦°øÇϰí, ÀåÄ¡µéÀÌ self-describing ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. USB ÀåÄ¡µéÀº ÀÌ ¹®¼­ µÚ¿¡ ¿¹Á¦·Î º¸¿©Áö´Â °Í°ú °°Àº µð½ºÅ©¸³Å͵éÀÇ ¼ÂÀ» ÅëÇØ¼­ PC¿¡°Ô functionality¸¦ ¼³¸íÇÑ´Ù. Inf ÆÄÀÏ¿¡ ÀÖ´Â Direct Vendor ID(VID)³ª Product ID(PID)°¡ ¸ÅÄ¡°¡ ¾ÈµÇ¾îµµ ÀÌ µð½ºÅ©¸³Å͵éÀº ¾î¶² µå¶óÀ̹ö¸¦ ·ÎµåÇÒÁö¸¦ OS¿¡°Ô Áö½ÃÇϱâÀ§ÇÑ Å¬¶ó½º ÄÚµåµéÀ» Æ÷ÇÔÇÑ´Ù.

Remote NDIS
Back to Top

NDIS´Â ÀüÅëÀûÀÎ ³×Æ®¿öÅ© ¾î´ðÅ͵鿡 ´ëÇØ¼­ ³ÐÀº ¹üÀ§ÀÇ functionality¸¦ Áö¿øÇÑ´Ù. ³×Æ®¿öÅ© ¾î´ðÅÍÀÇ ÀáÀçÀûÀÎ Å« ¼ÂÀÇ Æ¯¼ºµéÀÌ NDIS-defined Object Identifiers(OIDs)¸¦ ÅëÇØ¼­ °ü¸®µÇ°í ¿ÜºÎ·Î µå·¯³½´Ù. ÀÌ OIDµéÀº ¾î´ðÅÍ¿¡ ´ëÇÑ NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¿¡ ÀÇÇØ Á¦°øµÇ´Â ÀüÅëÀûÀÎ ¼­ºñ½ºÀÌ´Ù. Remote NDIS ´Â OIDsµéÀ» ÀåÄ¡¿¡°Ô º¸³»°í ¾î´ðÅÍ »ó¼ú ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ Á¦°ÅÇÔÀ¸·Î½á ½ºÆåÀÇ Å« ¸ö°ú ±¸Á¶ ÀÛ¾÷À» Åõ±âÇÑ´Ù. ¾î¶² Àǹ̿¡¼­´Â ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â RNDIS-½Ã۴´ë·Î ³×Æ®¿öÅ© ¾î´ðÅͷμ­ ¼öÇàµÈ´Ù.

¾î´ðÅÍÀÇ °üÁ¡¿¡¼­ º¸¸é, Remote NDIS´Â Á¦¾î ¸Þ½ÃÁöµéÀÇ ÀÛÀº ¼ÂÀ̰í OIDµé°ú µ¥ÀÌÅÍ ÆÐŶµé¿¡ ´ëÇÑ Åë·Î¸¦ ±¸¼ºÇÑ´Ù.´ÙÀ½¿¡ º¸¸é Remote NDIS ¸Þ½ÃÁöµé°ú µ¥ÀÌÅÍ ¸Þ½ÃÁöµéÀÌ ÀÖ´Ù. ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº Remote NDIS ½ºÆåÀ» º¸¾Æ¶ó.

Table 1: Control messages sent by the host PC to the adapter

Message Description
REMOTE_NDIS_INITIALIZE_MSG ¾î´ðÅ͸¦ ÃʱâÈ­ ÇÑ´Ù.
REMOTE_NDIS_QUERY_MSG 'query' OID º¸³½´Ù.
REMOTE_NDIS_SET_MSG 'set' OID º¸³½´Ù.
REMOTE_NDIS_KEEPALIVE_MSG ÀåÄ¡°¡ ÀÀ´äÀ» ÇÏ´ÂÁö¸¦ °Ë»çÇϱâ À§Çؼ­ ½¬´Â ½Ã°£µ¿¾È¿¡ ¸ÅÃÊ(ÀûÀº ÃÊ)¸¶´Ù º¸³½´Ù.
REMOTE_NDIS_RESET_MSG ¾î´ðÅÍ¿¡ ´ëÇØ¼­ ¼ÒÇÁÆ® ¸®¼ÂÀ» ¼öÇàÇÑ´Ù.
REMOTE_NDIS_HALT_MSG ¾î´ðÅ͸¦ ÇÛÆ® ÇÑ´Ù. À̰ÍÀº È£½ºÆ® Á¦¾î ¸Þ½ÃÁö Áß¿¡¼­ À¯ÀÏÇÏ°Ô ÀÀ´äÇÏÁö ¾Ê´Â ¸Þ½ÃÁöÀÌ´Ù.

Table 2: Control messages sent by the adapter to the host PC

Message Description
REMOTE_NDIS_INITIALIZE_CMPLT Response to REMOTE_NDIS_INITIALIZE_MSG.
Contains fields for reporting the adapter buffering and alignment constraints.
REMOTE_NDIS_QUERY_CMPLT Response to REMOTE_NDIS_QUERY_MSG.
REMOTE_NDIS_SET_CMPLT Response to REMOTE_NDIS_SET_MSG.
REMOTE_NDIS_KEEPALIVE_CMPLT Response to REMOTE_NDIS_KEEPALIVE_MSG.
If this response is not returned in time, or if it is returned with an error status, the host sends RndisReset.
REMOTE_NDIS_RESET_CMPLT Response to REMOTE_NDIS_RESET_MSG.
REMOTE_NDIS_INDICATE_STATUS_MSG Indicates that the Ethernet cable has been connected or disconnected.

Remote NDIS ½ºÆåÀº ¾î´ðÅͰ¡ Áö¿øÇØ¾ß ÇÏ´Â OIDµéÀ» ³ª¿­ÇÑ´Ù. ½ºÆåÀº ¶ÇÇÑ ¾î´ðÅͰ¡ value Ãß°¡µÈ Ư¼ºµéÀ» Áö¿øÇÒ ¼ö ÀÖ´Â Ãß°¡ÀûÀÎ OIDµéÀ» ³ª¿­ÇÑ´Ù.

Table 3: µ¥ÀÌÅÍ ¸Þ½ÃÁö´Â ÆÐŶµéÀ» Àü¼ÛÇϱâÀ§Çؼ­ PC¿Í ¾î´ðÅÍ¿¡¼­ »ç¿ëµÈ´Ù.

Message Description
REMOTE_NDIS_PACKET_MSG Ethernet packetÀ» Àü¼ÛÇÑ´Ù.

±¸Çö ¼ø¼­¸¦ º¸¸é, Remote NDIS Ethernet ¾î´ðÅÍ¿Í È£½ºÆ® PC´Â ¾Æ·¡¿Í °°ÀÌ ¸Þ½ÃÁöµéÀ» ±³È¯ÇØ¾ß ÇÑ´Ù.

  1. USB Remote NDIS Ethernet ¾î´ðÅÍ´Â USB ·¹º§¿¡¼­ ÃʱâÈ­µÇ°í Ç÷¯±×ÀÎ µÈ´Ù.
  2. ±×¶§ È£½ºÆ®´Â REMOTE_NDIS_INITIALIZE_MSG ¸¦ ¾î´ðÅ͸¦ ÃʱâÈ­Çϱâ À§Çؼ­ º¸³½´Ù.
  3. ¾î´ðÅÍ´Â ¾î´ðÅÍÀÇ buffering and alignment constraints¸¦ Áö½ÃÇϱâ À§Çؼ­ REMOTE_NDIS_INITIALIZE_CMPLT ·Î ÀÀ´äÇÑ´Ù.
  4. ±×¶§ È£½ºÆ®´Â »õ·Î¿î ¾î´ðÅ͸¦ ±¸¼ºÇϰųª ÁúÀÇÇϰųª ¾î´ðÅÍÀÇ ÆÐŶ ÇÊÅ͸¦ ¼Â ÇϱâÀ§Çؼ­ REMOTE_NDIS_QUERY_MSG ¿Í REMOTE_NDIS_SET_MSG ¸Þ½ÃÁöµéÀ» »ç¿ëÇÑ´Ù.
  5. ¾î´ðÅÍ´Â °¢°¢ REMOTE_NDIS_QUERY_CMPLT ¿Í REMOTE_NDIS_SET_CMPLT ¸Þ½ÃÁöµé·Î ÀÀ´äÀ» ÇÑ´Ù.
  6. ¾î´ðÅͰ¡ ÃʱâÈ­°¡ µÈ ÈÄ¿¡ ¾î´ðÅÍ´Â ³×Æ®¿öÅ©·ÎºÎÅÍ ¹ÞÀº Ethernet ÆÐŶµéÀ» È£½ºÆ®¿¡°Ô ¸®ÅÏÇϱâ À§Çؼ­ REMOTE_NDIS_PACKET_MSG ¸Þ½ÃÁöµéÀ» º¸³»±â ½ÃÀÛÇÑ´Ù. ±×¸®°í È£½ºÆ®´Â ³×Æ®¿öÅ©¿¡ Ethernet ÆÐŶµéÀ» º¸³»±âÀ§Çؼ­ REMOTE_NDIS_PACKET_MSG ¸Þ½ÃÁöµéÀ» º¸³»±â ½ÃÀÛÇÑ´Ù.
  7. È£½ºÆ®°¡ ¸î ÃÊ µ¿¾È ¾î´ðÅͷκÎÅÍ ÆÐŶµéÀ» ¹ÞÁö ¾Ê¾Ò´Ù¸é, È£½ºÆ®´Â ¾î´ðÅͰ¡ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϰí ÀÖ´ÂÁö¸¦ °Ë»çÇϱâ À§Çؼ­ REMOTE_NDIS_KEEPALIVE_MSG ¸¦ º¸³½´Ù. ¾î´ðÅÍ´Â REMOTE_NDIS_KEEPALIVE_CMPLT·Î ÀÀ´äÇÑ´Ù.
  8. ¾î´ðÅ͸¦ ÇÛÆ®Çϱâ À§Çؼ­´Â(¿¹¸¦ µé¸é, À©µµ¿ì°¡ ¼Ë´Ù¿î µÇ°Å³ª Çϵå¿þ¾î ¸®¼Ò½º¸¦ rebalancingÇϱâÀ§Çؼ­ ÀåÄ¡¸¦ ¸ØÃß´Â °Í), È£½ºÆ®´Â REMOTE_NDIS_HALT_MSG ¸¦ º¸³½´Ù.

Remote NDIS ´Â ÇϳªÀÇ ¹ö½º Àü¼Û¿¡¼­ ¿©·¯ °³ÀÇ RndisPacketµéÀ» °áÇÕÇÏ´Â °ÍÀ» Á¦°øÇÑ´Ù. ¾î´ðÅÍ ÂÊ¿¡¼­ º¸¸é, ÇѹøÀÇ Àü¼Û¿¡ ¿©·¯ °³ÀÇ ÆÐŶÀ» º¸³»´Â °ÍÀº ÁÁÀº ¼º´ÉÀ» À§Çؼ­ ¾ÆÁÖ ÇÊ¿äÇÏ´Ù.

USB Remote NDIS Ethernet Adapter
Back to Top

°¢°¢ÀÇ ¹ö½º ŸÀÔ¿¡ ´ëÇØ¼­, Á¦¾î ¸Þ½ÃÁöµé°ú µ¥ÀÌÅÍ ¸Þ½ÃÁöµéÀº ¾î´ðÅÍ¿¡°Ô ´Ù¸¥ ¹æ¹ýÀ¸·Î Àü¼ÛµÇ¾î¾ß ÇÑ´Ù. Remote NDIS ½ºÆåÀº °¢°¢ÀÇ Áö¿øµÇ´Â ¹ö½º¿¡ ´ëÇÑ ¹®¼­¸¦ Æ÷ÇÔÇÑ´Ù. °¢°¢ÀÇ Áö¿øµÇ´Â ¹ö½º´Â ±× ¹ö½º¿¡¼­ ¸Þ½ÃÁö Àü¼Û¿¡ °ü°èµÈ ³·Àº ·¹º§ÀÇ ³»¿ëµéÀ» ¼³¸íÇÑ´Ù.

USB ¹®¼­¿¡´Â Á¦¾î ¸Þ½ÃÁöµé°ú µ¥ÀÌÅÍ ¸Þ½ÃÁöµéÀÌ ¾î¶»°Ô ÀåÄ¡ ¿£µåÆ÷ÀÎÆ®µé¿¡°Ô ¾îµå·¹½Ì µÇ´ÂÁö¸¦ ¼³¸íÇÑ´Ù. USB Remote NDIS ÀåÄ¡´Â ´ÙÀ½¿¡ ÀÖ´Â ¿£µåÆ÷ÀÎÆ®µéÀ» ¼öÇàÇÏ´Â °ÍÀÌ ¿ä±¸µÇ¾îÁø´Ù.

  • µ¥ÀÌÅ͸¦ ÀÏ°í ¾²±â À§ÇÑ µÎ°³ÀÇ ¹úÅ© ¿£µåÆ÷ÀÎÆ®.
  • ÀåÄ¡ ÅëÁö¸¦ À§ÇÑ ÀÎÅÍ·´Æ® ¿£µåÆ÷ÀÎÆ®.
  • ¾î¶² USB ÀåÄ¡¿¡ ´ëÇØ¼­µµ ¿ä±¸ÇÒ ¼ö ÀÖ´Â ÀϹÝÀûÀÎ Á¦¾î ¿£µåÆ÷ÀÎÆ®. ÀÌ bi-directional Á¦¾î ¿£µåÆ÷ÀÎÆ®´Â Remote NDIS Á¦¾î ¸Þ½ÃÁöµéÀ» À§Çؼ­ »ç¿ëµÈ´Ù.

USB Remote NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ²÷ÀÓ¾øÀÌ ÀåÄ¡ ÅëÁöµéÀ» À§ÇÑ ÀÎÅÍ·´Æ® ¿£µåÆ÷ÀÎÆ®¸¦ Àд´Ù. À¯ÀÏÇÏ°Ô Á¤ÀÇµÈ ÅëÁö´Â È£½ºÆ®°¡ Á¦¾î ¿£µåÆ÷ÀÎÆ®¸¦ Àоî¾ß ÇÑ´Ù´Â °ÍÀ» Áö½ÃÇÑ´Ù. ÀÌ¿Í °°ÀÌ ÇÏ´Â °ÍÀº È£½ºÆ®°¡ Á¦¾î ¿£µåÆ÷ÀÎÆ®¿¡¼­ ÀÐÀ» ¾î¶² °ÍÀÌ ÀÖÀ» ¶§±îÁö Á¦¾î ¿£µåÆ÷ÀÎÆ®¿¡°Ô ÀÐÀ¸¶ó´Â °ÍÀ» Àü¼ÛÇØ¾ß ÇÒ Çʿ伺À» Á¦°ÅÇØ ÁØ´Ù.

´ÙÀ½ ÀåÀº USB Remote NDIS Ethernet¾î´ðÅÍÀÇ ÀÎÅÍÆäÀ̽º¿Í ¿£µåÆ÷ÀÎÆ® ±¸Á¶¸¦ ¼³¸íÇÑ µð½ºÅ©¸³Å͵éÀÇ ¿¹Á¦¸¦ º¸¿©ÁØ´Ù.

Sample USB Remote NDIS Ethernet Adapter
Back to Top

´ÙÀ½Àº USB Remote NDIS Ethernet ¾î´ðÅÍ¿¡ ´ëÇÑ µð½ºÅ©¸³Å͵éÀÇ ¿¹Á¦ÀÌ´Ù. À̰ÍÀº Communication Class interface¿Í Data Class interface¸¦ Æ÷ÇÔÇÑ´Ù. Communication Class interface¿Í Data Class interface´Â ¾î´ðÅͰ¡ ÀûÇÕÇÑ USB Communication Device Class(CDC) ÀåÄ¡·Î¼­ ÀûÇÕÇÑ ¾î´ðÅÍ¿¡ ´ëÇØ¼­´Â ¿ä±¸µÇ¾î Áø´Ù.(ºñ·Ï Single-function ÀåÄ¡ ÀÏÁö¶óµµ).

ÀåÄ¡ µð½ºÅ©¸³ÅÍ´Â µ¶¸³ÀûÀ¸·Î ¸®ÅϵȴÙ. ±¸¼º µð½ºÅ©¸³ÅÍ¿Í ¸ðµç ´ÙÀ½¿¡ ÀÖ´Â µð½ºÅ©¸³Å͵éÀº ´ÙÀ½¿¡ º¸¿©Áö´Â ¼ø¼­´ë·Î ÇϳªÀÇ ºí·ÏÀ¸·Î¼­ ¸®ÅϵȴÙ..

Á¦¾î ¸Þ½ÃÁöµéÀº Á¦¾î ¿£µåÆ÷ÀÎÆ®¿¡ º¸³½´Ù. ÅëÁö ¸Þ½ÃÁöµéÀº Communication Class interface ¾È¿¡ ÀÖ´Â ÀÎÅÍ·´Æ® ¿£µåÆ÷ÀÎÆ®¿¡ º¸³½´Ù. µ¥ÀÌÅÍ ¸Þ½ÃÁöµéÀº µ¥ÀÌÅÍ ÀÎÅÍÆäÀ̽º ¾È¿¡ ÀÖ´Â ¹úÅ© In°í ¹úÅ©Out ¿£µåÆ÷ÀÎÆ®¿¡°Ô º¸³½´Ù. °£´ÜÈ÷ ¼³¸íÇϱâÀ§Çؼ­, ½ºÆ®¸µ µð½ºÅ©¸³Å͵éÀº º¸¿©ÁÖÁö ¾Ê°Ú´Ù.

Note: À©µµ¿ì Me¿¡¼­ Remote NDIS ¼öÇàÀº Communication Class interface °¡ Data Class interfaceº¸´Ù ¼±ÇàµÈ´Ù´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. º¥´õµéÀº ÀåÄ¡°¡ ¿Ã¹Ù¸£°Ô À©µµ¿ì Me¿¡¼­ ÃʱâÈ­ ½Ã۱â À§Çؼ­´Â ÀÌ µð½ºÅ©¸³ÅÍ ¼ø¼­¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù.

ÀÌ ¿¹Á¦ÀÇ ¾î¶² ºÎºÐÀÌ Á¦¾îÇÏ´Â ½ºÆåÀ» ¹Ý¹ÚÇÏ´Â °ÍÀ̶ó¸é, ±× ½ºÆåÀÌ ¿ì¼±ÀÌ µÈ´Ù.

Device Descriptor

Table A1: USB Device Descriptor

Offset Field Size Value Description
0 bLength 1 0x12 µð½ºÅ©¸³ÅÍÀÇ Å©±â(¹ÙÀÌÆ® Å©±â)
1 bDescriptorType 1 0x01 ÀåÄ¡ µð½ºÅ©¸³ÅÍ.
2 bcdUSB 2 0x0110 1.1 - ÇöÀç USB ½ºÆå ¹öÀü
4 bDeviceClass 1 0x02 Communication Device Class
5 bDeviceSubClass 1 0x00 Unused
6 bDeviceProtocol 1 0x00 Unused
7 bMaxPacketSize0 1 0x08 Á¦¾î ÆÄÀÌÇÁ¿¡¼­ ÃÖ°í ÆÐŶ Å©±â.
8 idVendor 2 0xXXXX Vendor ID
10 idProduct 2 0xXXXX Product ID
12 bcdDevice 2 0xXXXX Device Release Code
14 iManufacturer 1 0x01 Index of manufacturer string
15 iProduct 1 0x02 Index of product string
16 iSerialNumber 1 0x03 Index of device serial number string
17 bNumConfigurations 1 0x01 One configuration

Configuration Descriptor

Table A2: USB Configuration Descriptor

Offset Field Size Value Description
0 bLength 1 0x09 µð½ºÅ©¸³ÅÍÀÇ Å©±â(¹ÙÀÌÆ® Å©±â)
1 bDescriptorType 1 0x02 CONFIGURATION descriptor
2 wTotalLength 2 0x003E Àüü ±¸¼º ºí·ÏÀÇ ±æÀÌ. ÀÌ ±æÀÌ´Â ÀÌ ±¸¼º µð½ºÅ©¸³ÅÍÀÇ ±æÀÌ¿Í ´ÙÀ½¿¡ µû¸£´Â ¸ðµç µð½ºÅ©¸³Å͵éÀÇ ±æÀ̸¦ ³ªÅ¸³½´Ù.
4 bNumInterfaces 1 0x02 µÎ°³ÀÇ ÀÎÅÍÆäÀ̽º°¡ ÀÖ´Ù.
5 bConfigurationValue 1 0x01 ID of this configuration
6 iConfiguration 1 0x00 Unused
7 bmAttributes 1 0x80 Bus Powered
8 MaxPower 1 0x64 200 mA

Interface Descriptor for Communication Class Interface

Table A3: USB Communication Class Interface Descriptor

Offset Field Size Value Description
0 bLength 1 0x09 µð½ºÅ©¸³ÅÍÀÇ Å©±â(¹ÙÀÌÆ® Å©±â)
1 bDescriptorType 1 0x04 INTERFACE descriptor
2 bInterfaceNumber 1 0x00 Index of this interface
3 bAlternateSetting 1 0x00 Index of this setting
4 bNumEndpoints 1 0x01 One endpoint
5 bInterfaceClass 1 0x02 Communication Class
6 bInterfaceSubclass 1 0x02 Abstract Control Model
7 bInterfaceProtocol 1 0xFF Vendor-specific protocol
8 iInterface 1 0x00 Unused

´ÙÀ½¿¡ ÀÖ´Â USB Communication ClassÀÇ Å¬¶ó½º-½ºÆå µð½ºÅ©¸³Å͵éÀÌ´Ù. ±×·¸µíÀÌ, ÀÌ Å¬¶ó½º-½ºÆå µð½ºÅ©¸³Å͵éÀº Communication Class Interface µð½ºÅ©¸³ÅͰ¡ ÀÖÀ» °ÍÀ̰í Communication Class Interface¿¡ ´ëÇÑ ¾î¶² ¿£µåÆ÷ÀÎÆ® µð½ºÅ©¸³Å͵éÀÌ ÀÖÀ» °ÍÀÌ´Ù.

Table A4: USB Communication Class Call Management Descriptor

Offset Field Size Value Description
0 bLength 1 0x05 Size of this descriptor, in bytes
1 bDescriptorType 1 0x24 CS_INTERFACE; i.e. applies to interface (not endpoint)
2 bDescriptorSubtype 1 0x01 Call Management Descriptor
3 bmCapabilities 1 0x00 Device does not handle Call Management itself.
No Call Management functionality in Data Class Interface.
4 bDataInterface 1 0x01 bInterfaceNumber of Data Class Interface

Table A5: USB Communication Class Abstract Control Management Descriptor

Offset Field Size Value Description
0 bLength 1 0x04 Size of this descriptor, in bytes
1 bDescriptorType 1 0x24 CS_INTERFACE; that is, applies to interface (not endpoint)
2 bDescriptorSubtype 1 0x02 Abstract Control Management Descriptor
3 bmCapabilities 1 0x00 None

Table A6: USB Communication Class Union Functional Descriptor

Offset Field Size Value Description
0 bLength 1 0x05 Size of this descriptor, in bytes
1 bDescriptorType 1 0x24 CS_INTERFACE; that is, applies to interface (not endpoint)
2 bDescriptorSubtype 1 0x06 Union Functional Descriptor
3 bMasterInterface 1 0x00 bInterfaceNumber of the Communication Class Interface
4 BSlaveInterface0 1 0x01 bInterfaceNumber of Data Class Interface

Notification Endpoint Descriptor

Table A7: Descriptor for Notification Endpoint

Offset Field Size Value Description
0 bLength 1 0x07 Size of this descriptor, in bytes
1 bDescriptorType 1 0x05 ENDPOINT descriptor
2 bEndpointAddress 1 0x81 Endpoint 1 IN
3 bmAttributes 1 0x03 Interrupt Endpoint
4 wMaxPacketSize 2 0x0008 8-byte maximum packet size
6 bInterval 1 0x01 Polling interval

Interface Descriptor for Data Class Interface

Table A8: USB Data Class Interface Descriptor

Offset Field Size Value Description
0 bLength 1 0x09 Size of this descriptor, in bytes
1 bDescriptorType 1 0x04 INTERFACE descriptor
2 bInterfaceNumber 1 0x01 Index of this interface
3 bAlternateSetting 1 0x00 Index of this setting
4 bNumEndpoints 1 0x02 Two endpoints
5 bInterfaceClass 1 0x0A Data Class
6 bInterfaceSubclass 1 0x00 Unused
7 bInterfaceProtocol 1 0x00 Unused
8 iInterface 1 0x00 Unused

Data In Endpoint Descriptor

Table A9: Descriptor for Bulk IN Endpoint

Offset Field Size Value Description
0 bLength 1 0x07 Size of this descriptor, in bytes
1 bDescriptorType 1 0x05 ENDPOINT descriptor
2 bEndpointAddress 1 0x82 Endpoint 2 IN
3 bmAttributes 1 0x02 Bulk Endpoint
4 wMaxPacketSize 2 0x0040 64-byte maximum packet size
6 bInterval 1 0x00 Unused

Data Out Endpoint Descriptor

Table A10: Descriptor for Bulk OUT Endpoint

Offset Field Size Value Description
0 bLength 1 0x07 Size of this descriptor, in bytes
1 bDescriptorType 1 0x05 ENDPOINT descriptor
2 bEndpointAddress 1 0x03 Endpoint 3 OUT
3 bmAttributes 1 0x02 Bulk Endpoint
4 wMaxPacketSize 2 0x0040 64-byte maximum packet size
6 bInterval 1 0x00 Unused

OS Descriptor

Ç¥ÁØ USB µð½ºÅ©¸³Å͵鿡 Ãß°¡Çؼ­, Remote NDIS ½ºÆåÀº ¾î´ðÅÍÀÇ VID/PID°¡ À©µµ¿ì INF ¿¡ ÀÖ´Â °ª°ú °°Áö ¾Ê¾Æµµ OS°¡ PnP Usb Remote NDIS ¾î´ðÅ͸¦ ¿Ã¹Ù¸£°Ô ¹ß°ßÇÒ ¼ö ÀÖ°Ô ÇÒ ¼ö ÀÖ´Â Ãß°¡ÀûÀÎ OS µð½ºÅ©¸³Å͸¦ Á¤ÀÇÇÑ´Ù. OS µð½ºÅ©¸³ÅÍ´Â USB Remote NDIS ¾î´ðÅ͵鿡 ´ëÇØ¼­ °­·ÂÇÏ°Ô ÃßõÇÑ´Ù. À©µµ¿ì Me ´Â OS µð½ºÅ©¸³Å͸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­, INFÀÇ VIP/PID´Â »ç¿ëÀÚÁ¦°ø¹Ìµð¾î¿¡ Á¸ÀçÇØ¾ß ÇÑ´Ù.

Call to Action
Back to Top

  • Çϵå¿þ¾î º¥´õµéÀº Remote NDIS ½ºÆå°ú ÀÌ ¹®¼­¿¡ ¼³¸íµÇ¾îÁø °Í°ú °°ÀÌ ±×µéÀÇ ÀåÄ¡µé¿¡ ´ëÇØ¼­ USB Remote NDIS¸¦ Áö¿øÇØ¾ß ÇÑ´Ù.
  • À©µµ¿ì OS¿¡¼­ USB Remote NDIS¿Í °ü·ÃµÈ Áú¹®°ú ´äº¯Àº rndisfb@microsoft.com ·Î À̸ÞÀÏÀ» º¸³»¶ó.

References
Back to Top

Windows DDK, available for download at
http://www.microsoft.com/ddk/

Universal Serial Bus Specification, Revision 1.1, at
http://www.usb.org/developers/ This link leaves the Microsoft.com site

USB Communications Device Class Specificaiton, Revision 1.0, at
http://www.usb.org/developers/ This link leaves the Microsoft.com site

Remote NDIS Specification, Revision 1.0, at
http://www.microsoft.com/hwdev/network/