NDIS_PACKET_EXTENSION

typedef struct _NDIS_PACKET_EXTENSION

{

    PVOID  NdisPacketInfo[MaxPerPacketInfo];

} NDIS_PACKET_EXTENSION, *PNDIS_PACKET_EXTENSION;

NDIS_PACKET_EXTENSIONÀº °¢°¢Àº ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ ÆÐŶ´ç(per-packet, out-of-band) Á¤º¸¸¦ Æ÷ÇÔÇϰųª ȤÀº °¡¸®Å°´Â ¹è¿­ Æ÷ÀÎÅ͵éÀ» Æ÷ÇÔÇÑ´Ù.

¸â¹ö

NdisPacketInfo[MaxPerPacketInfo]
°¢°¢ÀÌ Æ¯Á¤ ŽºÅ©¿¡ ÁöÁ¤µÈ ÆÐŶ ´ç Á¤º¸¸¦ Æ÷ÇÔÇϰųª ȤÀº °¡¸®Å°´Â ¹è¿­ Æ÷ÀÎÅ͵éÀÌ´Ù. ¹è¿­ÀÇ À妽º °ªµéÀº ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù:

TcpIpCheckSumPacketInfo
NDIS_TCP_IP_CHECKSUM_PACKET_INFO ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇϰųª ȤÀº °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ À妽ºÇÑ´Ù. ÀÌ ±¸Á¶Ã¼´Â NIC¿¡ ´ëÇØ TCP/IP Àü¼ÛÀ¸·ÎºÎÅÍ ¿ÀÇÁ·ÎµåµÈ üũ¼¶ ¿¬»êµéÀ» À§ÇÑ ÆÐŶ ´ç Á¤º¸¸¦ ÁöÁ¤ÇÑ´Ù.

IpSecPacketInfo
NDIS_IPSEC_PACKET_INFO ±¸Á¶Ã¼¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ À妽ºÇÑ´Ù. ÀÌ ±¸Á¶Ã¼´Â TCP/IP Àü¼ÛÀ¸·ÎºÎÅÍ NICÀ¸·Î ¿ÀÇÁ·ÎµåµÈ IP Security ¿¬»êµéÀ» À§ÇØ ÆÐŶ´ç Á¤º¸¸¦ ÁöÁ¤ÇÑ´Ù.

TcpLargeSendPacketInfo
ULONG °ªÀ» Æ÷ÇÔÇÏ´Â Æ÷ÀÎÅ͸¦ À妽ºÇÑ´Ù. ¼¼±×¸ÕÆ®¸¦ À§ÇØ NIC¿¡°Ô Å« TCP ÆÐŶÀ» Àü´ÞÇϱâ Àü¿¡, TCP/IP Àü¼ÛÀº(transport) ÀÌ °ªÀ» ÇöÀç ÃÖ´ë Àü¼Û ´ÜÀ§ (Maximum Transmission Unit : MTU)°ú »ó´çÇÑ ÃÖ´ë ¼¼±×¸ÕÆ® Å©±â(MSS : Maximum segment size)¸¦ ¼³Á¤ÇÑ´Ù. MTU´Â ÆÐŶ¿¡ Æ÷ÇԵǾîÁú ¼ö ÀÖ´Â »ç¿ëÀÚ µ¥ÀÌÅÍ ¹ÙÀÌÆ®µéÀÇ ÃÖ´ë ¼öÀÌ´Ù. ¹Ì´ÏÆ÷Æ®´Â MSS °ªÀ» »ç¿ëÇÏ¿© Å« TCP ÆÐŶÀ» ´õ ªÀº ÆÐŶµé·Î ¼¼±×¸ÕƮȭÇÑ´Ù. º¸³»±â ¿¬»êÀ» ¿Ï¼ºÇϱâ Àü¿¡ (¿¹¸¦ µé¾î, NdisMSendComplete ȤÀº NdisMCoSendComplete·Î), ¹Ì´ÏÆ÷Æ®´Â Å« TCP ÆÐŶÀ¸·ÎºÎÅÍ À¯µµµÈ ¸ðµç ÆÐŶµé³»¿¡ º¸³»¾îÁø »ç¿ëÀÚ µ¥ÀÌÅÍ ¹ÙÀÌÆ®µéÀÇ ÃÑ ¼ö·Î ULONG °ªÀ» ¾´´Ù.

ClassificationHandlePacketInfo
À̰ÍÀº ¿¹¾àµÇ¾ú´Ù.

HeaderIndexInfo
³ªÁß¿¡ ¹®¼­È­µÉ °ÍÀÌ´Ù.

ScatterGatherListPacketInfo
ÆÐŶÀ» À§ÇØ DMA µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛµéÀÇ ¸ÊµÈ ³í¸® ÁÖ¼Ò ¹üÀ§µéÀ» ÁöÁ¤ÇÏ´Â SCATTER_GATHER_LIST ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ À妽ºÇÑ´Ù. NdisMIntializeScatterGatherDma¸¦ È£ÃâÇÔÀ¸·Î½á DMA ¿¬»êµéÀ» À§ÇÑ ½Ã½ºÅÛ ÀÚ¿øµéÀ» ¿¹¾àÇÏ´Â ¹Ì´ÏÆ÷Æ®´Â NICÀÌ DMA Àü¼ÛÀ» ÇàÇÒ ¼ö ÀÖ±â À§ÇØ NIC¿¡°Ô ¾òÀº ³í¸® ÁÖ¼Ò ¹üÀ§µéÀ» Á¦°øÇÑ´Ù.

