共用方式為


編程設備以進行 I/O 操作

使用下列一般指導方針來設計、撰寫和呼叫 SynchCritSection 程式,以程式設計裝置以進行 I/O 作業:

  • SynchCritSection 例程必須儘快將控制權傳回,該例程會針對 I/O 作業對裝置進行程式設定。

    基於這個理由,SynchCritSection 例程應該只執行為 I/O 設定裝置所需的動作。 因此,驅動程式應該執行所有 IRP 前置處理、初始化其他驅動程式例程的狀態資訊,以及在呼叫 SynchCritSection 例程之前取得硬體資源。

  • 裝置驅動程式可以有多個 SynchCritSection 例程來設計裝置。

    例如,若設定讀取要求的裝置驅動程式與特定裝置控制要求的設定方法顯著不同,驅動程式可能會為每種類型的要求有獨立的 SynchCritSection 例程來設置其裝置。

  • 每個 SynchCritSection 例程都必須儘快傳回控制權,因為執行任何 SynchCritSection 例程可防止驅動程式的 ISR 執行。

    您不應該撰寫單一、大型、一般用途的 SynchCritSection 例程,並在其中使用 switch 語句或許多巢狀的 if..then..else 語句,以決定要執行哪些操作或更新哪些狀態資訊。 另一方面,您應該避免撰寫許多 SynchCritSection 例程,只控制單一設備寄存器。