INFO: Call Enable DMA Translation Only After DMA is Complete
Article ID: 163355
Article Last Modified on 5/24/2004
APPLIES TO
- Microsoft Win32 Device Driver Kit for Windows 2000
This article was previously published under Q163355
SUMMARY
When you disable DMA translation prior to programming the DMA controller,
do not reenable DMA translation until the DMA transfers are complete for
that channel. Below is documentation from "PW0519: Virtual DMA Services
(VDS)" on DMA translation services.
MORE INFORMATION
Disable DMA Translation
Environments that support the VDS, trap the standard DMA I/O ports and
attempt to remap the addresses provided by the client application (assumed
to be linear addresses) into appropriate physical addresses. However, an
application that uses the VDS to determine the physical address of its DMA
buffer region must call this service to disable the remapping of standard
DMA ports.
This service maintains a disable count. Therefore, one call to the Enable
DMA Translation must be made for each call to the Disable DMA Translation
service before automatic DMA translation is enabled.
Enable DMA Translation
An application calls this service to reenable automatic DMA buffer
remapping that was disabled by the Disable DMA Translation service.
This service maintains a disable count. Therefore, one call to Enable DMA
Translation must be made for each call to the Disable DMA Translation
service before automatic DMA translation is enabled.
REFERENCES
PW0519: Virtual DMA Services (VDS)
Additional query words: 4.00 KBDSupport kbdsh
Keywords: kbprogramming KB163355