Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо только к 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 после его удаления, драйвер может вызвать сбой системы. В примере всплывающего уведомления показано, как драйвер может предоставить функцию обратного вызова 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) |