RxDispatchToWorkerThread 函式 (rxworkq.h)
RxDispatchToWorkerThread 在背景工作線程的內容中叫用例程。 此例程會配置WORK_QUEUE_ITEM的記憶體。
語法
NTSTATUS RxDispatchToWorkerThread(
[in] IN PRDBSS_DEVICE_OBJECT pMRxDeviceObject,
[in] IN WORK_QUEUE_TYPE WorkQueueType,
[in] IN PRX_WORKERTHREAD_ROUTINE Routine,
[in] IN PVOID pContext
);
參數
[in] pMRxDeviceObject
對應網路迷你重新導向器驅動程式之裝置物件的指標。
[in] WorkQueueType
代表工作優先順序的工作佇列類型。 WorkQueueType 參數可以是下列其中一個列舉WORK_QUEUE_TYPE:
CriticalWorkQueue
將WORK_QUEUE_ITEM插入佇列中,系統線程具有即時優先權屬性會處理工作專案。
DelayedWorkQueue
將WORK_QUEUE_ITEM插入佇列中,其中具有變數優先權屬性的系統線程將處理工作專案。
HyperCriticalWorkQueue
將WORK_QUEUE_ITEM插入佇列中,系統線程將處理工作專案,以免封鎖要叫用的例程。
[in] Routine
要叫用之例程的指標。
[in] pContext
與工作專案相關聯的內容參數指標,以完成傳遞至驅動程式。
傳回值
RxDispatchToWorkerThread 會在成功時傳回STATUS_SUCCESS,或失敗時傳回下列其中一個錯誤碼:
傳回碼 | 描述 |
---|---|
|
無法分派專案。 |
言論
將作業分派至背景工作線程有兩個常見案例:
- 對於非常不頻繁的作業,可以視需要動態配置和釋放工作佇列專案的記憶體來節省空間。 在此情況下會使用 RxDispatchToWorkerThread 例程
- 將重複分派作業時,會藉由預先配置WORK_QUEUE_ITEM來節省時間,做為要分派的數據結構一部分,並重複使用此預先配置的記憶體。 在此情況下會使用 RxPostToWorkerThread 例程
RxDispatchToWorkerThread 會在背景工作線程的內容中叫用例程。 WORK_QUEUE_ITEM的記憶體是由 RxDispatchToWorkerThread 例程從非分頁集區內存配置。 因此,如果資源不足,此例程可能會失敗。
RxDispatchToWorkerThread 的目前實作,例程佇列會與呼叫來源相同的處理器運作。
如果偵錯組建上的 RxDispatchToWorkerThread 例程失敗,則會呼叫 _RxLog 例程,並包含錯誤的詳細數據。 如果 RxDispatchToWorkerThread 例程失敗,且已在核心中啟用 WMI,則會使用 WMI 記錄錯誤的詳細數據。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | rxworkq.h (包括 Rxworkq.h、Rxstruc.h、Ntifs.h) |
IRQL | <= APC_LEVEL |