Metode IWDFIoRequest::ForwardToIoQueue (wudfddi.h)
[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]
Metode ForwardToIoQueue meneruskan (yaitu, mengantre ulang) permintaan I/O ke salah satu antrean I/O driver panggilan.
Sintaks
HRESULT ForwardToIoQueue(
[in] IWDFIoQueue *pDestination
);
Parameter
[in] pDestination
Penunjuk ke antarmuka IWDFIoQueue untuk objek antrean tujuan.
Nilai kembali
ForwardToIoQueue mengembalikan S_OK jika operasi berhasil. Jika tidak, metode ini mengembalikan salah satu kode kesalahan yang didefinisikan dalam Winerror.h.
Keterangan
Driver harus memiliki permintaan I/O dan harus mendapatkan permintaan dari salah satu antrean I/O-nya.
Antrean sumber dan tujuan tidak boleh sama. Dengan kata lain, driver tidak dapat memanggil ForwardToIoQueue untuk mengembalikan permintaan ke antrean asalnya. Untuk mengembalikan permintaan I/O ke antrean I/O asalnya, driver dapat memanggil IWDFIoRequest2::Requeue.
Antrean sumber dan tujuan harus milik perangkat yang sama.
Selain itu, metode ForwardToIoQueue tidak dapat mengantre ulang permintaan yang diperoleh driver dengan memanggil metode IWDFIoQueue::RetrieveNextRequest .
Permintaan tidak dapat dibatalkan. Jika driver sebelumnya memanggil metode IWDFIoRequest::MarkCancelable untuk membuat permintaan dapat dibatalkan, driver harus memanggil metode IWDFIoRequest::UnmarkCancelable sebelum memanggil ForwardToIoQueue.
Contoh
Contoh kode berikut menunjukkan cara meneruskan permintaan ke antrean lain jika buffer permintaan tidak cukup untuk menyimpan informasi yang diperlukan.
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;
}
}
Persyaratan
Persyaratan | Nilai |
---|---|
Akhir dukungan | Tidak tersedia di UMDF 2.0 dan yang lebih baru. |
Target Platform | Desktop |
Versi UMDF minimum | 1,5 |
Header | wudfddi.h (termasuk Wudfddi.h) |
DLL | WUDFx.dll |