Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к KMDF и UMDF]
Метод WdfRequestChangeTarget проверяет, можно ли отправлять указанный запрос ввода-вывода в указанный целевой объект ввода-вывода.
Синтаксис
NTSTATUS WdfRequestChangeTarget(
[in] WDFREQUEST Request,
[in] WDFIOTARGET IoTarget
);
Параметры
[in] Request
Дескриптор объекта запроса платформы.
[in] IoTarget
Дескриптор целевого объекта ввода-вывода платформы.
Возвращаемое значение
WdfRequestChangeTarget возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Недопустимый входной параметр. |
|
Для завершения операции недостаточно системных ресурсов. |
|
Массив расположений стека ввода-вывода запроса недостаточно велик, чтобы разрешить драйверу отправлять запрос в целевой объект ввода-вывода. |
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Замечания
Драйвер должен вызвать метод WdfRequestChangeTarget перед вызовом WdfRequestSend, если драйвер отправляет один запрос ввода-вывода нескольким целевым объектам ввода-вывода. WdfRequestChangeTarget проверяет, что запрос можно отправить в указанный целевой объект ввода-вывода.
Большинство драйверов отправляют каждый запрос только одному устройству и таким образом только одному целевому объекту ввода-вывода. Драйвер либо получает запрос, либо создает новый запрос путем вызова WdfRequestCreate.
Если драйвер отправляет запрос на одно устройство, он вызывает WdfDeviceGetIoTarget, чтобы определить целевой объект ввода-вывода устройства, а затем вызывает WdfRequestSend отправить запрос в целевой объект.
Если драйвер отправляет запрос нескольким устройствам, он вызывает WdfDeviceGetIoTarget для каждого устройства, чтобы определить целевой объект ввода-вывода устройства. Перед вызовом WdfRequestSendдрайвер должен вызвать WdfRequestChangeTarget, чтобы обеспечить доступность каждого целевого объекта ввода-вывода.
Дополнительные сведения о WdfRequestChangeTargetсм. в запросов на пересылку операций ввода-вывода.
Примеры
В следующем примере кода проверяется, что запрос ввода-вывода можно отправить в локальный целевой объект ввода-вывода указанного устройства.
NTSTATUS status;
status = WdfRequestChangeTarget(
request,
WdfDeviceGetIoTarget(Device)
);
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | wdfrequest.h (включая Wdf.h) |
библиотеки | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
правил соответствия DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |