Metode IWDFDevice::CreateIoQueue (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 CreateIoQueue mengonfigurasi antrean I/O default yang terkait dengan perangkat atau membuat antrean I/O sekunder untuk perangkat.
Sintaks
HRESULT CreateIoQueue(
[in, optional] IUnknown *pCallbackInterface,
[in] BOOL bDefaultQueue,
[in] WDF_IO_QUEUE_DISPATCH_TYPE DispatchType,
[in] BOOL bPowerManaged,
[in] BOOL bAllowZeroLengthRequests,
[out] IWDFIoQueue **ppIoQueue
);
Parameter
[in, optional] pCallbackInterface
Penunjuk ke antarmuka IUnknown yang digunakan kerangka kerja untuk menentukan fungsi panggilan balik peristiwa yang berlangganan driver pada antrean. Ini adalah fungsi yang dipanggil kerangka kerja ketika peristiwa yang relevan terjadi.
Untuk UMDF versi 1.9 dan yang lebih baru, parameter ini diperlukan untuk antrean I/O yang menggunakan metode pengiriman berurutan atau paralel, dan bersifat opsional (dapat berupa NULL) untuk antrean I/O yang menggunakan metode pengiriman manual. Untuk versi UMDF yang lebih lama dari 1.9, parameter ini diperlukan untuk semua metode pengiriman.
[in] bDefaultQueue
Nilai BOOL yang menentukan apakah akan mengonfigurasi antrean I/O default atau membuat antrean I/O sekunder untuk perangkat. TRUE menunjukkan untuk mengonfigurasi antrean I/O default; FALSE menunjukkan untuk membuat antrean I/O sekunder.
[in] DispatchType
Nilai jenis WDF_IO_QUEUE_DISPATCH_TYPE yang mengidentifikasi bagaimana driver harus menerima permintaan dari antrean I/O.
[in] bPowerManaged
Nilai BOOL yang menentukan apakah antrean I/O dikelola daya. TRUE menunjukkan kerangka kerja secara otomatis mengoordinasikan pengiriman untuk antrean I/O dengan Plug and Play (PnP) dan status daya perangkat; FALSE menunjukkan tidak ada pengiriman terkoordinasi secara otomatis.
[in] bAllowZeroLengthRequests
Nilai BOOL yang menentukan apakah kerangka kerja menempatkan permintaan I/O panjang nol langsung dalam antrean I/O untuk ditangani driver. TRUE menunjukkan bahwa driver harus menerima permintaan baca dan tulis yang memiliki buffer panjang nol--yaitu, kerangka kerja secara otomatis menempatkan jenis permintaan ini langsung dalam antrean I/O untuk driver. FALSE menunjukkan bahwa kerangka kerja menyelesaikan permintaan I/O panjang nol alih-alih memasukkannya ke dalam antrean I/O.
[out] ppIoQueue
Penunjuk ke variabel yang menerima penunjuk ke antarmuka IWDFIoQueue untuk objek antrean I/O yang baru dibuat atau objek antrean I/O default.
Nilai kembali
CreateIoQueue mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Antrean I/O berhasil dibuat. |
|
Antrean I/O dikonfigurasi dengan salah satu cara berikut:
|
CreateIoQueue mungkin juga mengembalikan nilai HRESULT lainnya.
Keterangan
Antarmuka IUnknown yang disediakan driver untuk parameter pCallbackInterface dapat mendukung beberapa fungsi panggilan balik antrean. Kerangka kerja memanggil metode QueryInterface pada antarmuka IUnknown yang disediakan beberapa kali untuk mengambil metode antarmuka yang didukung driver. Ketika aplikasi melakukan tindakan yang terkait dengan metode antarmuka yang didukung (seperti, permintaan baca I/O), kerangka kerja memanggil metode (seperti, metode IQueueCallbackRead::OnRead ) untuk memberi tahu driver. Kerangka kerja memanggil QueryInterface untuk antarmuka berikut:
IQueueCallbackDefaultIoHandler
Ketika driver melewati WdfIoQueueDispatchSequential atau WdfIoQueueDispatchParallel untuk parameter DispatchType dari CreateIoQueue untuk membuat antrean nonmanual, CreateIoQueue dapat mengembalikan S_OK hanya jika objek panggilan balik antrean driver mengimplementasikan setidaknya salah satu antarmuka sebelumnya dan menunjukkan dukungan antarmuka tersebut melalui antarmuka IUnknown yang ditunjuk pCallbackInterface .
Ketika driver melewati WdfIoQueueDispatchManual for DispatchType untuk membuat antrean manual, CreateIoQueue dapat mengembalikan S_OK hanya jika objek panggilan balik antrean driver tidak mengimplementasikan atau menunjukkan dukungan dari salah satu antarmuka panggilan balik sebelumnya. Untuk informasi selengkapnya tentang objek panggilan balik driver, lihat Membuat Objek Panggilan Balik.
Kerangka kerja ini juga memanggil QueryInterface pada antarmuka IUnknown yang disediakan untuk menentukan apakah driver mendukung salah satu antarmuka berikut:
Kerangka kerja ini juga memanggil QueryInterface pada antarmuka IUnknown yang disediakan untuk menentukan apakah driver mendukung antarmuka IQueueCallbackStateChange . Objek panggilan balik antrean driver dapat secara opsional mengimplementasikan dan menunjukkan dukungan IQueueCallbackStateChange hanya untuk antrean manual. Objek panggilan balik antrean driver tidak boleh menerapkan dan menunjukkan dukungan IQueueCallbackStateChange untuk antrean berurutan atau paralel.
Contoh
Untuk contoh kode tentang cara menggunakan metode CreateIoQueue , lihat IWDFDriver::CreateDevice.
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 |