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. Non vengono aggiunte nuove funzionalità 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, vedi Introduzione a UMDF.]

Il metodo ForwardToIoQueue inoltra 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.

Osservazioni

Il driver deve essere proprietario della richiesta di I/O e deve aver ottenuto la richiesta da una delle 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ò rieseguere una richiesta ottenuta chiamando il metodo IWDFIoQueue::RetrieveNextRequest.

La richiesta non può essere annullabile. Se il driver precedentemente chiamato il metodo IWDFIoRequest::MarkCancelable per rendere annullabile la richiesta, il driver deve chiamare il metodo IWDFIoRequest::UnmarkCancelable prima di chiamare ForwardToIoQueue.

Esempi

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;
     }
  }

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.5
intestazione wudfddi.h (include Wudfddi.h)
dll WUDFx.dll

Vedere anche

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable