Condividi tramite


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

Vedere anche

WdfDeviceGetIoTarget

WdfRequestCreare

WdfRequestSend