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¿¡¼­ ½ÇÇàÇÑ´Ù.