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.
µå¶óÀ̹ö´Â ´ÜÁö ÇϳªÀÇ Å¸ÀÔÀÇ ÆÐŶ´ç Á¤º¸¸¦ Á¢±ÙÇÒ Çʿ䰡 ÀÖÀ» ¶§ ÀÌ ¸ÅÅ©·Î¸¦
È£ÃâÇØ¾ß ÇÑ´Ù.
|