NDIS_TASK_OFFLOAD
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_TASK_TASK_OFFLOAD¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¹Ì´ÏÆ÷Æ®¿¡ ÀÇÇØ Á¦°øµÉ ¶§, NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â ƯÁ¤ ŸÀÔÀÇ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ offloadµÈ ŽºÅ©¸¦ ÇàÇϱâ À§ÇÑ NICÀÇ ´É·ÂµéÀ» ÁöÁ¤ÇÑ´Ù. OID_TCP_TASK_OFFLOADÀÇ ¼³Á¤À¸·Î TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ Á¦°øµÉ ¶§, NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â TCP/IP Àü¼Û°èÃþÀÌ °¡´ÉÇÏ°Ô ÇÏ´Â offload ŽºÅ©¸¦ ÁöÁ¤ÇÑ´Ù.
¸â¹ö
- Version
- ÀÌ·¯ÇÑ Å½ºÅ©-offload ´É·ÂÀÇ ¹öÀü ³Ñ¹ö. ¸¸¾à ¹Ì´ÏÆ÷Æ®ÀÇ NICÀÌ Æ¯Á¤ task-offload ´É·ÂÀÇ ÇϳªÀÇ ¹öÀü ÀÌ»óÀ» Áö¿øÇÑ´Ù¸é, °¢ ¹öÀüÀÇ ´É·ÂÀº ºÐ¸®µÈ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼·Î °¡¸®ÄÑ¾ß ÇÑ´Ù. TCP/IP Àü¼Û °èÃþÀº ´ëºÎºÐÀÇ °¡´ÉÇÑ Àû´çÇÑ ¹öÀüÀ» ¼±ÅÃÇÑ´Ù.
- Size
- NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. Size´Â sizeof(NDIS_TASK_OFFLOAD)·Î ¼³Á¤µÇ°í NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ ¹öÀüÀ» °áÁ¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù.
- Task
- ´ÙÀ½°ú °°Àº Çϳª·Î offload ŽºÅ©ÀÇ Å¸ÀÔÀ» ÁöÁ¤ÇÑ´Ù.
- 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_STRUCTURE ÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ ´ÙÀ½ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼·Î ¿É¼ÂÀ» ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÀÌ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼°¡ InformationBuffer³» ¸¶Áö¸· Çϳª¶ó¸é, OffsetNextTask´Â 0À¸·Î ¼³Á¤µÈ´Ù.
- TaskBufferLength
- TaskBufferÀÎ ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù.
- TaskBuffer
- Task¿¡ ÀÇÇØ ÁöÁ¤µÈ offload ŽºÅ© ƯÁ¤ÀÎ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â °¡º¯ ±æÀÌ ¹è¿À» ÁöÁ¤ÇÑ´Ù. TaskBufferÀÇ ³»¿ëµéÀº Task ŸÀÔ¿¡ µû¶ó º¯ÇÑ´Ù.
| ŽºÅ© ŸÀÔ |
TaskBufferÀÇ ³»¿ë |
| TcpIpChecksumNdisTask |
NDIS_TASK_TCP_IP_CHECKSUM ±¸Á¶Ã¼ |
| IpSecNdisTask |
NDIS_TASK_IPSEC ±¸Á¶Ã¼ |
| TcpLargeSendNdisTask |
NDIS_TASK_TCP_LARGE_SEND ±¸Á¶Ã¼ |
ÁÖ¼®
¸¸¾à NICÀÌ Àû´çÇÑ ´É·ÂµéÀ» °¡Áø´Ù¸é, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® TCP/IP Àü¼Û °èÃþÀº NIC¿¡ ´ëÇØ Çϳª ȤÀº ±× ÀÌ»óÀÇ ´ÙÀ½°ú °°Àº ŽºÅ©µéÀ» offload ÇÒ ¼ö ÀÖ´Ù:
- IP ȤÀº TCP üũ¼¶µéÀÇ °è»ê°ú °ËÁõ
- IP Security ó¸®
- Å« TCP ÆÐŶµéÀ» ´õ ÀÛÀº TCP ÆÐŶµé·Î ÆÄÆíÈ
TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ Äõ¸®ÇÔÀ¸·Î½á NICÀÇ Å½ºÅ© offload ´É·ÂµéÀ» °áÁ¤ÇÑ´Ù. ÀÀ´äÀ¸·Î, ¹Ì´ÏÆ÷Æ®´Â InformationBuffer·Î NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¿¡ ÇÔ²² Çϳª ȤÀº ±× ÀÌ»ó NDIS_TASK_OFFLOAD ±¸Á¶Ã¼µéÀ» ¸®ÅÏÇÑ´Ù. °¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ TaskBuffer´Â ¹Ì´ÏÆ÷Æ®ÀÇ NIC¿¡ ÀÇÇØ Áö¿øµÈ ƯÁ¤ ŽºÅ©-offload ´É·ÂÀ» ÁöÁ¤Çϴ ŽºÅ© ƯÁ¤ ±¸Á¶Ã¼(NDIS_TASK_TCP_IP_CHECKSUM, NDIS_TASK_IPSEC, NDIS_TASK_LARGE_SEND)¸¦ Æ÷ÇÔÇÑ´Ù. ¸¸¾à ¹Ì´ÏÆ÷Æ®ÀÇ NICÀÌ Æ¯Á¤ ŽºÅ©-offload ´É·ÂÀÇ ´ÙÁß ¹öÀüµéÀ» Áö¿øÇÑ´Ù¸é, °¢ ¹öÀüÀ» À§ÇÑ ÇϳªÀÇ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼¸¦ ¸®ÅÏÇÑ´Ù.
NICÀÇ Å½ºÅ©-offload ´É·ÂµéÀ» Äõ¸®ÇÑ ÈÄ, TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÔÀ¸·Î½á NICÀÇ Å½ºÅ©-offload ´É·ÂµéÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ÀÌ·¯ÇÑ ¼³Á¤ ¿¬»ê¿¡¼, TCP/IP Àü¼Û °èÃþÀº InformationBuffer¿¡ NDIS_TASK_OFFLOAD_HEADER ±¸ÁÖü¿Í ÇÔ²² °¡´ÉÀÎ °¢ offload ŽºÅ©¸¦ À§ÇÑ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼¸¦ Á¦°øÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â ¾î´À offload ŽºÅ©µéÀÌ °¡´ÉÀ¸·Î µÇ¾î ÀÖ´ÂÁö °áÁ¤Çϱâ À§ÇØ °¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼¸¦ Á¶»çÇØ¾ß ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â ¶ÇÇÑ ¾î´À ƯÁ¤ offload ŽºÅ©¸¦ À§ÇÑ Æ¯Á¤ ´É·ÂµéÀÌ °¡´ÉÇÑÁö¸¦ °áÁ¤Çϱâ À§ÇØ °¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼ÀÇ TaskBufferÀΠŽºÅ© ƯÁ¤ ±¸Á¶Ã¼¸¦ Á¶»çÇØ¾ß ÇÑ´Ù.
|