Заметка о _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
...