Ieee8021pPriority
°øÀ¯µÈ ¹Ìµð¾î 802 ³×Æ®¿öÅ©µé¿¡¼­ ÆÐŶ ¿ì¼±±ÇÀ» ¼³¸³Çϱâ À§ÇØ »ç¿ëµÇ¾îÁö´Â 802.1p priority Á¤º¸¸¦ ÁöÁ¤ÇÏ´Â UINT¸¦ À妽ºÇÑ´Ù. ÀÌ UINT¿¡ Çϳª·Î ¼³Á¤µÈ ºñÆ®µéÀº 802.1p ¿ì¼±±Ç °ªÀ» ÁöÁ¤ÇÑ´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§ÇØ, Network Drivers Design GuideÀÇ part 2³»¿¡ Section 4.8¸¦ ºÁ¶ó.

OriginalPacketInfo
NDIS_PACKET ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ À妽ºÇÑ´Ù. ÀÌ ±¸Á¶Ã¼´Â Àü¿¡ ³×Æ®¿öÅ©À» °ÉÃÄ ¼ö½ÅµÇ°í NDIS µå¶óÀ̹öµéÀÇ ½ºÅó»¿¡ °¡Àå ³·Àº ·¹º§ µå¶óÀ̹ö¿¡ ÀÇÇØ À§·Î ÀεðÄÉÀÌÆ®µÈ ¿ø·¡ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ÆÐŶ µð½ºÅ©¸³Å͸¦ ÁöÁ¤ÇÑ´Ù. °èÃþÈ­µÈ ½ºÅó»¿¡¼­ °¢ µå¶óÀ̹ö´Â ÆÐŶÀÌ °¢ Ãþ¿¡ º¹»çµÇ¾îÁö´Â °ÍÀÌ ¿ä±¸ µÇ¾îÁö´Â °ÍÀÌ °ÍÀÌ ¾øÀÌ ³×Æ®¿öÅ©À¸·ÎºÎÅÍ ¼ö½ÅµÈ ÆÐŶ°ú °ü·ÃµÈ out-of-band (OOB) µ¥ÀÌÅÍ ºí·°À» ó¸®ÇÒ ¼ö ÀÖ´Ù.

NdisInternalExtension1
³ªÁß¿¡ ¹®¼­È­µÇ¾îÁú °ÍÀÌ´Ù.

NdisInternalExtension2
³ªÁß¿¡ ¹®¼­È­µÇ¾îÁú °ÍÀÌ´Ù.

ÁÖ¼®

NdisAllocatePacketÀ¸·Î ÇÒ´çµÈ ¸ðµç ÆÐŶ µð½ºÅ©¸³ÅÍ´Â °ü·ÃµÈ NDIS_PACKET_EXTENSION¸¦ °¡Áø´Ù. ÀÌ ±¸Á¶Ã¼´Â °¢°¢Àº ÆÐŶ µð½ºÅ©¸³ÅͰú °ü·ÃµÈ ƯÁ¤ ŸÀÔÀÇ ÆÐŶ ´ç Á¤º¸¸¦ Æ÷ÇÔÇϰųª °¡¸®Å°´Â Æ÷ÀÎÅÍµé ¹è¿­(PVOID)À» Æ÷ÇÔÇÑ´Ù. ÆÐŶ´ç Á¤º¸´Â NDIS_PACKET_OOB_DATA ºí·°¿¡ ÀÇÇØ ÁöÁ¤µÈ °Í¿¡ Ãß°¡ÀûÀ¸·Î out-of-band(OOB) µ¥ÀÌÅÍÀÌ´Ù. NDIS_PACKET_EXTENSION ±¸Á¶Ã¼´Â ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ OOB µ¥ÀÌÅ͸¦ È®ÀåÇÑ´Ù.

ÆÐŶ´ç Á¤º¸¸¦ Á¢±ÙÇϱâ À§ÇØ, µå¶óÀ̹öµéÀº ´ÙÀ½°ú °°Àº ¸ÅÅ©·ÎµéÀÇ Çϳª¸¦ »ç¿ëÇÑ´Ù.

  • NDIS_PACKET_EXTENSION ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÏ´Â NDIS_PACKET_EXTENSION_PACKET µå¶óÀ̹ö°¡ ¸¸¾à ÆÐŶ µð½ºÅ©¸³ÅÍ¿Í °ü·ÃµÈ ÆÐŶ´ç Á¤º¸ÀÇ Çϳª ÀÌ»çÀÇ Å¸ÀԵ鿡 Á¢±ÙÇÒ Çʿ䰡 ÀÖ´Ù¸éÀº ÀÌ ¸ÅÅ©·Î¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. NDIS_PACKET_EXTENSION ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾òÀº ÈÄ¿¡, µå¶óÀ̹ö´Â ÆÐŶ´ç Á¤º¸ÀÇ Æ¯Á¤ ŸÀÔ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò±â À§ÇÑ Àû´çÇÑ ¹è¿­ À妽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  • ƯÁ¤ ŸÀÔÀÇ ÆÐŶ´ç Á¤º¸¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÏ´Â NDIS_PER_PACKET_INFO_FROM_PACKET. µå¶óÀ̹ö´Â ´ÜÁö ÇϳªÀÇ Å¸ÀÔÀÇ ÆÐŶ´ç Á¤º¸¸¦ Á¢±ÙÇÒ Çʿ䰡 ÀÖÀ» ¶§ ÀÌ ¸ÅÅ©·Î¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.