enumerazione WDF_REQUEST_SEND_OPTIONS_FLAGS (wdfrequest.h)

[Si applica a KMDF e UMDF]

Il tipo di enumerazione WDF_REQUEST_SEND_OPTIONS_FLAGS definisce i flag utilizzati nella struttura WDF_REQUEST_SEND_OPTIONS di un driver.

Sintassi

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;

Costanti

 
WDF_REQUEST_SEND_OPTION_TIMEOUT
Valore: 0x00000001
Se il driver imposta questo flag, il membro Timeout della struttura WDF_REQUEST_SEND_OPTIONS è valido.
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
Valore: 0x00000002
Se il driver imposta questo flag, il framework gestisce in modo sincrono la richiesta di I/O associata. Il driver non deve impostare questo flag se chiama un metodo di oggetto il cui nome termina con "In modo sincrono", ad esempio WdfIoTargetSendReadSynchronously.
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE
Valore: 0x00000004
Se il driver imposta questo flag, il framework invia la richiesta di I/O alla destinazione di I/O, indipendentemente dallo stato della destinazione di I/O. Se non impostato, il framework accoda la richiesta se la destinazione viene arrestata. L'impostazione di questo flag consente a un driver di inviare una richiesta, ad esempio una richiesta di reimpostazione di una pipe USB, a un dispositivo dopo che il driver ha chiamato WdfIoTargetStop.
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
Valore: 0x00000008
Se il driver imposta questo flag, il driver invia la richiesta in modo asincrono e non deve ricevere una notifica quando la richiesta viene completata o annullata. Il framework invia la richiesta di I/O alla destinazione di I/O, indipendentemente dallo stato della destinazione di I/O. Il driver non imposta una funzione di callback CompletionRoutine o chiama WdfRequestComplete per la richiesta. Se il driver imposta questo flag, non può impostare altri flag. Per altre informazioni su questo flag, vedere la sezione Osservazioni seguente.
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT
Valore: 0x00010000
Questo flag si applica solo a UMDF. Se impostato e se il tipo di richiesta di I/O è WdfRequestTypeCreate, il metodo WdfRequestSend tenta di passare il livello di rappresentazione del client alla destinazione di I/O del driver. Il metodo WdfRequestSend restituisce un codice di errore se il tentativo di rappresentazione ha esito negativo, a meno che il driver non imposti anche il flag WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE .
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE
Valore: 0x00020000
Questo flag si applica solo a UMDF. Se impostato, il framework invia comunque la richiesta anche se la rappresentazione ha esito negativo. È possibile usare questo valore solo con WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT.

Commenti

Un driver che imposta il flag WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET in genere non formatta la richiesta di I/O prima di chiamare WdfRequestSend per inviare la richiesta a una destinazione di I/O. Infatti, un driver che imposta questo flag non deve chiamare nessuno dei metodi WdfIoTargetFormatRequestForXxx prima di chiamare WdfRequestSend. Il driver può usare solo il metodo WdfRequestFormatRequestUsingCurrentType o WdfRequestWdmFormatUsingStackLocation per formattare la richiesta.

Il driver non può impostare il flag WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET nelle situazioni seguenti:

Per la versione UMDF di questa enumerazione, vedere WDF_REQUEST_SEND_OPTIONS_FLAGS (UMDF).For the UMDF version of this enumeration, see WDF_REQUEST_SEND_OPTIONS_FLAGS (UMDF).

Requisiti

Requisito Valore
Versione KMDF minima 1,0
Versione UMDF minima 2,0
Intestazione wdfrequest.h (include Wdf.h)

Vedi anche

WDF_REQUEST_SEND_OPTIONS

WdfIoTargetStop