共用方式為


UMDF 驅動程式的會話零指導方針

從 Windows Vista 開始,作業系統會在會話 0 中隔離服務和系統進程,而應用程式則會在後續、較高的編號會話中執行。 因為 UMDF 主機進程 (WUDFHost.exe) 是在會話 0 中執行的其中一個系統進程,所以 UMDF 驅動程式會與應用程式隔離。 因此,開發驅動程式時,您必須使用下列指導方針:

  • 請勿建立使用者介面 (UI) 專案,例如對話方塊,或相依于使用者輸入。 因為使用者未在會話 0 中執行,所以他們永遠不會看到 UI 且無法回應。

    同樣地,請勿操作任何 UI 元素。 例如,UMDF 驅動程式無法列舉使用者會話中的視窗。

  • 如果您的驅動程式必須與服務通訊,請使用用戶端/伺服器機制,例如遠端程序呼叫 (RPC) 或具名管道。

  • 在 Windows API 中呼叫函式時請小心。 某些函式可能會操作 UI 元素,或嘗試存取使用者會話中的具名物件。 請勿呼叫您不會從使用者模式服務呼叫的 Windows 函式。 一般規則是 UMDF 驅動程式可以安全地呼叫在 kernel32.dll 中匯出的函式,但無法呼叫在 user32.dll 中匯出的函式。

    UMDF 驅動程式可能會呼叫 Windows 函式來執行下列工作:

如需在架構外部使用系統服務的其他資訊,請參閱第 14 章 () Orwick、Guyy 和 Guy Smith。 使用 Windows Driver Foundation 開發驅動程式。 Redmond,WA:Microsoft Press, 2007。

如需會話零隔離的其他資訊,請參閱 會話 0 隔離對 Windows 中的服務和驅動程式的影響