為 I/O 作業設計裝置
使用下列一般指導方針來設計、撰寫及呼叫 SynchCritSection 常式 ,以針對 I/O 作業設計裝置:
同步處理裝置以進行 I/O 作業的 SynchCritSection 常式必須儘快傳回控制權。
基於這個理由, SynchCritSection 常式應該只執行設定 I/O 裝置所需的動作。 因此,驅動程式應該執行所有 IRP 前置處理、初始化其他驅動程式常式的狀態資訊,以及在呼叫 SynchCritSection 常式之前取得硬體資源。
設備磁碟機可以有多個 SynchCritSection 常式 來設計裝置。
例如,設定讀取要求之裝置的驅動程式與設定特定裝置控制要求可能會有不同的 SynchCritSection 常式 ,以針對每種要求類型來為其裝置進行程式設計。
每個 SynchCritSection 常式都必須儘快傳回控制權,因為執行任何 SynchCritSection 常式可防止驅動程式的 ISR 執行。
您不應該使用switch語句或許多巢狀 if 撰寫單一、大型、一般用途的 SynchCritSection 常式。然後。。else語句,用來判斷它將執行的作業,或要更新哪些狀態資訊。 另一方面,您應該避免撰寫許多 SynchCritSection 常式 ,只設計單一裝置暫存器。