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:
- Il driver ha creato l'oggetto richiesta chiamando WdfRequestCreate.
- Il driver invia la richiesta di I/O a una destinazione di I/O remota e il driver ha specificato il flag WdfIoTargetOpenByName quando ha chiamato WdfIoTargetOpen.
- Il driver invia la richiesta di I/O a una destinazione di I/O remota e il driver ha specificato sia il flag WdfIoTargetOpenUseExistingDevice che un puntatore TargetFileObject quando viene chiamato WdfIoTargetOpen.
- Il tipo di richiesta è WdfRequestTypeCreate e il driver non ha impostato il flag WdfFileObjectNotRequired . Per altre informazioni su questa situazione, vedere Oggetti file framework.
Requisiti
Requisito | Valore |
---|---|
Versione KMDF minima | 1,0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfrequest.h (include Wdf.h) |