Funzione WdfRequestFormatRequestUsingCurrentType (wdfrequest.h)
[Si applica a KMDF e UMDF]
Il metodo WdfRequestFormatRequestUsingCurrentType formatta una richiesta di I/O specificata in modo che il driver possa inoltrarlo , non modificato, alla destinazione di I/O locale del driver.
Sintassi
void WdfRequestFormatRequestUsingCurrentType(
[in] WDFREQUEST Request
);
Parametri
[in] Request
Handle per un oggetto richiesta framework ricevuto dal driver da una delle code di I/O.
Valore restituito
nessuno
Osservazioni
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Quando il driver riceve una richiesta di I/O, a volte si vuole che il driver inoltra la richiesta, non modificata, alla destinazione di I/O locale. Per inoltrare tale richiesta, il driver deve:
- Chiamare WdfRequestFormatRequestUsingCurrentType per formattare l'oggetto richiesta in modo che il framework possa passare la richiesta alla destinazione I/O locale del driver.
- Chiamare WdfRequestSend per inviare la richiesta alla destinazione di I/O.
Esempio
L'esempio di codice seguente è una funzione di callback EvtIoDefault che inoltra ogni richiesta di I/O ricevuta, senza modifiche, alla destinazione di I/O locale del dispositivo.
VOID
MyEvtIoDefault(
WDFQUEUE Queue,
WDFREQUEST Request
)
{
WDF_REQUEST_SEND_OPTIONS options;
NTSTATUS status;
WdfRequestFormatRequestUsingCurrentType(Request);
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend (
Request,
WdfDeviceGetIoTarget(WdfIoQueueGetDevice(Queue)),
&options
);
if (!ret) {
status = WdfRequestGetStatus(Request);
WdfRequestComplete(
Request,
status
);
}
return;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfrequest.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf) |