функция обратного вызова GET_DMA_ADAPTER (wdm.h)
Подпрограмма GetDmaAdapter возвращает структуру DMA_ADAPTER для целевого устройства.
Синтаксис
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
Параметры
[in] Context
Указатель на сведения о контексте для конкретного интерфейса. Вызывающий объект передает значение, передаваемое в качестве члена Контекстаструктуры BUS_INTERFACE_STANDARD для интерфейса.
[in] DeviceDescriptor
Указатель на структуру DEVICE_DESCRIPTION , описывающую атрибуты физического устройства.
[out] NumberOfMapRegisters
Указатель на максимальное число регистров карты, которые драйвер может выделить для любой операции передачи DMA, на выходе. Вызывающий объект должен выделить переменную LONG для получения этих данных.
Возвращаемое значение
При успешном выполнении подпрограмма GetDmaAdapter возвращает указатель на структуру DMA_ADAPTER . Если структура адаптера не может быть выделена, подпрограмма возвращает значение NULL.
Комментарии
Если драйвер выполняется в irQL = PASSIVE_LEVEL, он должен получить объект адаптера DMA устройства, вызвав функцию IoGetDmaAdapter . IoGetDmaAdapter определяет, поддерживает ли драйвер автобуса интерфейс BUS_INTERFACE_STANDARD ; Если это так, IoGetDmaAdapter вызывает подпрограмму, на которую указывает элемент GetDmaAdapter этого интерфейса, чтобы получить объект адаптера. В противном случае IoGetDmaAdapter вызывает эквивалентную устаревшую подпрограмму.
Однако если драйвер должен получить объект адаптера при выполнении на ≥ DISPATCH_LEVEL IRQL, он не может сделать это с помощью функции IoGetDmaAdapter . В этом случае драйвер должен запросить интерфейс BUS_INTERFACE_STANDARD , оставаясь в irQL = PASSIVE_LEVEL путем выполнения запроса IRP_MN_QUERY_INTERFACE .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |