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.

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_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 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_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 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_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 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_FAILURE
Valor: 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.)
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)

Consulte também

WDF_REQUEST_SEND_OPTIONS

WdfIoTargetStop