DMA IO Misue _Kernel_IoGetDmaAdapter_ annotazione per i driver
Usare l'annotazione _Kernel_IoGetDmaAdapter_ per indirizzare gli strumenti di analisi del codice per cercare l'uso improprio dei puntatori DMA.
Se una funzione chiama un'interfaccia annotata con l'annotazione _Kernel_IoGetDmaAdapter_, deve avere la logica di ripetizione dei tentativi, in modo che i tentativi si verifichino finché la funzione non riesce.
La routine IoGetDmaAdapter potrebbe restituire meno del numero richiesto di registri e il chiamante deve procedere usando il numero effettivo, non il numero richiesto.
_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
...