NdisMInitializeScatterGatherDma
NDIS_STATUS
NdisMInitializeScatterGatherDma(
IN NDIS_HANDLE MiniportAdapterHandle,
IN BOOLEAN Dma64BitAddresses,
IN ULONG MaximumPhysicalMapping
);
|
¹ö½º¸¶½ºÅÍ DMA NICµéÀ» °ü¸®ÇÏ´Â ºñÁ÷·ÄÈµÈ È¤Àº ¿¬°á ÁöÇâ ¹Ì´ÏÆ÷Æ®µé¿¡ ÀÇÇØ È£ÃâµÇ¾îÁö´Â NdisMInitializeScatterGatherDma ÇÔ¼ö´Â ¿¬¼ÓÀûÀÎ DMA ¿¬»êµé¿¡¼ »ç¿ëÇϱâ À§ÇØ ¹Ì´ÏÆ÷Æ® ÃʱâÈÇÏ´Â µ¿¾È ½Ã½ºÅÛ ÀÚ¿øµéÀ» ÃʱâÈÇÑ´Ù.
¸Å°³º¯¼ö
- MiniportAdapterHandle
- MiniportInitialize ÇÔ¼ö¿¡ ´ëÇÑ ÀÔ·Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.
- Dma64BitAddresses
- ¸¸¾à NICÀÌ DMA ¿¬»êµéÀ» À§ÇØ 64ºñÆ® ÁÖ¼Ò ÁöÁ¤À» »ç¿ëÇÒ ¼ö ÀÖ´Ù¸éÀº TRUE¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à NICÀÌ DMA ¿¬»êµéÀ» À§ÇØ 32ºñÆ® ÁÖ¼Ò ÁöÁ¤À» »ç¿ëÇÒ ¼ö ÀÖ´Ù¸éÀº FALSE¸¦ ÁöÁ¤ÇÑ´Ù.
- MaximumPhysicalMapping
- ÇϳªÀÇ DMA ¿¬»êÀ¸·Î NICÀÌ Àü¼ÛÇÒ ¼ö ÀÖ´Â ÃÖ´ë ¹ÙÀÌÆ® ¼öµéÀ» ÁöÁ¤ÇÑ´Ù.
¸®Åϰª
NdisMInitializeScatterGatherDma´Â ´ÙÀ½°ú °°Àº Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.
- NDIS_STATUS_SUCCESS
- ¹ö½º¸¶½ºÅÍ DMA ¿¬»êµéÀ» À§ÇØ ½Ã½ºÅÛ ÀÚ¿øµéÀÌ ¼º°øÀûÀ¸·Î ÇÒ´çµÇ¾ú´Ù.
- NDIS_STATUS_RESOURCES
- ½Ã½ºÅÛ ÀÚ¿øµéÀÌ ½Ã½ºÅÛ ÀÚ¿ø¶§¹®¿¡ ÇÒ´çµÉ ¼ö ¾ø´Ù.
- NDIS_STATUS_NOT_SUPPORTED
- È£ÃâÀÚ´Â NdisMRegisterMiniportÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ NDIS 5.0 ¹Ì´ÏÆ÷Æ®·Î¼ µî·ÏÇÏÁö ¾Ê¾Ò°í, È£ÃâÀÚ´Â NdisMSetAttributes ÇÔ¼ö ȤÀº NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇÒ ÇÒ ¶§ NICÀÌ ¹ö½º¸¶½ºÅÍ DMA ÀåÄ¡¶ó°í ÁöÁ¤ÇÏÁö ¾Ê¾Ò°í, È£ÃâÀڴ ȣÃâÀÚ´Â ºñÁ÷·ÄÈ È¤Àº ¿¬°áÁöÇâ ¹Ì´ÏÆ÷Æ®¶ó°í ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù. (¹Ì´ÏÆ÷Æ®´Â NdisMSetAttributesEx ÇÔ¼ö·Î NDIS_ATTRIBUTE_DESERIALIZE Ç÷¡±×¸¦ ¼³Á¤ÇÔÀ¸·Î½á ºñÁ÷·Äȶó°í ¾Ë¸°´Ù. ¹Ì´ÏÆ÷Æ®´Â NdisMRegisterMiniport ÇÔ¼ö·Î ¿¬°á ÁöÇâ ÇÔ¼öµéÀ» µî·ÏÇÑ´Ù.)
ÁÖ¼®
¹ö½º ¸¶½ºÅÍ DMA NICÀ» °ü¸®ÇÏ´Â ºñÁ÷·ÄÈ È¤Àº ¿¬°áÁöÇâ ¹Ì´ÏÆ÷Æ®´Â MiniportInitialize ÇÔ¼ö·ÎºÎÅÍ NdisMInitializeScatterGatherDma ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â NdisMSetAttributes ÇÔ¼ö ȤÀº NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇÑ ÈÄ ±×¸®°í NdisMAllocateSharedMemory ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ NdisMInitializeScatterGatherDma ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.
¸¸¾à MiniportInitialize ÇÔ¼ö°¡ NdisMSetAttributes ÇÔ¼ö ȤÀº NdisMSetAttributesEx ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ NICÀÌ ¹ö½º¸¶½ºÅͶó´Â °ÍÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù¸éÀº, NdisMInitializeScatterGatherDma ÇÔ¼ö´Â ´ÜÁö ½Ã½ºÅÛ ÀÚ¿øµéÀ» ¿¹¾àÇÏ´Â ½Ãµµ¸¦ ÇÏ´Â °Í ¾øÀÌ Á¦¾î¸¦ ¸®ÅÏÇÑ´Ù.
NdisMInitializeScatterGatherDma ÇÔ¼ö´Â ´ÜÁö 32ºñÆ® 64ºñÆ® DMA ÁÖ¼ÒµéÀ» Áö¿øÇÑ´Ù. 24ºñÆ® DMA ÁÖ¼ÒµéÀº Áö¿øÇÏÁö ¾Ê´Â´Ù.
DMA ÃʱâÈÇÏ´Â µ¿¾È NdisMInitializeScatterGatherDma ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹Ì´ÏÆ÷Æ®´Â DMA µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛµéÀÇ ¸ÊµÈ ³í¸®ÀûÀÎ ÁÖ¼Ò ¹üÀ§µéÀ» ¾ò±â À§ÇØ ´ÙÀ½°ú °°Àº ÀϵéÀ» ÇÑ´Ù. : MiniportSend ÇÔ¼ö ȤÀº Miniport(Co)SendPackets ÇÔ¼ö¿¡ Àü´ÞµÇ´Â °¢ ÆÐŶ µð½ºÅ©¸³Å͸¦ À§ÇØ ¹Ì´ÏÆ÷Æ®´Â ScatterGatherListPacketInfoÀÇ InfoTypeÀ¸·Î NDIS_PER_PACKET_INFO_FROM_PACKET ¸ÅÅ©·Î¸¦ È£ÃâÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â NICÀÌ DMA Àü¼ÛÀ» À§ÇØ NIC¿¡°Ô ¾òÀº ³í¸® ÁÖ¼Ò ¹üÀ§µéÀ» Á¦°øÇÑ´Ù.
¹ö½º¸¶½ºÅÍ NICµéÀÇ Á÷·ÄÈµÈ µå¶óÀ̹öµéÀº ÃʱâÈÇÏ´Â µ¿¾È NdisMInitializeScatterGatherDma ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù. ±× ´ë½Å¿¡, ±×·¯ÇÑ µå¶óÀ̹öµéÀº NdisMAllocateMapRegisters ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. DMA µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ¹öÆÛµéÀÇ ¸ÊµÈ ³í¸® ÁÖ¼Ò ¹üÀ§µéÀ» ¾ò±â À§ÇØ, ±×·¯ÇÑ µå¶óÀ̹öµéÀº NdisQueryPacket ¸ÅÅ©·Î ÇÔ¼ö¿Í NdisMStartBufferPhysicalMapping ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
NdisMInitializeScatterGatherDmaÀÇ È£ÃâÀÚµéÀº IRQL PASSIVE_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|