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 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 del 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. |
|
Esistono risorse di sistema insufficienti per completare l'operazione. |
|
La matrice dello stack di I/O della richiesta non è abbastanza grande per consentire al driver di inviare la richiesta alla destinazione di I/O. |
Questo metodo potrebbe restituire anche altri valori NTSTATUS.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Il driver deve chiamare il metodo WdfRequestChangeTarget prima di chiama 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 la richiesta o crea una nuova richiesta chiamando WdfRequestCreate.
Se il driver invia la richiesta a un dispositivo, chiama WdfDeviceGetIoTarget per determinare la destinazione 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 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 di richieste di I/O.
Esempio
Nell'esempio di codice seguente viene verificato che una richiesta di I/O può essere inviata a una destinazione di I/O locale di un dispositivo specificato.
NTSTATUS status;
status = WdfRequestChangeTarget(
request,
WdfDeviceGetIoTarget(Device)
);
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) |