DMA-E/A: Falsch _Kernel_IoGetDmaAdapter_ Anmerkung für Treiber
Verwenden Sie die _Kernel_IoGetDmaAdapter_ Anmerkung, um die Codeanalysetools anweisen, nach missbrauchten DMA-Zeigern zu suchen.
Wenn eine Funktion eine Schnittstelle aufruft, die mit der _Kernel_IoGetDmaAdapter_ Anmerkung versehen ist, muss sie über Wiederholungslogik verfügen, sodass Wiederholungsversuche ausgeführt werden, bis die Funktion erfolgreich ist.
Die IoGetDmaAdapter-Routine kann weniger als die angeforderte Anzahl von Registern zurückgeben, und der Aufrufer muss die tatsächliche Nummer und nicht die angeforderte Nummer verwenden.
_Must_inspect_result_
_IRQL_requires_max_(PASSIVE_LEVEL)
NTKERNELAPI
struct _DMA_ADAPTER *
IoGetDmaAdapter(
_In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, // required for PnP drivers
_In_ struct _DEVICE_DESCRIPTION *DeviceDescription,
_Out_ _When_(return!=0, _Kernel_IoGetDmaAdapter_ _At_(*NumberOfMapRegisters, _Must_inspect_result_))
PULONG NumberOfMapRegisters
...