Windows 2000 Network Driver Update 

Contents 

Implementing Support for Media Sense 

Clarifications to the TCP/IP - NDIS Task Offload DDK Documentation 

NDIS_TASK_OFFLOAD_HEADER Definition Revision NDIS_TASK_OFFLOAD_HEADER Members 

Comments 

Revisions to Task Offload Objects 

Querying an Adapter's Task-Offload Capabilities 

Enabling an Adapter's Task-Offload Capabilities 

Disabling an Adapter's Task-Offload Capabilities 

Changing an Adapter's Task-Offload Capabilities 

Changes to NDIS_TASK_OFFLOAD Structure 

NDIS_TASK_OFFLOAD Definition 

NDIS_TASK_OFFLOAD Members 

Getting Ready for Large Memory-Enabled Windows 

Building Drivers with Symbols (dbg and pdb) 

ÀÌ ±â»ç´Â À©µµ¿ìÁî ÀÌõ DDKÀÇ ¹Ì·¡ release¿¡¼­ Á¦°øµÉ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® À©µµ¿ìÁî ÀÌõ ³×Æ®¿öÅ© µå¶óÀ̹öµé¿¡ ´ëÇÑ »õ·Î¿î Á¤º¸¸¦ Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ Á¤º¸´Â À©µµ¿ìÁî ÀÌõÀ» À§ÇÑ µå¶óÀ̹öµéÀ» °³¹ßÇÏ´Â µå¶óÀ̹ö °³¹ßÀڵ鿡 ´ëÇÑ timely Á¤º¸¸¦ Á¦°øÇϱâ À§ÇØ ÀÌ¿ëµÉ ¼ö ÀÖ´Ù. 

Implementing Support for Media Sense 

¹Ìµð¾î ¼¾½º¸¦ À§ÇØ followÇÏ´Â Àü¹ÝÀûÀÎ ±ÔÄ¢Àº ´ÙÀ½°ú °°´Ù. : ¸¸¾à º¯È­ »óŰ¡ ¹ß»ýÇÏ¸é ¹Ìµð¾î À̺¥Æ®¸¦ ÀεðÄÉÀÌÆ®ÇÑ´Ù. ´ÙÀ½Àº ÀÀ¿ëÇÒ ¼ö ÀÖ´Â ½Ã³ª¸®¿ÀµéÀ» ¼³¸íÇÑ´Ù. 

Connect/Disconnect 

  • ¸¸¾à ¿¬°áµÈ ÀåÄ¡°¡ ¿¬°áµÇÁö ¾Ê´Â´Ù¸é, 2Ãʳ» disconnect À̺¥Æ®¸¦ ¹ßÇàÇØ¾ß ÇÑ´Ù. 
  • ¸¸¾à ºñ¿¬°áµÈ ÀåÄ¡°¡ ¿¬°áµÇ¸é, 2Ãʳ» ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇØ¾ß ÇÑ´Ù. 

Reset 

  • ¸¸¾à ¿¬°áµÈ ÀåÄ¡°¡ ¸®¼ÂµÇ¸é, ¾î¶² ºñ¿¬°á ȤÀº ¿¬°á À̺¥Æ®µéÀ»¸¦ ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. (Preferred) ȤÀº ÇϳªÀÇ ºñ¿¬°á ±×¸®°í ÇϳªÀÇ ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇϸé, À̰ÍÀº ¸®¼Â ¿Ï·áÈÄ 2Ãʳ»¿¡ ¹ß»ýÇØ¾ß ÇÑ´Ù. 
  • ¸¸¾à ºñ¿¬°á ÀåÄ¡°¡ ¸®¼ÂµÇ¸é, ¾î¶² ºñ¿¬°á À̺¥Æ®µéÀ» ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. 

Halt 

  • ¸¸¾à ¿¬°á ȤÀº ºñ¿¬°á ÀåÄ¡°¡ haltµÇ¸é, ¾î¶² ¹Ìµð¾î À̺¥Æ®µéÀ» ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. 

Load 

  • ¸¸¾à ¿¬°áµÈ ÀåÄ¡°¡ ·ÎµåµÇ¸é, Network Driver Interface Specification(NDIS) Àº ÀåÄ¡°¡ ¿¬°áµÇ¾ú´Ù°í ÃßÃøÇÏ°í ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. (Preferred) ȤÀº ÃʱâÈ­ ¿Ï·áÈÄ 2Ãʳ» ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇÏ´Â °ÍÀ» Çã¶ôÇÒ ¼ö ÀÖ´Ù. 
  • ¸¸¾à ºñ¿¬°á ÀåÄ¡°¡ ·ÎµåµÇ¸é, ÃʱâÈ­ ¿Ï·áÈÄ 2Ãʳ»¿¡ ºñ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇØ¾ß ÇÑ´Ù. 

