次の方法で共有


レジストリ コールバック テスト

この自動テストでは、レジストリ フィルター ドライバーの基本的なテスト ケースを実行します。

テストの詳細

   
仕様
  • Filter.Driver.FileSystem.MiniFilter
  • Filter.Driver.FileSystem.RegistryAndProcess
  • Filter.Driver.AntiVirus.RegistryAndProcess
  • Filter.Driver.AntiVirus.MiniFilter
プラットフォーム
  • Windows 10、クライアント エディション (x86)
  • Windows 10、クライアント エディション (x64)
  • Windows Server 2016 (x64)
サポートされているリリース
  • Windows 10
  • Windows 10 バージョン 1511
  • Windows 10 Version 1607
  • Windows 10 Version 1703
  • Windows 10 バージョン 1709
  • Windows 10 バージョン 1803
  • Windows 10 Version 1809
  • Windows 10 バージョン 1903
  • Windows 10 への次の更新プログラム
予想される実行時間 (分) 30
カテゴリ 開発
タイムアウト (分) 1800
再起動が必要です false
特別な構成が必要です false
Type automatic

 

その他のドキュメント

この機能領域のテストには、前提条件、セットアップ、トラブルシューティング情報など、次のトピックに記載されている追加のドキュメントが含まれている場合があります。

テストの実行

テストを実行する前に、「ファイル システムのテストの前提条件」で説明されているテスト要件に従って、テストのセットアップを完了します。

トラブルシューティング

HLK テスト エラーの一般的なトラブルシューティングについては、「Windows HLK テストのエラーのトラブルシューティング」を参照してください。

トラブルシューティング情報については、「ファイル システム テストのトラブルシューティング」を参照してください。

すべてのテスト ケースで成功または失敗が返されます。 テストの詳細を確認するには、Windows Hardware Lab Kit (Windows HLK) Studio のテスト ログを確認します。 テスト エラーの場合は、ログで "+sev" という用語を検索します。

詳細情報

このテストには次のテスト ケースが含まれます。

  • 高度競合

  • CreateKey ブロック

  • CreateKey バイパス

  • CreateKey オーバーライド アクセス拒否

  • CreateKey オーバーライド ブロック

  • SetKeySecurity バイパス

  • トランザクション CreateKey バイパス

  • トランザクション CreateKey バイパス (コミットなし)

  • 接戦の登録解除

  • 復元置換の保存

各テスト ケースを手動で実行するには、次の手順を使用します。

高度競合テスト ケースを手動で実行するには

  1. 高度 1000 でコールバックを登録します。

  2. 同じ高度で別のコールバックを登録してから、それが失敗したことを検証します。

  3. 監視テストに対して CreateKey を実行します。

  4. 高度 1000、2000、および 3000 で、同じコールバックの 3 つを登録します。 3 つのコールバックすべてを "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  5. キーを作成してから、それが成功したことを検証します。

  6. コールバックの登録を解除します。

  7. 各コールバックがその高度に基づいて適切に呼び出されたことを検証します。

CreateKey ブロック テスト ケースを手動で実行するには

  1. 高度 1000、2000、および 3000 で、同じコールバックの 3 つを登録します。

  2. コールバック 1000 と 3000 を "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  3. コールバック 2000 を "ブロック" モードに設定します。 これは、コールバックでエラー状態が返されることを意味します。

  4. キーを作成してから、それが失敗したことを検証します。

  5. コールバックの登録を解除します。

  6. 各コールバックがその高度に基づいて適切に呼び出されたことを検証します。

CreateKey バイパス テスト ケースを手動で実行するには

  1. 高度 1000、2000、および 3000 で、同じコールバックの 3 つを登録します。

  2. コールバック 1000 と 3000 を "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  3. コールバック 2000 を "バイパス" モードに設定します。 これは、コールバックで STATUS_CALLBACK_BYPASS が返され、レジストリに代わって操作が実行されることを意味します。

  4. キーを作成してから、それが成功したことを検証します。

  5. コールバックの登録を解除します。

  6. 各コールバックがその高度に基づいて適切に呼び出されたことを検証します。

CreateKey オーバーライド アクセス拒否テスト ケースを手動で実行するには

  1. キー K1 を作成してから、その随意アクセス制御リスト (DACL) を設定して読み取り専用アクセス権を付与します。

  2. K1 の下にキーを作成します。 読み取り専用の DACL であるため、これは失敗するはずです。

  3. 高度 1000、2000、および 3000 で、同じコールバックの 3 つを登録します。 STATUS_CALLBACK_BYPASS。

  4. コールバック 1000 と 3000 を "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  5. コールバック 2000 を "アクセス拒否バイパス" モードに設定します。 これは、コールバックでユーザー モードから操作が実行され、読み取り専用の DACL によってブロックされず、値が返されることを意味します。

  6. K1 の下にキーを作成してから、それが成功したことを検証します。

  7. コールバックの登録を解除します。

  8. 各コールバックがその高度に基づいて適切に呼び出されたことを検証します。

CreateKey オーバーライド ブロック テスト ケースを手動で実行するには

  1. 高度 1000、2000、3000、4000 で、同じコールバックの 4 つを登録します。

  2. コールバック 1000 と 4000 を "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  3. コールバック 2000 を "ブロック" モードに設定します。 これは、コールバックで STATUS_UNSUCCESSFUL が返されることを意味します。

  4. コールバック 3000 を "オーバーライド エラー" モードに設定します。 これは、操作後のコールバックで STATUS_UNSUCCESSFUL が識別された場合でも、操作が実行され、成功が返されることを意味します。

  5. キーを作成してから、それが成功したことを検証します。

  6. コールバックの登録を解除します。

  7. 各コールバックがその高度に基づいて適切に呼び出されたことを検証します。

SetKeySecurity バイパス テスト ケースを手動で実行するには

  1. 高度 1000、2000、および 3000 で、同じコールバックの 3 つを登録します。

  2. コールバック 1000 と 3000 を "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  3. コールバック 2000 を "バイパス" モードに設定します。 これは、コールバックで STATUS_CALLBACK_BYPASS が返され、レジストリに代わって操作が実行されることを意味します。

  4. RegSetKeySecurity を呼び出してキーのセキュリティ記述子を設定し、それが成功したことを検証します。

  5. コールバックの登録を解除します。

  6. 各コールバックがその高度に基づいて適切に呼び出されたことを検証します。

トランザクション CreateKey バイパス テスト ケースを手動で実行するには

  1. トランザクション T1 を作成します。

  2. トランザクション T1 のコンテキストでキーを作成します。

  3. キーが成功したことを検証してから、それを削除します。

  4. 高度 1000、2000、および 3000 で、同じコールバックの 3 つを登録します。

  5. コールバック 1000 と 3000 を "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  6. コールバック 2000 を "バイパス" モードに設定します。 これは、コールバックで STATUS_CALLBACK_BYPASS が返され、レジストリに代わって操作が実行されることを意味します。

  7. トランザクション T1 のコンテキストでキーを作成してから、それが成功したことを検証します。

  8. トランザクションをコミットします。

  9. コールバックの登録を解除します。

トランザクション CreateKey バイパス (コミットなし) テスト ケースを手動で実行するには

  • トランザクション CreateKey バイパス テスト ケースと同じ手順を行いますが、最後にトランザクションをコミットしません。

接戦の登録解除テスト ケースを手動で実行するには

  1. テスト キーを開くスレッドを開始してから、ループ内のハンドルを閉じます。

  2. 元のスレッドで、コールバックを 100 回登録してそれを解除します。

  3. 他のスレッドに終了を知らせます。

復元置換の保存テスト ケースを手動で実行するには

  1. ソフトウェア ハイブの下にキーを作成します。

  2. 高度 1000 でコールバックを登録し、それを "監視" モードに設定します。 これは、コールバックで STATUS_SUCCESS を返す以外何も行われないことを意味します。

  3. 作成されたキーで RegSaveKey を呼び出してから、それが成功したことを検証します。

  4. RegSaveKey によって作成されたハイブ ファイルを使用して、作成されたキーで RegRestoreKey を呼び出してから、それが成功したことを検証します。

  5. ハイブ ファイルのコピーを作成します。

  6. HKEY_LOCAL_MACHINE の下の元のハイブ ファイルを読み込んでから、それが成功したことを検証します。

  7. ハイブ ファイルのコピーを使用して、RegReplaceKey を呼び出します。 これは共有違反で失敗するはずですが、引き続きこの操作のコールバックがトリガーされます。

  8. コールバックの登録を解除してから、適切に呼び出されたことを検証します。

コマンド構文

コマンド オプション 説明

RegCbTestctrl.exe -regr

テストを実行します。

Note

   このテスト バイナリのコマンド ライン ヘルプを表示するには、「/h」と入力します。

 

ファイル一覧

ファイル 場所

RegCbTestCtrl.exe

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

RegCbTest.sys

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

Ntlog.dll

 

パラメーター

パラメーター名 パラメーターの説明
LLU_LclAdminUser 実行用 LLU
LLU_NetAccessOnly コピー用 LLU