enumeración WDF_REQUEST_SEND_OPTIONS_FLAGS (wdfrequest.h)

[Se aplica a KMDF y UMDF]

El tipo de enumeración WDF_REQUEST_SEND_OPTIONS_FLAGS define marcas que se usan en la estructura WDF_REQUEST_SEND_OPTIONS de un controlador.

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
Si el controlador establece esta marca, el miembro Timeout de la estructura WDF_REQUEST_SEND_OPTIONS es válido.
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
Valor: 0x00000002
Si el controlador establece esta marca, el marco controla la solicitud de E/S asociada de forma sincrónica. (El controlador no tiene que establecer esta marca si llama a un método de objeto cuyo nombre termina con "Sincrónicamente", como WdfIoTargetSendReadSynchronously).
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE
Valor: 0x00000004
Si el controlador establece esta marca, el marco envía la solicitud de E/S al destino de E/S, independientemente del estado del destino de E/S. Si no se establece, el marco pone en cola la solicitud si se detiene el destino. Establecer esta marca permite que un controlador envíe una solicitud, como una solicitud para restablecer una canalización USB, en un dispositivo después de que el controlador haya llamado WdfIoTargetStop.
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
Valor: 0x00000008
Si el controlador establece esta marca, el controlador envía la solicitud de forma asincrónica y no es necesario recibir una notificación cuando se completa o se cancela la solicitud. El marco envía la solicitud de E/S al destino de E/S, independientemente del estado del destino de E/S. El controlador no establece una función de devolución de llamada CompletionRoutine ni llama a WdfRequestComplete para la solicitud. Si el controlador establece esta marca, no puede establecer ninguna otra marca. Para obtener más información sobre esta marca, vea la siguiente sección Comentarios.
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT
Valor: 0x00010000
Esta marca solo se aplica a UMDF. Si se establece y si el tipo de solicitud de E/S es WdfRequestTypeCreate, el método WdfRequestSend intenta pasar el nivel de suplantación del cliente al destino de E/S del controlador. El método WdfRequestSend devuelve un código de error si se produce un error en el intento de suplantación, a menos que el controlador también establezca la marca WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE .
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE
Valor: 0x00020000
Esta marca solo se aplica a UMDF. Si se establece, el marco sigue enviando la solicitud aunque se produzca un error en la suplantación. Este valor solo se puede usar con WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT.

Comentarios

Un controlador que establece la marca de WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET normalmente no da formato a la solicitud de E/S antes de llamar a WdfRequestSend para enviar la solicitud a un destino de E/S. De hecho, un controlador que establece esta marca no debe llamar a ninguno de los métodos WdfIoTargetFormatRequestForXxx antes de llamar a WdfRequestSend. El controlador solo puede usar el método WdfRequestFormatRequestUsingCurrentType o WdfRequestWdmFormatUsingStackLocation para dar formato a la solicitud.

El controlador no puede establecer la marca WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET en las situaciones siguientes:

Para obtener la versión de UMDF de esta enumeración, consulte WDF_REQUEST_SEND_OPTIONS_FLAGS (UMDF).

Requisitos

Requisito Value
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfrequest.h (incluir Wdf.h)

Consulte también

WDF_REQUEST_SEND_OPTIONS

WdfIoTargetStop