共用方式為


登錄回呼測試

此自動化測試會練習登錄篩選驅動程式的基本測試案例。

測試詳細資料

   
規格
  • Filter.Driver.FileSystem.MiniFilter
  • Filter.Driver.FileSystem.RegistryAndProcess
  • Filter.Driver.Anti以.RegistryAndProcess
  • Filter.Driver.Anti一.MiniFilter
平台
  • Windows 10,用戶端版本 (x86)
  • Windows 10,用戶端版本 (x64)
  • Windows Server 2016 (x64)
支援的版本
  • Windows 10
  • Windows 10 (版本 1511)
  • Windows 10 (版本 1607)
  • Windows 10 (版本 1703)
  • Windows 10 (版本 1709)
  • Windows 10 (版本 1803)
  • Windows 10 版本 1809
  • Windows 10 (版本 1903)
  • Windows 10的下一個更新
預期的執行時間 (以分鐘為單位) 30
類別 部署
以分鐘為單位的逾時 () 1800
需要重新開機 false
需要特殊設定 false
類型 automatic

 

其他檔

此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :

執行測試

執行測試之前,請先完成測試設定,如測試需求: 檔案系統測試必要條件中所述。

疑難排解

如需 HLK 測試失敗的一般疑難排解,請參閱 針對 Windows HLK 測試失敗進行疑難排解

如需疑難排解資訊,請參閱 針對檔案系統測試進行疑難排解

所有測試案例都會傳回 Pass 或 Fail。 若要檢閱測試詳細資料,請檢閱 Windows Hardware Lab Kit (Windows HLK) Studio 的測試記錄。 若為測試失敗,請在記錄中搜尋 「+sev」 一詞。

詳細資訊

此測試包含下列測試案例:

  • 高度衝突

  • CreateKey 區塊

  • CreateKey 略過

  • CreateKey 覆寫拒絕存取

  • CreateKey 覆寫區塊

  • SetKeySecurity Bypass

  • Transacted CreateKey Bypass

  • Transacted CreateKey Bypass (No Commit)

  • 取消註冊關閉競爭

  • 儲存還原取代

若要手動執行每個測試案例,請使用下列程式。

手動執行高度衝突測試案例

  1. 在高度 1000 註冊回呼。

  2. 在相同的高度註冊另一個回呼,然後確認其失敗。

  3. CreateKey the Monitor test.

  4. 在高度 1000、2000 和 3000 註冊相同回呼的三個。 將所有三個回呼設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  5. 建立金鑰,然後確認金鑰成功。

  6. 取消註冊回呼。

  7. 請根據回呼的高度,確認已適當地叫用每個回呼。

手動執行 CreateKey 區塊測試案例

  1. 在高度 1000、2000 和 3000 註冊相同回呼的三個。

  2. 將回呼 1000 和 3000 設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  3. 將回呼 2000 設定為「封鎖」模式。 這表示回呼會傳回錯誤狀態。

  4. 建立金鑰,然後確認金鑰失敗。

  5. 取消註冊回呼。

  6. 請根據回呼的高度,確認已適當地叫用每個回呼。

手動執行 CreateKey Bypass 測試案例

  1. 在高度 1000、2000 和 3000 註冊相同回呼的三個。

  2. 將回呼 1000 和 3000 設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  3. 將回呼 2000 設定為「略過」模式。 這表示回呼會傳回STATUS_CALLBACK_BYPASS,並代表登錄執行作業。

  4. 建立金鑰,然後確認金鑰成功。

  5. 取消註冊回呼。

  6. 請根據回呼的高度,確認已適當地叫用每個回呼。

手動執行 CreateKey 覆寫拒絕存取測試案例

  1. 建立金鑰 K1,然後設定其任意存取控制清單 (DACL) ,以提供唯讀存取權。

  2. 在 K1 下建立金鑰。 這應該會因為唯讀 DACL 而失敗。

  3. 在高度 1000、2000 和 3000 註冊相同回呼的三個。 STATUS_CALLBACK_BYPASS。

  4. 將回呼 1000 和 3000 設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  5. 將回呼 2000 設定為「拒絕存取略過」模式。 這表示回呼會從使用者模式執行作業,而不是由唯讀 DACL 封鎖,並傳回。

  6. 在 K1 下建立金鑰,然後確認金鑰成功。

  7. 取消註冊回呼。

  8. 確認每個回呼都根據其高度適當地叫用。

