перечисление WDF_REQUEST_SEND_OPTIONS_FLAGS (wdfrequest.h)
[Применимо к KMDF и UMDF]
Тип перечисления WDF_REQUEST_SEND_OPTIONS_FLAGS определяет флаги, используемые в структуре WDF_REQUEST_SEND_OPTIONS драйвера.
Синтаксис
typedef enum _WDF_REQUEST_SEND_OPTIONS_FLAGS {
WDF_REQUEST_SEND_OPTION_TIMEOUT = 0x00000001,
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS = 0x00000002,
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE = 0x00000004,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET = 0x00000008,
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT = 0x00010000,
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE = 0x00020000
} WDF_REQUEST_SEND_OPTIONS_FLAGS;
Константы
WDF_REQUEST_SEND_OPTION_TIMEOUT Значение: 0x00000001 Если драйвер задает этот флаг, допустимый элемент Timeout структуры WDF_REQUEST_SEND_OPTIONS. |
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS Значение: 0x00000002 Если драйвер задает этот флаг, платформа обрабатывает связанный запрос ввода-вывода синхронно. (Драйверу не нужно задавать этот флаг, если он вызывает метод объекта, имя которого заканчивается синхронно, например WdfIoTargetSendReadSynchronous.) |
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE Значение: 0x00000004 Если драйвер задает этот флаг, платформа отправляет запрос ввода-вывода в целевой объект ввода-вывода независимо от состояния целевого объекта ввода-вывода. Если этот параметр не задан, платформа очереди запроса, если целевой объект остановлен. Установка этого флага позволяет драйверу отправлять запрос, например запрос на сброс USB-канала, на устройство после вызова драйвера WdfIoTargetStop. |
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET Значение: 0x00000008 Если драйвер задает этот флаг, драйвер отправляет запрос асинхронно и не должен получать уведомления при завершении или отмене запроса. Платформа отправляет запрос ввода-вывода в целевой объект ввода-вывода независимо от состояния целевого объекта ввода-вывода. Драйвер не задает функцию обратного вызова CompletionRoutine или вызов WdfRequestComplete запроса. Если драйвер задает этот флаг, он не может задать другие флаги. Дополнительные сведения об этом флаге см. в следующем разделе "Примечания". |
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT Значение: 0x00010000 Этот флаг применяется только к UMDF. Если задано и если тип запроса ввода-вывода WdfRequestTypeCreate, метод WdfRequestSend пытается передать уровень олицетворения клиента целевому объекту ввода-вывода драйвера. Метод WdfRequestSend возвращает код ошибки, если попытка олицетворения завершается ошибкой, если драйвер также не задает флаг WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE. |
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE Значение: 0x00020000 Этот флаг применяется только к UMDF. Если задано, платформа по-прежнему отправляет запрос, даже если олицетворение завершается ошибкой. Это значение можно использовать только с WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT. |
Замечания
Драйвер, который задает флаг WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET обычно не форматирует запрос ввода-вывода перед вызовом WdfRequestSend для отправки запроса в целевой объект ввода-вывода. На самом деле драйвер, который задает этот флаг, не должен вызывать ни один из методов WdfIoTargetFormatRequestForXxx перед вызовом WdfRequestSend. Драйвер может использовать только метод WdfRequestFormatRequestFormatRequestUsingCurrentType или метод WdfRequestWdmFormatUsingStackLocation для форматирования запроса.
Драйвер не может задать флаг WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET в следующих ситуациях:
- Драйвер создал объект запроса, вызвав WdfRequestCreate.
- Драйвер отправляет запрос ввода-вывода в удаленный целевой объект ввода-вывода, а драйвер указал флаг WdfIoTargetOpenBy Name при вызове WdfIoTargetOpen.
- Драйвер отправляет запрос ввода-вывода в удаленный целевой объект ввода-вывода, а драйвер указал флаг WdfIoTargetOpenUseExistingDev ice и указатель TargetFileObject при вызове WdfIoTargetOpen.
- Тип запроса — WdfRequestTypeCreate, и драйвер не задал флаг WdfFileObjectNotRequired. (Дополнительные сведения об этой ситуации см. в разделе Файловые объекты платформы.)
Требования
Требование | Ценность |
---|---|
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | wdfrequest.h (включая Wdf.h) |