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


функция обратного вызова 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 вызывает эквивалентную устаревшую подпрограмму.

Однако если драйвер должен получить объект адаптера во время выполнения в IRQL ≥ DISPATCH_LEVEL, он не может сделать это с помощью функции IoGetDmaAdapter. В таком случае драйвер должен запрашивать интерфейс BUS_INTERFACE_STANDARD, пока он по-прежнему находится в IRQL = PASSIVE_LEVEL путем выдачи запроса IRP_MN_QUERY_INTERFACE.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 2000.
целевая платформа Настольный
заголовка wdm.h (include Ntddk.h, Wdm.h)
IRQL PASSIVE_LEVEL

См. также

BUS_INTERFACE_STANDARD

DEVICE_DESCRIPTION

DMA_ADAPTER

IoGetDmaAdapter