Condividi tramite


Metodo IWDFIoRequest::ForwardToIoQueue (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Nessuna nuova funzionalità viene aggiunta a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedere Introduzione con UMDF.]

Il metodo ForwardToIoQueue inoltra , ovvero riqueue , una richiesta di I/O a una delle code I/O del driver chiamante.

Sintassi

HRESULT ForwardToIoQueue(
  [in] IWDFIoQueue *pDestination
);

Parametri

[in] pDestination

Puntatore all'interfaccia IWDFIoQueue per l'oggetto coda di destinazione.

Valore restituito

ForwardToIoQueue restituisce S_OK se l'operazione ha esito positivo. In caso contrario, questo metodo restituisce uno dei codici di errore definiti in Winerror.h.

Commenti

Il driver deve avere la richiesta di I/O e deve avere ottenuto la richiesta da una delle relative code di I/O.

Le code di origine e di destinazione non possono essere uguali. In altre parole, il driver non può chiamare ForwardToIoQueue per restituire una richiesta alla coda da cui proviene. Per restituire una richiesta di I/O alla coda di I/O da cui proviene, il driver può chiamare IWDFIoRequest2::Requeue.

Sia le code di origine che di destinazione devono appartenere allo stesso dispositivo.

Inoltre, il metodo ForwardToIoQueue non può ripetere una richiesta ottenuta chiamando il metodo IWDFIoQueue::RetrieveNextRequest .

Impossibile annullare la richiesta. Se il driver ha precedentemente chiamato il metodo IWDFIoRequest::MarkCancelable per rendere la richiesta annullabile, il driver deve chiamare il metodo IWDFIoRequest::UnmarkCancelable prima di chiamare ForwardToIoQueue.

Esempio

Nell'esempio di codice seguente viene illustrato come inoltrare una richiesta a un'altra coda se il buffer della richiesta non è sufficiente per contenere le informazioni necessarie.

HRESULT hr;
 if (OutputBufferSizeInBytes < sizeof(SWITCH_STATE)) {
    hr = HRESULT_FROM_NT(ERROR_INSUFFICIENT_BUFFER);
 }
 else {
     hr = FxRequest->ForwardToIoQueue(
                          m_Device->GetSwitchChangeQueue()
                          );
     if (SUCCEEDED(hr)) {
         completeRequest = false;
     }
  }

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1.5
Intestazione wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Vedi anche

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable