SCATTER_GATHER_LIST

typedef struct _SCATTER_GATHER_LIST {

    ULONG NumberOfElements;

    UINT_PTR Reserved;

    SCATTER_GATHER_ELEMENT Elements[];

} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;

SCATTER_GATHER_LIST ±¸Á¶Ã¼´Â SCATTER_GATHER_ELEMENT ±¸Á¶Ã¼µéÀÇ ¹è¿­À» ÁöÁ¤Çϴµ¥ °¢°¢Àº Àü¼ÛµÈ ¿¬¼ÓµÈ ¹üÀ§ÀÇ º£À̽º ÁÖ¼Ò¿Í ±æÀ̸¦ ÁöÁ¤ÇÑ´Ù.

¸â¹ö

NumberOfElements
Elements·Î ¹öÆÛ³»¿¡ SCATTER_GATHER_ELEMENT ±¸Á¶Ã¼µéÀÇ ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

Reserved
¿¹¾à

Elements
SCATTER_GATHER_ELEMENT ±¸Á¶Ã¼µéÀÇ ¹è¿­À» ÁöÁ¤ÇÑ´Ù. °¢ ¿ä¼Ò´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵȴÙ.

typedef struct _SCATTER_GATHER_ELEMENT

{

   PHYSICAL_ADDRESS Address;

   ULONG Length;

   UINT_PTR Reserved;

} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;

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

Address
Àü¼ÛµÉ µ¥ÀÌÅÍÀÇ ¿¬¼ÓµÈ ¹üÀ§ÀÇ º£À̽º ¹°¸® ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.

Length
¸ÊµÈ ¹üÀ§³»¿¡ ¹ÙÀÌÆ®µéÀÇ ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

Reserved
¿¹¾à

ÁÖ¼®

¹ö½º ¸¶½ºÅÍ DMA NICÀ» °ü¸®Çϰí DMA ÃʱâÈ­ÇÏ´Â µ¿¾È NdisMInitializeScatterGatherDma ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ºñÁ÷·ÄÈ­µÈ ȤÀº ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®´Â ¸ÊµÈ °¡»ó ¹üÀ§µéÀÇ ¹°¸® ÁÖ¼ÒµéÀ» ¾ò±â À§ÇØ ScatterGatherListPacketInfoÀÇ InfoTypeÀ¸·Î NDIS_PER_PACKET_INFO_FROM_PACKET¸¦ È£ÃâÇÑ´Ù.

¹ö½º¸¶½ºÅÍ DMA NICÀ» °ü¸®ÇÏ´Â ºñÁ÷·ÄÈ­µÈ ȤÀº ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®°¡ ScatterGatherListPacketInfoÀÇ InfoTypeÀ¸·Î NDIS_PER_PACKET_INFO_FROM_PACKET¸¦ È£ÃâÇÒ ¶§, SCATTER_GATHER_LIST ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅͰ¡ Àü´ÞµÇ¾îÁø´Ù. SCATTER_GATHER_LIST ±¸Á¶Ã¼´Â SCATTER_GATHER_ELEMENT ±¸Á¶Ã¼µéÀÇ ¹è¿­À» ÁöÁ¤ÇÏ°í °¢°¢Àº Àü¼ÛµÉ ¿¬¼ÓµÈ ¹üÀ§ÀÇ º£À̽º ¹°¸® ÁÖ¼Ò¿Í ±æÀ̸¦ ÁöÁ¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â ¹ö½º¸¶½ºÅÍ DMA NIC¿¡ ´ëÇÑ ÀÌ·¯ÇÑ ÁÖ¼Ò¿Í ±æÀÌ Á¤º¸¸¦ Á¦°øÇÏ°í ±×·¡¼­ NICÀº DMA Àü¼ÛÀ» ÇàÇÒ ¼ö ÀÖ´Ù.

SCATTER_GATHER_LIST ±¸Á¶Ã¼µéÀÇ ¹è¿­¿¡ ÀÇÇØ ÁöÁ¤µÈ ¸ÊÇÎÀº ¹Ì´ÏÆ÷Æ®°¡ NdisMSendComplete ȤÀº NdisMCoSendComplete ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§±îÁö À¯È¿ÇÏ´Ù.

DMA ÃʱâÈ­ÇÏ´Â µ¿¾È NdisMInitializeScatterGatherDma ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ºñÁ÷·ÄÈ­µÇ°í ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®µéÀº ÀÌ·¯ÇÑ ½ÄÀ¸·Î ¸ÊµÈ DMA ¹öÆÛµéÀÇ ¹°¸® ÁÖ¼ÒµéÀ» ¾ò´Â´Ù.