Функция WdfDmaTransactionCreate (wdfdmatransaction.h)
[Применяется только к KMDF]
Метод WdfDmaTransactionCreate создает транзакцию DMA.
Синтаксис
NTSTATUS WdfDmaTransactionCreate(
[in] WDFDMAENABLER DmaEnabler,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] WDFDMATRANSACTION *DmaTransaction
);
Параметры
[in] DmaEnabler
Дескриптор объекта включения DMA, полученного драйвером при предыдущем вызове WdfDmaEnablerCreate.
[in, optional] Attributes
Указатель на структуру WDF_OBJECT_ATTRIBUTES , указывающую атрибуты объекта для нового объекта транзакции DMA. (Элемент ParentObject структуры должен иметь значение NULL.) Этот параметр является необязательным и может быть WDF_NO_OBJECT_ATTRIBUTES.
[out] DmaTransaction
Дескриптор объекта транзакции DMA.
Возвращаемое значение
WdfDmaTransactionCreate возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Обнаружен недопустимый параметр. |
|
Недостаточно памяти для создания нового объекта транзакции DMA. |
Список других возвращаемых значений, которые может возвращать метод WdfDmaTransactionCreate , см. в разделе Ошибки создания объектов платформы.
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
После вызова WdfDmaTransactionCreate драйвер должен вызвать WdfDmaTransactionInitialize или WdfDmaTransactionInitializeUsquest перед вызовомWdfDmaTransactionExecute.
Указанный объект enabler DMA становится родительским для нового объекта транзакции DMA. Драйвер не может изменить этот родительский элемент, а член ParentObject или структура WDF_OBJECT_ATTRIBUTES должны иметь значение NULL.
Дополнительные сведения о транзакциях DMA см. в статье Создание и инициализация транзакции DMA.
Примеры
Пример кода, в котором используется WdfDmaTransactionCreate, см. в разделе WdfDmaTransactionExecute.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Верхняя часть | wdfdmatransaction.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (см. раздел Управление версиями библиотеки платформы). |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |