Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к KMDF и UMDF]
Метод WdfRequestFormatRequestUsingCurrentType форматирует указанный запрос ввода-вывода, чтобы драйвер перенаправлять его, не измененный, в локальный целевой объект ввода-вывода драйвера.
Синтаксис
void WdfRequestFormatRequestUsingCurrentType(
[in] WDFREQUEST Request
);
Параметры
[in] Request
Дескриптор объекта запроса платформы, полученный драйвером из одной из очередей ввода-вывода.
Возвращаемое значение
Никакой
Замечания
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Когда драйвер получает запрос ввода-вывода, иногда вы хотите, чтобы драйвер перенаправил запрос, не измененный, в локальный целевой объект ввода-вывода. Чтобы пересылать такой запрос, драйвер должен:
- Вызовите WdfRequestFormatRequestUsingCurrentType для форматирования объекта запроса, чтобы платформа может передать запрос локальному целевому объекту ввода-вывода драйвера.
- Вызовите WdfRequestSend, чтобы отправить запрос в целевой объект ввода-вывода.
Примеры
В следующем примере кода используется функция обратного вызова EvtIoDefault, которая пересылает каждый запрос ввода-вывода, который он получает без изменения, в локальный целевой объект ввода-вывода устройства.
VOID
MyEvtIoDefault(
WDFQUEUE Queue,
WDFREQUEST Request
)
{
WDF_REQUEST_SEND_OPTIONS options;
NTSTATUS status;
WdfRequestFormatRequestUsingCurrentType(Request);
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend (
Request,
WdfDeviceGetIoTarget(WdfIoQueueGetDevice(Queue)),
&options
);
if (!ret) {
status = WdfRequestGetStatus(Request);
WdfRequestComplete(
Request,
status
);
}
return;
}
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия 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), RequestFormattedValid(kmdf) |