Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[Aplica-se a KMDF e UMDF]
O tipo de enumeração WDF_REQUEST_SEND_OPTIONS_FLAGS define sinalizadores usados na estrutura de WDF_REQUEST_SEND_OPTIONS de um driver.
Sintaxe
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;
Constantes
WDF_REQUEST_SEND_OPTION_TIMEOUTValor: 0x00000001 Se o driver definir esse sinalizador, o membro Timeout da estrutura WDF_REQUEST_SEND_OPTIONS será válido. |
WDF_REQUEST_SEND_OPTION_SYNCHRONOUSValor: 0x00000002 Se o driver definir esse sinalizador, a estrutura manipulará a solicitação de E/S associada de forma síncrona. (O driver não precisará definir esse sinalizador se ele estiver chamando um método de objeto cujo nome termina com "Synchronously", como WdfIoTargetSendReadSynchronously.) |
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATEValor: 0x00000004 Se o driver definir esse sinalizador, a estrutura enviará a solicitação de E/S para o destino de E/S, independentemente do estado do destino de E/S. Se não estiver definido, a estrutura enfileira a solicitação se o destino for interrompido. Definir esse sinalizador permite que um driver envie uma solicitação, como uma solicitação para redefinir um pipe USB, para um dispositivo depois que o driver tiver chamado WdfIoTargetStop. |
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGETValor: 0x00000008 Se o driver definir esse sinalizador, o driver enviará a solicitação de forma assíncrona e não precisará ser notificado quando a solicitação for concluída ou cancelada. A estrutura envia a solicitação de E/S para o destino de E/S, independentemente do estado do destino de E/S. O driver não define uma função CompletionRoutine de retorno de chamada ou chama WdfRequestComplete para a solicitação. Se o driver definir esse sinalizador, ele não poderá definir nenhum outro sinalizador. Para obter mais informações sobre esse sinalizador, consulte a seção Comentários a seguir. |
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENTValor: 0x00010000 Esse sinalizador se aplica somente ao UMDF. Se definido e se o tipo de solicitação de E/S for WdfRequestTypeCreate, o método WdfRequestSend tentar passar o nível de representação do cliente para o destino de E/S do driver. O método WdfRequestSend retornará um código de erro se a tentativa de representação falhar, a menos que o driver também defina o sinalizador WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE. |
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILUREValor: 0x00020000 Esse sinalizador se aplica somente ao UMDF. Se definido, a estrutura ainda enviará a solicitação mesmo se a representação falhar. Você pode usar esse valor apenas com WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT. |
Observações
Um driver que define o sinalizador WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET normalmente não formata a solicitação de E/S antes de chamar WdfRequestSend para enviar a solicitação para um destino de E/S. Na verdade, um driver que define esse sinalizador não deve chamar nenhum dos métodos WdfIoTargetFormatRequestForxxx antes de chamar WdfRequestSend. O driver pode usar apenas o WdfRequestFormatRequestUsingCurrentType ou método WdfRequestWdmFormatUsingStackLocation para formatar a solicitação.
O do driver não pode definir o sinalizador de WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET nas seguintes situações:
- O driver criou o objeto de solicitação chamando WdfRequestCreate.
- O driver está enviando a solicitação de E/S para um destino de E/S remoto e o driver especificou o sinalizador WdfIoTargetOpenByName quando chamou WdfIoTargetOpen.
- O driver está enviando a solicitação de E/S para um destino de E/S remoto e o driver especificou o sinalizador de WdfIoTargetOpenUseExistingDevice e um ponteiro de TargetFileObject quando ele chamou WdfIoTargetOpen.
- O tipo de solicitação é WdfRequestTypeCreate e o driver não definiu o sinalizador WdfFileObjectNotRequired. (Para obter mais informações sobre essa situação, consulte Framework File Objects.)
Requisitos
| Requisito | Valor |
|---|---|
| versão mínima do KMDF | 1.0 |
| versão mínima do UMDF | 2.0 |
| cabeçalho | wdfrequest.h (inclua Wdf.h) |