Annotation DMA IO Misue _Kernel_IoGetDmaAdapter_ pour les pilotes

Utilisez l’annotation _Kernel_IoGetDmaAdapter_ pour indiquer aux outils d’analyse du code de rechercher une mauvaise utilisation des pointeurs DMA.

Si une fonction appelle une interface annotée avec l’annotation _Kernel_IoGetDmaAdapter_, elle doit avoir une logique de nouvelle tentative telle que les nouvelles tentatives se produisent jusqu’à ce que la fonction réussisse.

La routine IoGetDmaAdapter peut retourner un nombre inférieur au nombre de registres demandé, et l’appelant doit continuer à utiliser le numéro réel, et non le numéro demandé.

_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

...

Annotations SAL 2.0 pour les pilotes Windows