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 |