Sleep 

  • ¸¸¾à ¿¬°áµÈ ȤÀº ºñ¿¬°áµÈ ÀåÄ¡°¡ sleep »óÅ¿¡ ³õÀδٸé, ¹Ìµð¾î À̺¥Æ®¸¦ ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. 
  • ¸¸¾à ¿¬°áµÈ ÀåÄ¡°¡ sleep »óÅ¿¡¼­ ¹þ¾î³ª°í sleepÇÒ ¶§ ¿¬°áµÇ¸é, ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. (¹ø¿ª ´Ù½Ã) 
  • ¸¸¾à ºñ¿¬°á ÀåÄ¡°¡ sleep »óÅ¿¡¼­ ¹þ¾î³ª°í sleepÇÒ ¶§ ºñ¿¬°áµÇ¸é, ºñ¿¬°á À̺¥Æ®¸¦ ¹ß»ýÇÒ Çʿ䰡 ¾ø´Ù. 
  • ¸¸¾à ¿¬°á »óŰ¡ ÀåÄ¡°¡ asleepÇÏ´Â µ¿¾È º¯ÇÑ´Ù¸é, ±ú¾î³µÀ» ¶§ ±ú¾î³­ ÈÄ 2Ãʳ» »õ·Î¿î »óŸ¦ °¡¸®Å°´Â À̺¥Æ®¸¦ ¹ß»ýÇØ¾ß ÇÑ´Ù. 

NOTES

  • ·ÎµùÇϰųª ±ú¾î³¯ ¶§, ÀåÄ¡´Â ¿¬°á »óŰ¡ °áÁ¤µÉ ¶§±îÁö OID_GEN_(CO_)MEDIA_CONNTECT_STATUS¿¡ ´ëÇÑ ÀÀ´äÀ» À¯ÁöÇØ¾ß ÇÑ´Ù. 
  • wake »óÅÂÀÇ °áÁ¤Àº ÃʱâÈ­¸¦ ´À¸®°Ô ÇÒ Çʿ䰡 ¾ø´Ù. 
  • ¸®¼ÂµéÀº ¿¬°á »óŰ¡ °áÁ¤µÉ ¶§±îÁö ¿Ï¼ºÇÒ Çʿ䰡 ¾ø´Ù. 
  • ÅäÅ«¸µ ¾î´ðÅ͵é°ú µå¶óÀ̹öµéÀº Àü¿¡ ¾ð±ÞµÈ ¸ðµç »óȲµé¿¡¼­ ¹Ìµð¾î À̺¥Æ®µéÀ» ¹ß»ýÇϱâ À§ÇØ 30ÃʱîÁö °É¸± ¼ö ÀÖ´Ù. 

Clarifications to the TCP/IP - NDIS Task Offload DDK Documentation 

NDIS¸¦ ÅëÇØ NIC Çϵå¿þ¾î¿¡ TCP/IP offloadµéÀ» ½ÇÇàÇÏÀÚ¸¶ÀÚ, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®´Â clarificationÀÇ Çʿ信 ÀÇÇØ DDK ¹®¼­ÀÇ ¸î¸î ¿µ¿ªµéÀÌ ÀÖ´Ù´Â °ÍÀ» ¾È´Ù. ÀÌ·¯ÇÑ clarificationµéÀº Çö ¹®¼­¿¡¼­ ¹ß»ýÇÏ´Â ¹®Á¦µéÀ» ´äÇÏ·Á°í ÇÑ´Ù. ´ÙÀ½ Á¤º¸´Â À©µµ¿ìÁî ÀÌõ DDK³» Ãß°¡µÇ°Å³ª º¯È­µÈ °ÍÀÌ´Ù. 

NDIS_TASK_OFFLOAD_HEADER Definition Revision 

typedef struct _NDIS_TASK_OFFLOAD_HEADER 

    ULONG Version <>; 

    ULONG Size <>; 

    ULONG Reserved <>; 

    UCHAR OffsetFirstTask <>; 

    NDIS_ENCAPSULATION_FORMAT EncapsulationFormat <>; 

} NDIS_TASK_OFFLOAD_HEADER, *PNDIS_TASK_OFFLOAD_HEADER;

 NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼´Â ¹Ì´ÏÆ÷Æ®°¡ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ offloadµÈ ŽºÅ©µéÀ» ÇàÇÏ´Â ¼Û½Å°ú ¼ö½Å ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È­µ· Æ÷¸ËÀ» ÁöÁ¤ÇÑ´Ù. 

NDIS_TASK_OFFLOAD_HEADER Members 

Version 

TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ Áö¿øµÇ´Â task-offload ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº Ç×»ó NDIS_TASK_OFFLOAD_VERSIONÀ¸·Î ¼³Á¤µÈ´Ù. 

Size 

NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼ÀÇ Å©±â¸¦ ¹ÙÀÌÆ®·Î ÁöÁ¤ÇÑ´Ù. Size´Â sizeof(NDIS_TASK_OFFLOAD_HEADER)·Î ¼³Á¤µÇ°í NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼ÀÇ ¹öÀüÀ» °áÁ¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù. 

Reserved 

¿¹¾à 

OffsetFirstTask 

InformationBufferÀÇ ½ÃÀÛ¿¡¼­ºÎÅÍ Ã¹ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼·Î ¿É¼ÂÀ» ¹ÙÀÌÆ®·Î ÁöÁ¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â OID_TCP_TASK_OFFLOADÀÇ Äõ¸®¿¡ ÀÀ´äÇÒ ¶§ ÀÌ °ªÀ» ¼³Á¤Çϴ åÀÓÀ» Áø´Ù. TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÒ ¶§ ÀÌ °ªÀ» ¼³Á¤ÇÒ Ã¥ÀÓÀÌ ÀÖ´Ù. ¸¸¾à NDIS_TASK_OFFLOAD ±¸Á¶Ã¼°¡ InformationBuffer¿¡ ¾ø´Ù¸é, OffsetFirstTask´Â 0À¸·Î ¼³Á¤µÈ´Ù.

 EncapsulationFormat 

¹Ì´ÏÆ÷Æ®ÀÇ NICÀ» ÅëÇØ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ È¤Àº TCP/IP Àü¼Û °èÃþ¿¡ Àü´ÞµÇ´Â ¼Û½Å°ú ¼ö½Å ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È­ Æ÷¸ËÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ·¯ÇÑ Á¤º¸´Â ´ÙÀ½°ú Á¤ÀÇµÈ NDIS_ENCAPSULTION_FORMAT ±¸Á¶Ã¼·Î Æ÷¸ËÈ­µÈ´Ù. 

typedef struct _NDIS_ENCAPSULATION_FORMAT 

     NDIS_ENCAPSULATION Encapsulation 

    {  

         ULONG FixedHeaderSize:1; 

         ULONG Reserved:31; 

    } Flags; 

    ULONG EncapsulationHeaderSize; 

} NDIS_ENCAPSULATION_FORMAT, *PNDIS_ENCAPSULATION_FORMAT; 

ÀÌ·¯ÇÑ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½°ú °°Àº Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù. : 

Encapsulation 

´ÙÀ½ °ªµéÀÇ Çϳª·Î ĸ½¶È­ ŸÀÔÀ» ÁöÁ¤ÇÑ´Ù. 

UNSPECIFIED_Encapsulation 

¾Æ·¡ ¸®½ºÆ®µÈ ĸ½¶È­¿Í´Â ´Ù¸¥ ĸ½¶È­ 

NULL_Encapsulation 

ÀÌ °ªÀº ¹Ì·¡ »ç¿ëÀ» À§ÇØ ¿¹¾àµÊ 

IEEE_802_3_Encapsulation 

IEEE 802.3 ĸ½¶È­(Ethernet_DIX) 

IEEE_802_5_Encapsulation 

IEEE 802.5 encapsulation 

LLC_SNAP_ROUTED_Encapsulation 

¿¹¸¦ µé¾î, RFC 1483¿¡ ¼³¸íµÈ ¶ó¿ìÆ®µÈ ÇÁ·ÎÅäÄݵéÀ» À§ÇÑ LLC ĸ½¶È­. À̰ÍÀº ¶ÇÇÑ Ethernet LLC/SNAP ĸ½¶È­¸¦ ÀεðÄÉÀÌÆ®Çϱâ À§ÇØ »ç¿ëµÈ´Ù.

 LLC_SNAP_BRIDGE_Encapsulation 

ÀÌ °ªÀº ¹Ì·¡ »ç¿ëÀ» À§ÇØ ¿¹¾àµÊ. 

FixedHeaderSize 

ÀÌ Çʵå´Â Ç×»ó 1·Î ¼³Á¤µÈ´Ù. ĸ½¶È­ Çì´õ´Â °¢ ÆÐŶ¿¡¼­ °°Àº Å©±â¶ó´Â °ÍÀ» °¡¸®Å²´Ù. 

Reserved 

ÀÌ °ªÀº ¿¹¾àµÊ. 

EncapsulationHeaderSize 

ĸ½¶È­ Çì´õÀÇ Å©±â¸¦ ¹ÙÀÌÆ®·Î ÁöÁ¤ÇÑ´Ù. ĸ½¶È­µÈ Àü¼Û ÆÐŶ¿¡¼­ ù IP Çì´õ´Â ÆÐŶÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ ÀÌ·¯ÇÑ ¿É¼Â¿¡¼­ ½ÃÀÛÇÑ´Ù. 

¼³¸í 

TCP/IP Àü¼Û °èÃþÀÌ OID_TCP_TASK_OFFLOAD¸¦ Äõ¸®ÇÑ´Ù¸é, Äõ¸®¿Í °ü·ÃµÈ InformationBuffer³» NDIS_TASK_OFFLOAD_HEADER¸¦ ÃʱâÈ­Çϰí Àü´ÞÇÑ´Ù. ÀÌ·¯ÇÑ Äõ¸®¸¦ ¼ö½ÅÇÑ ¹Ì´ÏÆ÷Æ®´Â TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ 󸮵Ǵ ¼Û½Å°ú ¼ö½Å ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È­ Æ÷¸Ë°ú ¹öÀüÀ» °áÁ¤Çϱâ À§ÇØ NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ Á¶»çÇÑ´Ù. ¹Ì´ÏÆ÷Æ® ȤÀº NICÀº NICÀÌ ÀÌ·¯ÇÑ ÆÐŶµé¿¡¼­ offload ŽºÅ©µéÀ» ÇàÇÒ ¼ö ÀÖ°Ô Çϱâ À§ÇØ ±×·¯ÇÑ ÆÐŶµé¿¡¼­ ù IPÀÇ ½ÃÀÛ°ú ¸¶Âù°¡Áö·Î ĸ½¶È­ Çì´õÀÇ Æ÷¸ËÀ» °áÁ¤Çϱâ À§ÇØ Ä¸½¶È­ Á¤º¸¸¦ »ç¿ëÇÑ´Ù. 

¹Ì´ÏÆ÷Æ®´Â NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¿¡ ´ëÇÑ Çϳª ȤÀº ±× ÀÌ»óÀÇ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼µé(Áö¿øµÈ offload ŽºÅ©µé)À» Ãß°¡ÇÔÀ¸·Î½á Äõ¸®¿¡ ÀÀ´äÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â InformationBufferÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ Ã¹ ŽºÅ©ÀÇ ¿É¼ÂÀÎ OffsetFirstTask¸¦ ¼³Á¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â NDIS_TASK_OFFLOAD_HEADER³» ´Ù¸¥ ÇʵåµéÀÇ ¾î¶² °ÍÀ» ¹Ù²ÙÁö ¾Ê´Â´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ ¹öÀü ³Ñ¹ö, Å©±â, ȤÀº ĸ½¶È­ Æ÷¸ËÀ» ÀÌÇØÇÏÁö ¾Ê´Â´Ù¸é, ¹Ì´ÏÆ÷Æ®´Â »óÅ NDIS_STATUS_NOT_SUPPORTED·Î Äõ¸®°¡ ½ÇÆÐÇÑ´Ù.

NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼³» TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ÁöÁ¤µÈ ĸ½¶È­ Æ÷¸ËÀº NICÀ» ÅëÇØ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ È¤Àº À¸·Î Àü´ÞµÈ ¼Û½Å°ú ¼ö½Å ÆÐŶµé¿¡ Àû¿ëÇÑ´Ù. ´ÜÁö ÇϳªÀÇ Ä¸½¶È­ Æ÷¸ËÀº NIC´ç ¾î¶² ÁÖ¾îÁø ½Ã°£¿¡ Áö¿øµÈ´Ù. 

¸ðµç NICÀÇ task-offload ´É·ÂµéÀ» ºÒ°¡´ÉÇÏ°Ô Çϱâ À§ÇØ, TCP/IP Àü¼Û °èÃþÀº InformationBuffer³» ´ÜÁö NDIS_TASK_OFFLOAD_HEADER¸¦ Àü´ÞÇÔÀ¸·Î½á NDIS_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÑ´Ù. 

¸¸¾à ¹Ì´ÏÆ÷Æ®¿Í NICÀÌ offload¸¦ Áö¿øÇÑ´Ù¸é, ¾Æ·¡ Å×ÀÌºí³»¿¡ ÀεðÄÉÀÌÆ®µÈ "ÇÊ¿äÇÑ" ĸ½¶È­ ŸÀÔÀ» À§ÇØ offload¸¦ ½ÇÇàÇÑ´Ù. Ãß°¡ÀûÀ¸·Î, ¹Ì´ÏÆ÷Æ®´Â ¸¸¾à ¹Ìµð¾î°¡ ´ÙÀ½ Å×ÀÌºí¿¡ ¼³¸íµÈ Çϳª ÀÌ»óÀÌ Áö¿øµÈ´Ù¸é, ´Ù¸¥ ÇÁ·¹ÀÓ Å¸ÀÔµéÀ» Áö¿øÇÒ °ÍÀÌ´Ù. 

Media Type             Required encapsulation 

Ethernet                 IEEE_802_3_Encapsulation (Optional :                   

                             LLC_SNAP_ROUTED_Encapsulation) 

Token Ring             IEEE_802_5_Encapsulation 

ATM(SLIP)              LLC_SNAP_ROUTED_Encapsulation 

Other                     UNSPECIFIED_Encapsulation 

¸¸¾à NICÀÌ Çϳª ÀÌ»óÀÇ ÇÁ·¹ÀÓ Å¸ÀÔÀ» Áö¿øÇÑ´Ù¸é, °¢ ÇÁ·¹ÀÌ¹Ö Å¸ÀÔÀ» À§ÇØ ½ÇÇàµÈ ƯÁ¤ offload ŸÀÔµé(checksum, large send)Àº °°À» Çʿ䰡 ¾ø´Ù. ¿¹¸¦ µé¾î, Ethernet NICÀº checksumÀ» ½ÇÇàÇÒ °ÍÀ̰í IPSecÀº DIXÀ» À§ÇØ offloadÇÒ °ÍÀÌÁö¸¸ ´ÜÁö Sub-network Access Protocol(SNAP)À» À§Çؼ­´Â checksum¸¸ÀÌ´Ù. 

TCP Largesend ´É·ÂÀº ĸ½¶È­ Çì´õÀÇ Áö½ÄÀ» ¿ä±¸ÇÑ´Ù. ±×·¯¹Ç·Î, TCP Largesend ´É·ÂÀº ¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ Encapsulation¿¡ ÁöÁ¤µÈ ĸ½¶È­ Æ÷ĹÀ» ÀνÄÇÏÁö ¸øÇÏ¸é ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ Á¦°øµÉ Çʿ䰡 ¾ø´Ù. TCP Largesend ´É·ÂÀº ¸¸¾à EncapsulationÀÌ UNSPECIFIED_EncapsulationÀ¸·Î ¼³Á¤µÈ´Ù¸é Á¦°øµÉ °ÍÀ̰í EncapsulationHeaderSize´Â ¹Ì´ÏÆ÷Æ®¿Í NIC¿¡ ÀÇÇØ Á¦°øµÈ ¹Ìµð¾î¸¦ À§ÇÑ encapsulation Çì´õÀÇ Å©±â·Î ¼³Á¤µÈ´Ù.

NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¿¡¼­ TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ÁöÁ¤µÈ ĸ¼úÈ­ Æ÷¸ËÀº NICÀ» ÅëÇÑ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ È¤Àº Àü¼Û °èÃþ¿¡ Àü´ÞµÇ´Â ¼Û½Å°ú ¼ö½Å ÆÐŶµé¿¡°Ô Àû¿ëÇÑ´Ù. ´ÜÁö ÇϳªÀÇ Ä¸½¶È­ Æ÷¸ËÀº ¾î¶² ÁÖ¾îÁø ½Ã°£¿¡ NIC´ç Áö¿øµÈ´Ù. ¸ðµç NICÀÇ task-offload ´É·ÂµéÀ» ºÒ°¡´ÉÇÏ°Ô Çϱâ À§ÇØ, TCP/IP Àü¼Û °èÃþÀº InformatioBuffer³» NDIS_TASK_OFFLOAD_HEADER¿¡ Àü´ÞÇϸ鼭 OID_TCP_TASK_OFFLOAD·Î ¼³Á¤ÇÑ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡, TCP/IP Àü¼Û °èÃþÀº NDIS_TASK_OFFLOAD_HEADERÀÇ OffsetFirstTask ¸â¹ö¸¦ 0À¸·Î ¼³Á¤ÇÑ´Ù. 

See also : NDIS_TASK_OFFLOAD, OID_TASK_OFFLOAD 

Revisions to Task Offload Objects 

À̰ÍÀº Windows 2000 DDK Network Design Guide, Chapter 16, Task Offload Objects¿¡ ´ëÇÑ °³Á¤ÀÌ´Ù. À̰ÍÀº ¹Ì¸® ³ª¿Â ¹®¼­ÀÌ°í ¹Ù²î±â ½±´Ù. ´ÙÀ½ íƮ´Â TCP/IP task-offload ¿¬»êµéÀ» Áö¿øÇÏ´Â OIDµéÀ» ¿ä¾àÇÑ´Ù. ±×·¯ÇÑ ¿¬»êµéÀÇ ¼³¸íÀ» À§ÇØ DDK³» Network Design GuideÀÇ Part 2¸¦ ºÁ¶ó. 

Length      Q       S          Name 

Arr             M      M         OID_TCP_TASK_OFFLOAD. Äõ¸®µÉ ¶§, NICÀÇ    

                                     task-offload ´É·ÂµéÀ» º¸°íÇϵµ·Ï ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿ä±¸ÇÑ

                                     ´Ù. ¼³Á¤µÉ ¶§, ¹Ì´ÏÆ÷Æ®¿¡°Ô NICÀÇ Æ¯Á¤ task-offload ´É 

                                     ·ÂµéÀ» °¡´ÉÇϵµ·Ï ¿ä±¸ÇÑ´Ù. 

Arr                       M       OID_TCP_TASK_IPSEC_ADD_SA. NIC¿¡ ´ëÇÑ Çϳª ȤÀº 

                                    ±× ÀÌ»óÀÇ security associations(SAs)À» Ãß°¡Çϵµ·Ï ¹Ì´Ï

                                    Æ÷Æ®¿¡°Ô ¿ä±¸ÇÑ´Ù. 

4                          M      OID_TCP_TASK_IPSEC_DELETE_SA. ¹Ì´ÏÆ÷Æ®¿¡°Ô NICÀ¸

                                     ·ÎºÎÅÍ SAÀ» Áö¿ìµµ·Ï ¿ä±¸ÇÑ´Ù. 

TCP/IP Àü¼Û °èÃþÀº ¹Ì´ÏÆ÷Æ®ÀÇ NICÀÇ task-offload ´É·ÂµéÀ» °áÁ¤Çϱâ À§ÇØ          OID_TCP_TASK_OFFLOAD¸¦ Äõ¸®ÇÑ´Ù. NICÀÌ Áö¿øÇÏ´Â task-offload ´É·ÂµéÀ» °áÁ¤ÇÑ ÈÄ, TCP/IP Àü¼Û °èÃþ ÇÁ·ÎÅäÄÝÀº ÀÌ·¯ÇÑ OID¸¦ ¼³Á¤Çؼ­ º¸°íµÈ ´É·ÂµéÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. TCP/IP ÇÁ·ÎÅäÄÝÀº ¶ÇÇÑ ÀÌ·¯ÇÑ OID¸¦ ¼³Á¤ÇÔÀ¸·Î½á ¸ðµç NICÀÇ task-offload ´É·ÂµéÀ» ºÒ°¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù. 

´ÜÁö Ç×»ó ÇϳªÀÇ ÇÁ·ÎÅäÄÝÀº ƯÁ¤ NICÀÇ task-offload ´É·ÂµéÀ» °¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù. 

OID_TCP_TASK_IPSEC_ADD_SA¿Í OID_TCP_TASK_IPSEC_DELETE_SA¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿¡ ´ëÇØ Windows 2000 DDK¸¦ ºÁ¶ó. 

Querying an Adapter's Task-Offload Capabilities 

TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ Äõ¸®ÇÒ ¶§, InformationBuffer³»NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ±¸Á¶Ã¼´Â ±×·¯ÇÑ ÆÐŶµé ³» ĸ½¶È­ Çì´õÀÇ Å©±â¿Í TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ó¸®µÈ ¼Û½Å°ú ¼ö½Å ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È­ Æ÷¸Ë°ú, TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ Á¦°øµÈ task-offload ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ·¯ÇÑ Á¤º¸·Î, ¹Ì´ÏÆ÷Æ® ȤÀº NICÀº offload task¸¦ ÇàÇϱâ À§ÇØ ÇʼöÀÎ Àü¼Û ÆÐŶ³» ù IP Çì´õÀÇ ½ÃÀÛ¿¡ À§Ä¡ÇÒ ¼ö ÀÖ´Ù. OID_TCP_TASK_OFFLOADÀÇ Äõ¸®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î, ¹Ì´ÏÆ÷Æ®´Â Çϳª ȤÀº ±× ÀÌ»óÀÇ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼µé¿¡ ÀÇÇØ Áï½Ã µû¸£´Â NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ (InformationBuffer³») ¸®ÅÏÇÑ´Ù. 

°¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â ¹Ì´ÏÆ÷Æ® NIC¿¡ ÀÇÇØ Áö¿øµÈ task-offload ´É·ÂÀ» ¼³¸íÇÑ´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ®ÀÇ NICÀº ƯÁ¤ task-offload ´É·ÂÀÇ ´ÙÁß ¹öÀüµéÀ» Áö¿øÇÑ´Ù¸é, °¢ ¹öÀüÀ» À§ÇØ ÇϳªÀÇ NDIS_TASK_OFFLOAD¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù. 

°¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â ±¸Á¶Ã¼°¡ Àû¿ëÇϴ ƯÁ¤ offload task¸¦ ÁöÁ¤ÇÏ´Â Task ¸â¹ö¸¦ °¡Áø´Ù. °¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â ¶ÇÇÑ Æ¯Á¤ offload task¿¡ ¼ÓÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â TaskBuffer¸¦ °¡Áø´Ù. TaskBuffer³» Á¤º¸´Â ´ÙÀ½°ú °°Àº ±¸Á¶Ã¼µéÀÇ Çϳª·Î Æ÷¸ËµÈ´Ù. 

  • NDIS_TASK_TCP_IP_CHECKSUM - checksum offload ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù. 
  • NDIS_TASK_IPSEC - IP Security offload ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù. 
  • NDIS_TASK_TCP_LARGE_SEND - large-TCP-packet ¼¼±×¸ÕÅ×ÀÌ¼Ç ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù. 

Enabling an Adapter's Task-Offload Capabilities 

NICÀÇ task-offload ´É·ÂµéÀ» Äõ¸®ÇÑ ÈÄ, TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÔÀ¸·Î½á ÀÌ·¯ÇÑ Çϳª³ª ȤÀº ±× ÀÌ»óÀÇ ´É·ÂµéÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÒ ¶§, TCP/IP Àü¼Û °èÃþÀº Àü¼Û °èÃþÀÌ °¡´ÉÇÏ°Ô ÇÏ´Â °¢ task-offload ´É·ÂÀ» À§ÇÑ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼¿¡ ÀÇÇØ Áï½Ã µû¸£´Â NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ InformationBuffer ³» Á¦°øÇÑ´Ù. 

Disabling an Adapter's Task-Offload Capabilities 

NIC¿¡ ÀÇÇØ Á¦°øµÈ ¸ðµç task-offload ´É·ÂµéÀ» ºÒ°¡´ÉÇÏ°Ô Çϱâ À§ÇØ, TCP/IP Àü¼Û °èÃþÀº 0À¸·Î ¼³Á¤µÈ ÀÌ·¯ÇÑ ±¸Á¶Ã¼ÀÇ OffsetFirstTask ¸â¹ö¸¦ °¡Áø NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ InformationBuffer³» Àü´ÞÇϸ鼭 OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÑ´Ù. 

Changing an Adapter's Task-Offload Capabilities 

NIC¿¡ ÀÇÇØ Á¦°øµÈ task-offload ´É·ÂµéÀÇ ¼³Á¤À» ¹Ù²Ù±â À§ÇØ, TCP/IP Àü¼Û °èÃþÀº óÀ½ NICÀÇ task-offload ´É·ÂµéÀ» °¡´ÉÇÏ°Ô ÇÒ ¶§Ã³·³ OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â Á¤È®ÇÏ°Ô °¡Àå ÃÖ±Ù OID_TCP_TASK_OFFLOADÀÇ ¼³Á¤À¸·Î ÁöÁ¤µÈ ÀÌ·¯ÇÑ ´É·ÂµéÀ» (±×¸®°í no others) °¡´ÉÇÏ°Ô ÇØ¾ß ÇÑ´Ù. 

Changes to NDIS_TASK_OFFLOAD Structure 

´ÙÀ½ º¯È­µéÀº ƯÈ÷ OffsetNextTask ¸â¹ö¸¦ À§ÇØ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼·Î ¸¸µé¾îÁø´Ù. À̰ÍÀº ¹Ì¸® ¸¸µé¾îÁø ¹®¼­ÀÌ°í ¹Ù²î±â ½±´Ù. 

NDIS_TASK_OFFLOAD Definition 

typedef struct _NDIS_TASK_OFFLOAD 

    ULONG Version <>; 

    ULONG Size <>; 

    NDIS_TASK Task <>; 

    ULONG OffsetNextTask <>; 

    ULONG TaskBufferLength <>; 

    UCHAR TaskBuffer <>[1]; 

} NDIS_TASK_OFFLOAD, *PNDIS_TASK_OFFLOAD; 

OID_TCP_TASK_OFFLOAD¿¡ ÀÀ´äÀ¸·Î ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ Á¦°øµÉ ¶§, NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ offloadµÈ ƯÁ¤ ŸÀÔÀÇ task¸¦ ÇàÇϱâ À§ÇÑ NICÀÇ ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù. OID_TCP_TASK_OFFLOADÀÇ ¼³Á¤À¸·Î TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ Á¦°øµÈ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â TCP/IP Àü¼Û °èÃþÀÌ °¡´ÉÇÏ°Ô ÇÏ´Â offload task¸¦ ÁöÁ¤ÇÑ´Ù. 

