функция обратного вызова 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, если вызов выполнен успешно. Возможные возвращаемые значения ошибок включают следующие коды состояния.
Код возврата | Описание |
---|---|
|
Эта подпрограмма завершилась сбоем из-за недопустимых значений параметров, переданных вызывающим. |
Комментарии
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 |