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
STATUS_INVALID_PARAMETER
Un parametro di input non è valido.
STATUS_INSUFFICIENT_RESOURCES
Esistono risorse di sistema insufficienti per completare l'operazione.
STATUS_REQUEST_NOT_ACCEPTED
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)

Vedi anche

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend