APC 的類型

非同步程序呼叫 (APC) 是非同步執行的函式。 APC 類似于 (DPC) 的延遲程序呼叫 ,但與 DPC 不同,APC 會在特定執行緒的內容內執行。 除了檔案系統和檔案系統篩選驅動程式以外,驅動程式 () 不會直接使用 APC,而是作業系統的其他部分,因此您必須注意 APC 的運作方式。

Windows 作業系統使用四種 APC:

  • 特殊使用者模式 APC 在使用者模式 中嚴格執行,而且一律執行,即使目標執行緒不是處於可警示的等候狀態也一樣。 如需特殊使用者模式 APC 的其他資訊,請參閱 QueueUserAPC2

  • 一般使用者模式 APC 只會在使用者模式 中執行,而且只有在目標執行緒處於可警示的等候狀態時才執行。 作業系統會使用一般使用者 APC 來實作 重迭 I/OQueueUserApc Win32 常式等機制。

  • 一般核心 APC 會在 IRQL = PASSIVE_LEVEL的核心模式中執行。 一般核心 APC 會先占所有使用者模式程式碼,包括使用者 APC。 檔案系統和檔案系統篩選驅動程式通常會使用一般核心 APC。

  • 特殊核心 APC 會在 IRQL = APC_LEVEL的核心模式中執行。 特殊的核心 APC 會先占在 IRQL = PASSIVE_LEVEL上執行的使用者模式程式碼和核心模式程式碼,包括使用者 APC 和一般核心 APC。 作業系統會使用特殊的核心 APC 來處理 I/O 要求完成等作業。

如需從最低到最高優先順序的 IRQL 清單,請參閱 管理硬體優先順序