Fungsi RxDispatchToWorkerThread (rxworkq.h)
RxDispatchToWorkerThread memanggil rutinitas dalam konteks utas pekerja. Memori untuk WORK_QUEUE_ITEM dialokasikan oleh rutinitas ini.
Sintaks
NTSTATUS RxDispatchToWorkerThread(
[in] IN PRDBSS_DEVICE_OBJECT pMRxDeviceObject,
[in] IN WORK_QUEUE_TYPE WorkQueueType,
[in] IN PRX_WORKERTHREAD_ROUTINE Routine,
[in] IN PVOID pContext
);
Parameter
[in] pMRxDeviceObject
Penunjuk ke objek perangkat dari driver pengalih mini jaringan yang sesuai.
[in] WorkQueueType
Jenis antrean kerja yang mewakili prioritas tugas. Parameter WorkQueueType bisa menjadi salah satu dari bisa menjadi salah satu enumerasi berikut untuk WORK_QUEUE_TYPE:
CriticalWorkQueue
Masukkan WORK_QUEUE_ITEM ke dalam antrean tempat utas sistem dengan atribut prioritas real time akan memproses item kerja.
DelayedWorkQueue
Masukkan WORK_QUEUE_ITEM ke dalam antrean tempat utas sistem dengan atribut prioritas variabel akan memproses item kerja.
HyperCriticalWorkQueue
Masukkan WORK_QUEUE_ITEM ke dalam antrean tempat utas sistem akan memproses item kerja sehingga rutinitas yang akan dipanggil tidak diblokir.
[in] Routine
Penunjuk ke rutinitas yang akan dipanggil.
[in] pContext
Penunjuk ke parameter konteks yang terkait dengan item kerja untuk menyelesaikan yang diteruskan ke driver.
Nilai kembali
RxDispatchToWorkerThread mengembalikan STATUS_SUCCESS pada keberhasilan atau salah satu kode kesalahan berikut tentang kegagalan:
Menampilkan kode | Deskripsi |
---|---|
|
Item tidak dapat dikirim. |
Keterangan
Ada dua kasus umum operasi pengiriman ke utas pekerja:
- Untuk operasi yang sangat jarang, ruang dapat dilestarikan dengan mengalokasikan dan membebaskan memori secara dinamis untuk item antrean kerja ketika diperlukan. Rutinitas RxDispatchToWorkerThread akan digunakan dalam kasus ini
- Ketika operasi akan dikirim berulang kali, waktu dilestarikan dengan mengalokasikan terlebih dahulu WORK_QUEUE_ITEM sebagai bagian dari struktur data yang akan dikirim dan menggunakan memori yang telah dialokasikan sebelumnya ini berulang kali. Rutinitas RxPostToWorkerThread akan digunakan dalam kasus ini
RxDispatchToWorkerThread memanggil rutinitas dalam konteks utas pekerja. Memori untuk WORK_QUEUE_ITEM dialokasikan oleh rutinitas RxDispatchToWorkerThread dari memori kumpulan non-halaman. Oleh karena itu rutinitas ini dapat gagal jika sumber daya yang tidak mencukuum tersedia.
Implementasi antrean rutin RxDispatchToWorkerThread saat ini bekerja ke prosesor yang sama dari mana panggilan berasal.
Jika rutinitas RxDispatchToWorkerThread gagal pada build debug, rutinitas _RxLog dipanggil dengan detail kesalahan. Jika rutinitas RxDispatchToWorkerThread gagal dan WMI diaktifkan di kernel, detail kesalahan akan dicatat dengan WMI.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | rxworkq.h (termasuk Rxworkq.h, Rxstruc.h, Ntifs.h) |
IRQL | <= APC_LEVEL |