Compartilhar via


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:

Para obter a versão UMDF dessa enumeração, consulte WDF_REQUEST_SEND_OPTIONS_FLAGS (UMDF).

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)

Confira também

WDF_REQUEST_SEND_OPTIONS

WdfIoTargetStop