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


Функция WdfIoTargetWdmGetTargetDeviceObject (wdfiotarget.h)

[Применимо только к KMDF]

Метод WdfIoTargetWdmGetTargetDeviceObject возвращает указатель на объект устройства модели драйвера Windows (WDM), связанный с указанным локальным или удаленным целевым объектом ввода-вывода.

Синтаксис

PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
  [in] WDFIOTARGET IoTarget
);

Параметры

[in] IoTarget

Дескриптор локального или удаленного целевого объекта ввода-вывода, полученного из предыдущего вызова WdfDeviceGetIoTarget или WdfIoTargetCreate или из метода, который предоставляет специализированный целевой объект ввода-вывода.

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

WdfIoTargetWdmGetTargetDeviceObject возвращает указатель на структуру WDM DEVICE_OBJECT.

Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Замечания

Большинству драйверов на основе платформы не требуется доступ к объекту устройства WDM целевого объекта ввода-вывода.

Указатель, который возвращает метод WdfIoTargetWdmGetTargetDeviceObject, пока драйвер не вызывает WdfIoTargetClose или WdfIoTargetCloseForQueryRemoveили до удаления удаленного целевого объекта ввода-вывода. Если драйвер предоставляет функцию EvtCleanupCallback для удаленного целевого объекта ввода-вывода и если объект удаляется до закрытия удаленного целевого объекта ввода-вывода, указатель действителен до тех пор, пока не будет возвращена функция EvtCleanupCallback.

Если драйвер пытается получить доступ к объекту устройства WDM после его удаления, драйвер может вызвать сбой системы. В примере toastmon показано, как драйвер может предоставить функцию обратного вызова EvtIoTargetQueryRemove, чтобы она была уведомлена об удалении целевого объекта ввода-вывода.

Дополнительные сведения о WdfIoTargetWdmGetTargetDeviceObjectсм. в статье Получение сведений об общем целевом объекте ввода-вывода.

Дополнительные сведения о целевых объектах ввода-вывода см. в разделе Использование целевых объектов ввода-вывода.

Примеры

В следующем примере кода проверяется структура WDM целевого объекта ввода-вывода, DEVICE_OBJECT, чтобы убедиться, что целевой объект поддерживает прямые операции ввода-вывода.

if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
 & DO_DIRECT_IO)) {
    ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
    return STATUS_INVALID_DEVICE_REQUEST;
}

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия KMDF 1.0
Заголовок wdfiotarget.h (include Wdf.h)
Библиотека Wdf01000.sys (см. управление версиями библиотеки Платформы).)
IRQL <=DISPATCH_LEVEL
правил соответствия DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

См. также

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject