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 ¹öÆÛµéÀÇ ¹°¸® ÁÖ¼ÒµéÀ» ¾ò´Â´Ù.
|