網路驅動程式中的多處理器支援
若要為所有 Microsoft Windows 版本撰寫可攜式驅動程式,您需要撰寫程式碼,以安全地在具有多個並存執行處理器的電腦上執行。 網路驅動程式必須是多處理器安全,而且必須使用提供的 NDIS 程式庫函式。
在單處理器環境中,單一處理器一次只會執行一部電腦指令,即使網路介面卡 (NIC) 或其他裝置仍可在封包送達或計時器中斷時中斷目前的執行資料流程。 一般而言,當操作封包佇列等資料結構時,驅動程式會停用 NIC 上的中斷、執行操作,然後重新啟用中斷。 單處理器環境中的許多執行緒似乎同時執行,但實際上是在交錯的時間配量中執行。
在多處理器環境中,處理器會同時執行數部電腦指令。 驅動程式必須同步處理,如此一來,當某個驅動程式函式操作一般資料結構時,另一個處理器上的相同或另一個驅動程式函式不會同時嘗試修改共用資料。 所有驅動程式程式碼都會在對稱多處理器中重新進入, (SMP) 電腦。 為了消除此資源保護問題,Windows 設備磁碟機會使用微調鎖定。 如需詳細資訊,請參閱 網路驅動程式中的同步處理和通知。