Поделиться через


Заметка о _Kernel_IoGetDmaAdapter_ _Kernel_IoGetDmaAdapter_ ввода-вывода DMA для драйверов

Используйте заметку _Kernel_IoGetDmaAdapter_, чтобы направить средства анализа кода на поиск неправильного использования указателей DMA.

Если функция вызывает интерфейс с заметкой _Kernel_IoGetDmaAdapter_, она должна иметь логику повторных попыток, которая будет повторяться до тех пор, пока функция не будет успешно выполнена.

Подпрограмма IoGetDmaAdapter может возвращать меньше запрошенного числа регистров, и вызывающий объект должен использовать фактический номер, а не запрошенный номер.

_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 для драйверов Windows