IoInitializeWorkItem 函式 (wdm.h)
IoInitializeWorkItem 例程會初始化呼叫端已配置的工作專案。
語法
void IoInitializeWorkItem(
[in] PVOID IoObject,
[in] PIO_WORKITEM IoWorkItem
);
參數
[in] IoObject
呼叫端驅動程式物件的指標或呼叫端的其中一個裝置物件。 如果呼叫端稍後會將工作項目傳遞至 IoQueueWorkItem,IoObject 必須指向裝置物件。
[in] IoWorkItem
要初始化 之IO_WORKITEM 結構的指標。
傳回值
無
備註
驅動程式會為 IO_WORKITEM 結構配置自己的記憶體,然後呼叫 IoInitializeWorkItem 將其初始化。 記憶體必須從非分頁集區配置。 若要判斷保存 IO_WORKITEM 結構所需的位元元組數目,請呼叫 IoSizeofWorkItem。
IoInitializeWorkItem 初始化的IO_WORKITEM結構,必須先由IoUninitializeWorkItem取消初始化,才能釋放它。
相關的例程 IoAllocateWorkItem 會配置和初始化工作專案。 藉由將配置和初始化結合成單一呼叫, IoAllocateWorkItem 可能會讓某些驅動程式使用比 IoInitializeWorkItem 更方便,這隻會進行初始化。 不過,驅動程式需要 IoInitializeWorkItem ,這些驅動程式必須在先前配置的記憶體中初始化工作專案。
例如,驅動程式可能會為工作專案的集區配置記憶體區塊。 當工作專案從集區配置時,驅動程式可以呼叫 IoInitializeWorkItem 來初始化工作專案。 驅動程式可以在將工作項目傳回集區時,呼叫 IoUninitializeWorkItem 來取消初始化工作專案。 在集區的初始記憶體配置期間,驅動程式可以呼叫 IoSizeofWorkitem 來判斷要為每個工作專案配置多少記憶體。
如需工作專案的詳細資訊,請參閱 系統背景工作線程。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 中使用。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應