Funzione WdfRequestChangeTarget (wdfrequest.h)
[Si applica a KMDF e UMDF]
Il metodo WdfRequestChangeTarget verifica che una richiesta di I/O specificata possa essere inviata a una destinazione di I/O specificata.
Sintassi
NTSTATUS WdfRequestChangeTarget(
[in] WDFREQUEST Request,
[in] WDFIOTARGET IoTarget
);
Parametri
[in] Request
Handle per un oggetto richiesta framework.
[in] IoTarget
Handle per un oggetto di destinazione di I/O framework.
Valore restituito
WdfRequestChangeTarget restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Un parametro di input non è valido. |
|
Per completare l'operazione sono presenti risorse di sistema insufficienti. |
|
La matrice di posizioni dello stack I/O della richiesta non è sufficientemente grande per consentire al driver di inviare la richiesta alla destinazione di I/O. |
Questo metodo potrebbe anche restituire altri valori NTSTATUS .
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Osservazioni
Il driver deve chiamare il metodo WdfRequestChangeTarget prima di chiamare WdfRequestSend, se il driver invia una singola richiesta di I/O a più destinazioni di I/O. WdfRequestChangeTarget verifica che la richiesta possa essere inviata alla destinazione di I/O specificata.
La maggior parte dei driver invia ogni richiesta a un solo dispositivo e quindi a una sola destinazione di I/O. Un driver riceve il della richiesta oppure crea una nuova richiesta chiamando WdfRequestCreate.
Se il driver invia la richiesta a un dispositivo, chiama WdfDeviceGetIoTarget per determinare la destinazione di I/O del dispositivo e quindi chiama WdfRequestSend per inviare la richiesta alla destinazione.
Se il driver invia la richiesta a più dispositivi, chiama WdfDeviceGetIoTarget per ogni dispositivo per determinare la destinazione di I/O del dispositivo. Prima di chiamare WdfRequestSend, il driver deve chiamare WdfRequestChangeTarget per assicurarsi che ogni destinazione di I/O sia accessibile.
Per altre informazioni su WdfRequestChangeTarget, vedere inoltro delle richieste di I/O.
Esempi
L'esempio di codice seguente verifica che una richiesta di I/O possa essere inviata alla destinazione di I/O locale di un dispositivo specificato.
NTSTATUS status;
status = WdfRequestChangeTarget(
request,
WdfDeviceGetIoTarget(Device)
);
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
versione minima di KMDF | 1.0 |
versione minima di UMDF | 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) |