функция обратного вызова PINITIALIZE_DMA_TRANSFER_CONTEXT (wdm.h)

Подпрограмма InitializeDmaTransferContext инициализирует непрозрачный контекст передачи DMA, который используется для отслеживания ожидающих выделения ресурсов DMA.

Синтаксис

PINITIALIZE_DMA_TRANSFER_CONTEXT PinitializeDmaTransferContext;

NTSTATUS PinitializeDmaTransferContext(
  [in]  PDMA_ADAPTER DmaAdapter,
  [out] PVOID DmaTransferContext
)
{...}

Параметры

[in] DmaAdapter

Указатель на структуру DMA_ADAPTER . Эта структура представляет собой объект адаптера, представляющий master шине драйвера DMA устройства или системного канала DMA. Вызывающий объект получил этот указатель из предыдущего вызова процедуры IoGetDmaAdapter .

[out] DmaTransferContext

Указатель на буфер, выделенный вызывающим объектом, в который InitializeDmaTransferContext записывает начальные значения для контекста передачи DMA. Этот контекст непрозрачн для вызывающего объекта. Вызывающий объект должен выделить буфер, достаточно большой для хранения контекста передачи DMA. Размер этого контекста в байтах определяется константой DMA_TRANSFER_CONTEXT_SIZE_V1 в файле заголовка Wdm.h.

Возвращаемое значение

InitializeDmaTransferContext возвращает STATUS_SUCCESS, если вызов выполнен успешно. Возможные возвращаемые значения ошибок включают следующие коды состояния.

Код возврата Описание
STATUS_INVALID_PARAMETERS
Эта подпрограмма завершилась сбоем из-за недопустимых значений параметров, переданных вызывающим.

Комментарии

InitializeDmaTransferContext не является системной подпрограммой, которую можно вызывать напрямую по имени. Эта подпрограмма может вызываться только указателем из адреса, возвращаемого в структуре DMA_OPERATIONS . Драйверы получают адрес этой подпрограммы, вызывая IoGetDmaAdapter с элементом Version параметра DeviceDescription , равным DEVICE_DESCRIPTION_VERSION3. Если IoGetDmaAdapter возвращает значение NULL, подпрограмма недоступна на вашей платформе.

Инициализированный контекст передачи DMA должен быть предоставлен в качестве параметра для подпрограммы AllocateAdapterChannelEx, GetScatterGatherListEx или BuildScatterGatherListEx . Каждая из этих подпрограмм записывает сведения о запрошенном выделении ресурсов DMA в контекст передачи DMA. Эти сведения непрозрачны для вызывающего объекта. Чтобы отменить ожидающий запрос на выделение, вызывающий объект должен предоставить контекст передачи DMA для запроса в подпрограмму CancelAdapterChannel .

Контекст передачи DMA, предоставляемый в AllocateAdapterChannelEx, GetScatterGatherListEx или BuildScatterGatherListEx , должен быть уникальным для всех запросов на выделение адаптера.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

AllocateAdapterChannelEx

BuildScatterGatherListEx

CancelAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

GetScatterGatherListEx

IoGetDmaAdapter