WDF_REQUEST_SEND_OPTIONS_FLAGS enumeração (wdfrequest.h)
[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.
Syntax
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_TIMEOUT Valor: 0x00000001 Se o driver definir esse sinalizador, o membro Timeout da estrutura WDF_REQUEST_SEND_OPTIONS será válido. |
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS Valor: 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_STATE Valor: 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 definida, 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_FORGET Valor: 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 de retorno de chamada CompletionRoutine nem 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_CLIENT Valor: 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 retorna 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_FAILURE Valor: 0x00020000 Esse sinalizador se aplica somente ao UMDF. Se definida, a estrutura ainda enviará a solicitação mesmo que a representação falhe. Você só pode usar esse valor com WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT. |
Comentários
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 método WdfRequestFormatRequestUsingCurrentType ou WdfRequestWdmFormatUsingStackLocation para formatar a solicitação.
O 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 ele 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 WdfIoTargetOpenUseExistingDevice e um ponteiro 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 Objetos de Arquivo de Estrutura.)
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) |