手動執行 CreateKey Override Block 測試案例

  1. 在高度 1000、2000、3000 和 4000 註冊四個相同的回呼。

  2. 將回呼 1000 和 4000 設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  3. 將回呼 2000 設定為「封鎖」模式。 這表示回呼會傳回STATUS_UNSUCCESSFUL。

  4. 將回呼 3000 設定為「覆寫失敗」模式。 這表示,如果回呼在作業後回呼中識別STATUS_UNSUCCESSFUL,它仍會執行作業並傳回成功。

  5. 建立金鑰,然後確認它是否成功。

  6. 取消註冊回呼。

  7. 確認每個回呼都根據其高度適當地叫用。

手動執行 SetKeySecurity Bypass 測試案例

  1. 在高度 1000、2000 和 3000 註冊相同回呼的三個。

  2. 將回呼 1000 和 3000 設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  3. 將回呼 2000 設定為「略過」模式。 這表示回呼會傳回STATUS_CALLBACK_BYPASS,並代表登錄執行作業。

  4. 呼叫 RegSetKeySecurity 來設定金鑰的安全性描述元,然後確認其成功。

  5. 取消註冊回呼。

  6. 確認每個回呼都根據其高度適當地叫用。

手動執行 Transacted CreateKey Bypass 測試案例

  1. 建立交易 T1。

  2. 在交易 T1 的內容中建立索引鍵。

  3. 確認金鑰成功,然後加以刪除。

  4. 在高度 1000、2000 和 3000 註冊相同回呼的三個。

  5. 將回呼 1000 和 3000 設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  6. 將回呼 2000 設定為「略過」模式。 這表示回呼會傳回STATUS_CALLBACK_BYPASS,並代表登錄執行作業。

  7. 在交易 T1 的內容中建立金鑰,然後確認它是否成功。

  8. 認可交易。

  9. 取消註冊回呼。

手動執行 Transacted CreateKey Bypass (No Commit) 測試案例

  • 完成與 Transacted CreateKey Bypass 測試案例相同的步驟,但不要在結尾認可交易。

手動執行取消註冊關閉競爭測試案例

  1. 啟動開啟測試金鑰的執行緒,然後關閉迴圈中的控制碼。

  2. 在原始執行緒中,註冊並取消註冊回呼 100 次。

  3. 發出其他執行緒結束的訊號。

手動執行儲存還原取代測試案例

  1. 在軟體 Hive 下建立金鑰。

  2. 在高度 1000 註冊回呼,並將其設定為「監視」模式。 這表示回呼不會執行任何動作,但會傳回STATUS_SUCCESS。

  3. 在建立的金鑰上呼叫 RegSaveKey ,然後確認它是否成功。

  4. 使用 RegSaveKey 所建立的 Hive 檔案,在建立的金鑰上呼叫 RegRestoreKey ,然後確認它是否成功。

  5. 製作 Hive 檔案的複本。

  6. 在 [HKEY_LOCAL_MACHINE] 底下載入原始 Hive 檔案,然後確認它是否成功。

  7. 使用 Hive 檔案的複本呼叫 RegReplaceKey 。 這應該會因為共用違規而失敗,但仍會觸發此作業的回呼。

  8. 取消註冊回呼,然後確認已適當地叫用回呼。

命令語法

命令選項 描述

RegCbTestctrl.exe -regr

執行測試。

注意

   針對此測試二進位檔的命令列說明,請輸入 /h

 

檔案清單

檔案 位置

RegCbTestCtrl.exe

[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm

RegCbTest.sys

[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm

Ntlog.dll

 

參數

參數名稱 參數描述
LLU_LclAdminUser LLU for Execute
LLU_NetAccessOnly 用於複製的 LLU