Share via


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

...

SAL 2.0-Anmerkungen für Windows-Treiber