常見的 WIA 安全性問題
有數個常見問題可能會防止現有的 WIA 驅動程式 (在 LocalSystem) 下順利執行。
最常見的問題是:
檔案系統存取
LocalService 帳戶有嚴重限制的檔案存取。 例如,驅動程式無法再寫入 %windir% 目錄。
登錄存取
許多已開啟至 LocalSystem 帳戶的登錄機碼都是 LocalService 唯讀的。 例如,驅動程式無法再寫入 HKLM 子樹下的登錄機碼。
具名核心物件
請確定命名物件 (例如,WIA 驅動程式和外部元件) 存取的事件和 Mutex,例如組合應用程式,都有適當的 ACL。 如果應用程式建立具名事件物件,但不會特別授與 LocalService 帳戶的存取權,驅動程式將無法使用它。 同樣地,如果minidriver建立具名事件物件,則必須授與相同的存取權,否則應用程式將無法使用事件物件。
跨進程 COM 物件
除非該元件明確授與 LocalService 帳戶的適當許可權,否則任何嘗試建立或使用跨進程 COM 介面都會失敗。 例如,如果元件未授與 LocalService 帳戶的許可權,Microsoft Windows SDK 檔中會說明對 CoCreateInstance 或 CoCreateInstanceEx (CLSCTX_LOCAL_SERVER 的呼叫) 。 同樣地,嘗試使用未處理驅動程式之 COM 介面的指標的驅動程式可能會失敗。 如果元件呼叫驅動程式,並將指標交給驅動程式回呼介面的介面,就會發生這種情況。
建立和開啟程式
WIA 驅動程式不應該藉由呼叫 CreateProcess 或 CreateProcessAsUser) 手動啟動其他進程 (。 雖然此行為對於 LocalSystem 帳戶下的驅動程式會成功,但驅動程式將無法再在新 LocalService 帳戶下執行此動作。 如需 CreateProcess 和 CreateProcessAsUser 的詳細資訊,請參閱 Windows SDK 檔。