NDIS_WAN_PACKET

typedef struct _NDIS_WAN_PACKET {

    LIST_ENTRY          WanPacketQueue;

    PUCHAR              CurrentBuffer;

    ULONG               CurrentLength;

    PUCHAR              StartBuffer;

    PUCHAR              EndBuffer;

    PVOID               ProtocolReserved1;

    PVOID               ProtocolReserved2;

    PVOID               ProtocolReserved3;

    PVOID               ProtocolReserved4;

    PVOID               MacReserved1;

    PVOID               MacReserved2;

    PVOID               MacReserved3;

    PVOID               MacReserved4;

} NDIS_WAN_PACKET, *PNDIS_WAN_PACKET;

NDIS_WAN_PACKET ±¸Á¶Ã¼´Â WAN NIC µå¶óÀ̹öµéÀÇ MiniportWanSend ÇÔ¼öµé¿¡ Àü´ÞµÇ´Â ÆÐŶÀ» Á¤ÀÇÇÑ´Ù.

¸â¹ö

WanPacketQueue
¹Ì´ÏÆ÷Æ®°¡ ÀÌ ÆÐŶÀ» ó¸®ÇÏ´Â µ¿¾È MiniportWanSend ÇÔ¼ö¿¡ ÀÇÇØ »ç¿ëµÈ º¸³»±â ÆÐŶ Å¥ÀÇ Çìµå¸¦ ÁöÁ¤ÇÑ´Ù.

CurrentBuffer
Àü¼ÛµÇ¾îÁú ³×Æ®¿öÅ© ÆÐŶÀÌ ½ÃÀÛÇÏ´Â ÁÖ¾îÁø ¹öÆÛ³»¿¡ º£À̽º °¡»ó ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.

CurrentLength
³×Æ®¿öÅ© ÆÐŶ µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

StartBuffer
ÆÐµùÀ» Æ÷ÇÔÇØ¼­, ÁÖ¾îÁø ¹öÆÛ¸¦ À§ÇÑ º£À̽º °¡»ó ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.

EndBuffer
ÆÐµùÀ» Æ÷ÇÔÇØ¼­, ÁÖ¾îÁø ¹öÆÛÀÇ ³¡À» À§ÇÑ °¡»ó ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.

ProtocolReserved1
ÇÁ·ÎÅäÄݵ鿡 ÀÇÇÑ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

ProtocolReserved2
ÇÁ·ÎÅäÄݵ鿡 ÀÇÇÑ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

ProtocolReserved3
ÇÁ·ÎÅäÄݵ鿡 ÀÇÇÑ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

ProtocolReserved4
ÇÁ·ÎÅäÄݵ鿡 ÀÇÇÑ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

MacReserved1
¹Ì´ÏÆ÷Æ®°¡ ÀÚ½ÅÀÇ ¸ñÀûµéÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

MacReserved2
¹Ì´ÏÆ÷Æ®°¡ ÀÚ½ÅÀÇ ¸ñÀûµéÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

MacReserved3
¹Ì´ÏÆ÷Æ®°¡ ÀÚ½ÅÀÇ ¸ñÀûµéÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

MacReserved4
¹Ì´ÏÆ÷Æ®°¡ ÀÚ½ÅÀÇ ¸ñÀûµéÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸â¹öµéÀ» ÁöÁ¤ÇÑ´Ù.

ÁÖ¼®

ÇÁ·ÎÅäÄÝÀÌ ¾Æ·¡ WAN NIC µå¶óÀ̹ö¸¦ À§ÇÑ NDIS_PACKET ŸÀÔ Àü¼Û ¿ä±¸·Î NdisSend ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§, NDISWANÀº ÁÖ¾îÁø ÆÐŶÀ» ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportWanSend ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ÀÌ·¯ÇÑ ±¸Á¶Ã¼·Î¼­ Æ÷¸ËÈ­µÈ ÆÐŶÀ¸·Î º¯ÇüÇÑ´Ù.

StartBuffer¿Í EndBuffer Æ÷ÀÎÅ͵éÀº ºÐ»ê °¡»ó ¹üÀ§¸¦ ÁöÁ¤ÇÑ´Ù. CurrentBuffer¿Í CurrentLength´Â StatrtBuffer¿Í EndBuffer¿¡ ÀÇÇØ ÁöÁ¤µÈ ¹üÀ§ÀÇ Àû´çÇÑ ¼­ºê¹üÀ§¸¦ ÁöÁ¤ÇÑ´Ù. °á°úÀûÀ¸·Î, ´ÙÀ½ °ø½ÄµéÀÇ Çϳª°¡ MiniportWanSend¿¡ ´ëÇÑ ÀÌ·¯ÇÑ ±¸Á¶Ã¼·Î Àü´ÞµÇ´Â ¹öÆÛ¸¦ À§ÇØ Çì´õ ȤÀº ²¿¸® ÆÐµùÀÇ ¹ÙÀÌÆ® ¼ö¸¦ »êÃâÇÑ´Ù:

  • HeaderPadding = CurrentBuffer - StartBuffer
  • TailPadding = EndBuffer - (CurrentBuffer + CurrentLength)
NDISWANÀº Ç×»ó µå¶óÀ̹ö°¡ ÃʱâÈ­ÇÏ´Â µ¿¾È OID_WAN_GET_INFO Äõ¸®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅÏÇÒ ¶§ Àû¾îµµ ¾ó¸¶³ª ¸¹Àº Çì´õ¿Í ²¿¸® ÆÐµùÀÌ ÀÖ´ÂÁö¸¦ Á¦°øÇÑ´Ù.

MiniportWanSend ÇÔ¼ö´Â ÀÌ·¯ÇÑ ½ÄÀ¸·Î ¹öÆÛ µ¥ÀÌÅ͸¦ ´Ù·ê ¼ö ÀÖ´Ù. MiniportWanSend ÇÔ¼ö·ÎºÎÅÍ NDIS_STATUS_PENDINGÀÌ¿ÜÀÇ »óŸ¦ ¸®ÅÏÇÔÀ¸·Î½á ȤÀº NdisMWanSendComplete ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á ÁÖ¾îÁø º¸³»±â ÆÐŶÀÌ ¿Ï¼ºµÉ ¶§±îÁö, NIC µå¶óÀ̹ö´Â ÁÖ¾îÁø ÆÐŶ°ú ProtocolReservedX ¸â¹öµéÀ» Á¦¿ÜÇÑ ÁöÁ¤µÈ ¸ðµç °Í¿¡ ´ëÇÑ ¼ÒÀ¯±ÇÀ» À¯ÁöÇÑ´Ù.(retains)

WAN ƯÁ¤ ¸ðµç ½Ã½ºÅÛ Á¤ÀÇµÈ OIDµé¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, Part 2¸¦ ºÁ¶ó.