NDIS_TASK_OFFLOAD Members 

Version 

ÀÌ task-offload ´É·ÂÀÇ ¹öÀü ³Ñ¹ö¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ®ÀÇ NICÀÌ Æ¯Á¤ task-offload ´É·ÂÀÇ Çϳª ÀÌ»óÀÇ ¹öÀüÀ» Áö¿øÇÑ´Ù¸é, °¢ ¹öÀüÀÇ ´É·ÂÀº ºÐ¸®µÈ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼·Î ÀεðÄÉÀÌÆ®µÉ °ÍÀÌ´Ù. TCP/IP Àü¼Û °èÃþÀº ´ëºÎºÐ Àû´çÇÑ ¹öÀüÀ» °¡´ÉÇÏ°Ô ¼±ÅÃÇÑ´Ù. 

Size 

NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. Size´Â sizeof(NDIS_TASK_OFFLOAD)·Î ¼³Á¤µÇ°í NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ ¹öÀüÀ» °áÁ¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù. 

Task 

´ÙÀ½Áß Çϳª·Î offload task ŸÀÔÀ» ÁöÁ¤ÇÑ´Ù. 

TcpIpChecksumNdisTask 

Checksum offload. TaskBuffer´Â NDIS_TASK_TCP_IP_CHECKSUM ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇÑ´Ù. 

IpSecNdisTask 

IP Security offload. TaskBuffer´Â NDIS_TASK_IPSEC ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇÑ´Ù. 

TcpLargeSendNdisTask 

Segmentation offload. TaskBuffer´Â NDIS_TASK_TCP_LARGE_SEND ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇÑ´Ù. 

OffsetNextTask 

InformationBuffer³» Çö NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ ½ÃÀÛ¿¡¼­ ´ÙÀ½ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼±îÁöÀÇ ¿É¼ÂÀ» ¹ÙÀÌÆ®·Î ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÀÌ·¯ÇÑ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼°¡ InformationBuffer³» ¸¶Áö¸· ÇϳªÀ̸é, OffsetNextTask´Â 0À¸·Î ¼³Á¤µÈ´Ù. 

TaskBufferLength 

TaskBuffer¿¡¼­ ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. 

TaskBuffer 

Task¿¡ ÀÇÇØ ÀεðÄÉÀÌÆ®µÈ offload ŽºÅ© ƯÁ¤ÀÎ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â °¡º¯ ±æÀÌ ¹è¿­À» ÁöÁ¤ÇÑ´Ù. TaskBufferÀÇ ³»¿ëµéÀº Task ŸÀÔ¿¡ µû¶ó ¹Ù²ï´Ù. 

Task type                             Contents of TaskBuffer 

TcpIpChecksumNdisTask      NDIS_TASK_TCP_IP_CHECKSUM structure 

IpSecNdisTask                     NDIS_TASK_IPSEC structure 

TcpLargeSendNdisTask       NDIS_TASK_TCP_LARGE_SEND structure 

Getting Ready for Large Memory-Enabled Windows 

64-bit DMA¸¦ »ç¿ëÇÏ´Â µå¶óÀ̹öµéÀ» µµ¸ðÇϱâ À§ÇØ ±×¸®°í µå¶óÀ̹öµéÀÌ (ÆÛÆ÷¸Õ½º¸¦ Çâ»ó½Ã۱â À§ÇØ) ScatterGatherDma¸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï Çϱâ À§ÇØ, ´ÙÀ½°ú °°Àº º¯È­µéÀÌ NdisMAllocateMapRegisters ¿¡ ÀÖ´Ù. ÀÌ·¯ÇÑ º¯È­µéÀº Ãʱ⠹®¹ýµé°ú backward ȣȯÀÌ´Ù. À̰ÍÀº Windows 2000 RC2 DDK¿¡¼­ Æ÷Ç﵃ ¼ö ÀÖ´Ù. 

Old Definition 

EXPORT 

NDIS_STATUS 

NdisMAllocateMapRegisters(IN NDIS_HANDLE MiniportAdapterHandle,

                                          IN UINT DmaChannel,

                                          IN BOOLEAN Dma32bitAddress, 

                                          IN ULONG PhysicalMapRegistersNeeded,

                                          IN ULONG MaximumPhysicalMapping);

New Definition for NdisMAllocateMapRegisters 

typedef UCHAR NDIS_DMA_SIZE; 

#define NDIS_DMA_24BITS 0 

#define NDIS_DMA_32BITS 1 

#define NDIS_DMA_64BITS 2 

EXPORT 

NDIS_STATUS 

NdisMAllocateMapRegisters(IN NDIS_HANDLE MiniportAdapterHandle, 

                                          IN UINT DmaChannel, 

                                          IN NDIS_DMA_SIZE DmaSize, 

                                          IN ULONG PhysicalMapRegistersNeeded, 

                                          IN ULONG MaximumPhysicalMapping); 

