Функция WdfIoTargetCreate (wdfiotarget.h)
[Применимо к KMDF и UMDF]
Метод WdfIoTargetCreate создает удаленный целевой объект ввода-вывода для указанного устройства.
Синтаксис
NTSTATUS WdfIoTargetCreate(
[in] WDFDEVICE Device,
[in, optional] PWDF_OBJECT_ATTRIBUTES IoTargetAttributes,
[out] WDFIOTARGET *IoTarget
);
Параметры
[in] Device
Дескриптор объекта устройства платформы.
[in, optional] IoTargetAttributes
Указатель на структуру, выделенную вызывающим объектом WDF_OBJECT_ATTRIBUTES , которая задает атрибуты объекта для целевого объекта ввода-вывода. Этот параметр является необязательным и может быть WDF_NO_OBJECT_ATTRIBUTES.
[out] IoTarget
Указатель на расположение, которое получает дескриптор целевого объекта ввода-вывода.
Возвращаемое значение
WdfIoTargetCreate возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
|
Обнаружен недопустимый параметр. |
|
Недостаточно памяти для создания нового целевого объекта ввода-вывода. |
|
В элементе ParentObjectструктуры WDF_OBJECT_ATTRIBUTES , указанной IoTargetAttributes , не указан объект устройства платформы, указанный устройством, или объект, цепочка родителей которого приводит к этому объекту. |
Список других возвращаемых значений, которые может возвращать WdfIoTargetCreate, см. в статье Ошибки создания объектов платформы.
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
После вызова WdfIoTargetCreate драйвер должен вызвать WdfIoTargetOpen , прежде чем он сможет отправлять запросы к удаленному целевому объекту ввода-вывода.
Если драйвер указывает родительский объект в элементе ParentObjectструктуры WDF_OBJECT_ATTRIBUTES, родительским объектом может быть объект устройства платформы или любой объект, цепочка родителей которого приводит к объекту устройства платформы. Платформа удалит целевой объект ввода-вывода, когда он (или драйвер) удалит объект устройства.
Дополнительные сведения о WdfIoTargetCreate см. в разделе Инициализация общего целевого объекта ввода-вывода.
Если драйвер предоставляет функции обратного вызова EvtCleanupCallback или EvtDegradCallback для целевого объекта ввода-вывода, обратите внимание, что платформа вызывает эти функции обратного вызова в IRQL = PASSIVE_LEVEL.
Дополнительные сведения о целевых объектах ввода-вывода см. в разделе Использование целевых объектов ввода-вывода.
Примеры
Пример кода, в котором используется WdfIoTargetCreate, см. в разделе WdfIoTargetOpen.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfiotarget.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |