NdisMCompleteDmaTransfer

VOID 

  NdisMCompleteDmaTransfer(

    OUT PNDIS_STATUS  Status,

    IN NDIS_HANDLE  MiniportDmaHandle,

    IN PNDIS_BUFFER  Buffer,

    IN ULONG  Offset,

    IN ULONG  Length,

    IN BOOLEAN  WriteToDevice

    );

NdisMCompleteDmaTransfer´Â ½Ã½ºÅÛ DMA Àü¼Û ¿¬»êÀ» ¿Ï¼ºÇÏ´Â °ÍÀ» °¡¸®Å²´Ù. DMA Àü¼ÛµéÀ» À§ÇØ ÁغñÁßÀÎ ½Ã½ºÅÛ DMA ÄÁÆ®·Ñ·¯¸¦ ¸®¼ÂÇÑ´Ù.

¸Å°³º¯¼ö

Status
´ÙÀ½°ú °°Àº Çϳª°¡ µÉ ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö°¡ DMA Àü¼ÛÀÇ ¸¶Áö¸· »óÅ·Π¸®ÅÏÇϴ ȣÃâÀÚ Á¦°ø º¯¼ö¸¦ °¡¸®Å²´Ù.

NDIS_STATUS_SUCCESS
µ¥ÀÌÅͰ¡ µ¥ÀÌÅÍ ¹«°á¼ºÀ» À¯ÁöÇϱâ À§ÇØ ÀåÄ¡¿Í È£½ºÆ® ¸Þ¸ð¸®¿¡ Ç÷¯½¬¿Í Àü¼ÛÀÌ µÇ¾îÁø´Ù.

NDIS_STATUS_RESOURCES
DMA ÄÁÆ®·Ñ·¯´Â ÇØÁ¦µÇÁö¸¸Àº µ¥ÀÌÅÍ Àü¼ÛÀº Èð¾îÁ® ÀÖÀ» °ÍÀÌ´Ù.

MiniportDmaHandle
MiniportInitialize°¡ NdisMRegisterDmaChannel¸¦ È£ÃâÇÒ ¶§ ¸®ÅϵǾîÁö´Â ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

Buffer
Àü¿¡ NdisMSetupDmaTransfer¿¡ Àü´ÞµÈ ¹öÆÛ µð½ºÅ©¸³Å͸¦ °¡¸®Å²´Ù.

Offset
Àü¼ÛÀÌ ½ÃÀ۵Ǵ ½ÃÁ¡¿¡¼­ ¹ÙÀÌÆ® ¿É¼ÂÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº ¶ÇÇÑ NdisMSetupDmaTransfer·Î Àü´ÞµÇ¾îÁø´Ù.

Length
Àü¼ÛÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº ¶ÇÇÑ NdisMSetupDmaTransfer·Î Àü´ÞµÇ¾îÁø´Ù.

WriteToDevice
¸¸¾à Àü¼ÛÀÌ ¿¹¸¦ µé¾î º¸³»±â ¿¬»êÀ¸·Î È£½ºÆ®¿¡¼­ NICÀ¸·Î µÈ´Ù¸éÀº TRUE·Î ÁöÁ¤µÈ´Ù.

ÁÖ¼®

NdisMCompleteDmaTransfer´Â Àü¼Û µ¥ÀÌÅͰ¡ NIC ¸Þ¸ð¸®³»¿¡ Á¸ÀçÇÑ´Ù°í ¿©°ÜÁö±â Àü¿¡ WriteToDevice°¡ TRUE·Î ¼³Á¤µÇ¾î¼­ È£ÃâµÇ¾îÁú °ÍÀÌ´Ù. NdisMCompleteDmaTransfer´Â Àü¼Û µ¥ÀÌÅͰ¡ È£½ºÆ® ¸Þ¸ð¸®·ÎºÎÅÍ ÀÐÀ» ¼ö ÀÖ±â Àü¿¡ WriteToDevice°¡ FALSE·Î ¼³Á¤µÇ¾îÁ®¼­ È£ÃâµÇ¾îÁú ¼ö ÀÖ´Ù.

NdisMCompleteDamTransferÀÇ È£ÃâÀÚµéÀº IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.