º¯È­´Â À§ bold·Î ÇÏÀ̶óÀÌÆ®µÈ °÷ÀÌ´Ù. °ú°Å Á¤ÀÇ¿¡¼­, FALSE´Â NDIS_DMA_24BITS·Î ¸ÊµÇ°í TRUE´Â NDIS_DMA_32BITS·Î ¸ÊµÈ´Ù. 64ºñÆ®µéÀ» Áö¿øÇÏ´Â µå¶óÀ̹öµéÀº NDIS_DMA_64BITS¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ´Ù. ±× ¹Û¿¡ ¸ðµç °ÍÀº °°ÀÌ ³²¾Æ ÀÖ´Ù. ¶ÇÇÑ ¸ÊµÈ ¸Þ¸ð¸® µð½ºÅ©¸³ÅÍ ¸®½ºÆ®(MDLs)µéÀº 4GB ¹°¸® ¸Þ¸ð¸® ÀÌ»óÀ» Áö¿øÇÏ´Â ½Ã½ºÅ۵鿡¼­ 32ºñÆ® º¸´Ù Å« ¹°¸® ÁÖ¼Ò¿¡ °á°úµéÀ̶ó´Â °ÍÀ» ÁÖ¸ñÇ϶ó. 

NOTE : NdisMAllocateMapRegisters ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ·Î MaximumPhysicalMapping ¸Å°³º¯¼ö¸¦ À§ÇÑ ÃÖ´ë °ªÀº 0xF000ÀÌ´Ù. 0xF000º¸´Ù Å« °ªÀ» ÁöÁ¤ÇÏ´Â °ÍÀº È£ÃâÀ» ½ÇÆÐ·Î ¾ß±âÇÒ ¼ö ÀÖ´Ù. 

Building Drivers with Symbols (dbg and pdb) 

ÀÌ ¼½¼ÇÀº build ȯ°æÀ» ¼³Á¤ÇÏ´Â °Í¿¡ ´ëÇÑ »õ·Î¿î Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù. 

Linker Options. ¸¸¾à ¹ÙÀ̳ʸ®¸¦ ¹ß»ýÇϱâ À§ÇØ Build.exe¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é, linker(Link.exe)¿¡ ´ÙÀ½ ¿É¼ÇÀ» »ç¿ëÇ϶ó. 

                 /Debugtype:CV,Fixup 

Build ȯ°æ. ¸¸¾à ¹ÙÀ̳ʸ®¸¦ ¹ß»ýÇϱâ À§ÇØ Build.exe¸¦ »ç¿ëÇÑ´Ù¸é, ´ÙÀ½ ȯ°æ º¯¼öµéÀº non-split ¹ÙÀ̳ʸ®µé°ú non-stripped .pdb ÆÄÀϵéÀ» ¹ß»ýÇϱâ À§ÇØ ´ÙÀ½°ú °°Àº °ÍÀ» ¼³Á¤ÇÒ Çʿ䰡 ÀÖ´Ù. 

    set NTDEBUG = 

    set NTDBGFILES = 

    set BINPLACE_FLAGS = 

ȯ°æ º¯¼ö %NTDEBUG%´Â build°¡ debug ȤÀº retail buildÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. ¾Æ¹«°Íµµ ¼³Á¤ÀÌ ¾ÈµÇ¾úÀ» ¶§, retail build·Î ÁöÁ¤ÇÑ´Ù. º¯¼ö %NTDBGFILES%´Â Build.exe¿¡°Ô ¹ÙÀ̳ʸ®¸¦ splitÇØ¼­ .dbg ÆÄÀÏÀ» ¸¸µé¶ó°í Áö½ÃÇÑ´Ù. ¾Æ¹«°Íµµ ÁöÁ¤ÀÌ ¾ÈµÇ¸é, ¹ÙÀ̳ʸ®´Â unsplitÀ¸·Î ³²À» °ÍÀÌ´Ù. 

º¯¼ö %NTDEBUGTYPE%´Â ¾î´À ŸÀÔÀÇ ½Éº¼¸¯ Á¤º¸¸¦ ¸¸µé °ÍÀΰ¡¸¦ ¸»ÇÑ´Ù. °ªÀÌ "windbg"·Î ¼³Á¤µÉ ¶§, ¸µÄ¿´Â CodeView Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â .pdb ÆÄÀÏÀ» ¸¸µç´Ù. À̰ÍÀº µð¹ö±ëÀ» À§ÇØ Áß¿äÇÑ ½Éº¼ Á¤º¸ÀÇ Å¸ÀÔÀÌ´Ù. ¸¶Áö¸·À¸·Î, º¯¼ö %BINPLACE_FLAGS%´Â private ½Éº¼ Á¤º¸°¡ ½Éº¼µé·ÎºÎÅÍ stripµÉÁö¸¦ ÁöÁ¤ÇÑ´Ù. ¾Æ¹«°Íµµ ¼³Á¤ÀÌ µÇ¾î ÀÖÁö ¾ÊÀ¸¸é, private ½Éº¼¸¯ Á¤º¸´Â À̹ÌÁö·Î ³²À» °ÍÀÌ´Ù. 

Call to action for network driver tips : 

  • Áú¹®µé ȤÀº commentsµéÀ» À§ÇØ, ndisfb@microsoft.comÀ¸·Î e-mail¸¦ º¸³»¶ó. º¸³¾ ¶§ À̸§, ŸÀÌÆ², ȸ»ç À̸§, ȸ»ç ŸÀÔ(IHV, ISV, ISP, OEM), ÀüÈ­ ¹øÈ£¿Í fax ¹øÈ£¸¦ Àû¾î¶ó.