開発中およびテスト中の署名されていないドライバーのインストールInstalling an Unsigned Driver during Development and Test

既定では、64 ビット バージョンの Windows Vista と Windows の以降のバージョンがカーネル モードのドライバーの読み込み、カーネルがドライバーの署名を検証できる場合にのみ。By default, 64-bit versions of Windows Vista and later versions of Windows will load a kernel-mode driver only if the kernel can verify the driver signature. ただし、初期のドライバーの開発中、およびテスト自動化されていないにこの既定の動作を無効にできます。However, this default behavior can be disabled to during early driver development and for non-automated testing. 開発者は、一時的に有効なドライバーの署名の読み込み時の強制を無効にするのに、次のメカニズムのいずれかを使用できます。Developers can use one of the following mechanisms to temporarily disable load-time enforcement of a valid driver signature. ただし、プラグ アンド プレイ (PnP) がインストールされているドライバーのテストを完全に自動化、カタログ ファイルのドライバーを署名する必要があります。However, to fully automate testing of a driver that is installed by Plug and Play (PnP), the catalog file of the driver must be signed. Windows Vista および Windows の以降のバージョンの表示、ドライバーの署名されていないドライバーをドライバーのインストールを承認するためにシステム管理者を必要とする ダイアログ ボックスの署名、せず、すべてのユーザーができない可能性があるため、ドライバーの署名が必要です、ドライバーをインストールして、デバイスを使用してから必要な権限。Signing the driver is required because Windows Vista and later versions of Windows display a driver signing dialog box for unsigned drivers that require a system administrator to authorize the installation of the driver, potentially preventing any user without the necessary privileges from installing the driver and using the device. Windows Vista および Windows の以降のバージョンでは、この PnP ドライバー インストールの動作を無効にできません。This PnP driver installation behavior cannot be disabled on Windows Vista and later versions of Windows.

F8 の 詳細ブート オプションを使用して、Use the F8 Advanced Boot Option

Windows Vista および以降のバージョンの Windows F8 高度なブート オプション サポート--「を無効にするドライバー署名の強制」--をカーネル モード ドライバー用のシステムの現在のセッションでのみの読み込み時の署名の強制を無効にします。Windows Vista and later versions of Windows support the F8 Advanced Boot Option -- "Disable Driver Signature Enforcement" -- that disables load-time signature enforcement for a kernel-mode driver only for the current system session. この設定は、システムの再起動後は保持されません。This setting does not persist across system restarts.

署名の検証を無効にするカーネル デバッガーをアタッチします。Attach a Kernel Debugger to Disable Signature Verification

開発またはテスト コンピューターに、アクティブなカーネル デバッガーをアタッチすると、カーネル モード ドライバーの読み込み時の署名の強制が無効にします。Attaching an active kernel debugger to a development or test computer disables load-time signature enforcement for kernel-mode drivers. このデバッグ構成を使用するには、開発、デバッグのコンピューターを接続またはコンピューターのテストしカーネルの開発でのデバッグを有効にすることもコンピューターをテストするには、次のコマンドを実行します。To use this debugging configuration, attach a debugging computer to a development or test computer, and enable kernel debugging on the development or test computer by running the following command:

bcdedit -debug on

BCDEdit を使用して、ユーザーは、システムの Administrators グループのメンバーであるし、管理者特権のコマンド プロンプトからコマンドを実行する必要があります。To use BCDEdit, the user must be a member of the Administrators group on the system and run the command from an elevated command prompt. 管理者特権のコマンド プロンプト ウィンドウを開くには、デスクトップ ショートカットを作成Cmd.exe、ショートカットを右クリックし、選択、管理者として実行します。To open an elevated Command Prompt window, create a desktop shortcut to Cmd.exe, right-click the shortcut, and select Run as administrator.

カーネル デバッグ モードでカーネル モードの署名の検証を適用します。Enforcing Kernel-Mode Signature Verification in Kernel Debugging Mode

ただし、カーネル デバッガーをアタッチするには、まだ読み込み時の署名の強制を維持する必要もある必要があります、開発者の場合があります。However, there are situations in which a developer might need to have a kernel debugger attached, yet also need to maintain load-time signature enforcement. たとえば、ドライバー スタックに読み込みに失敗した、(フィルター ドライバーの場合) など、署名されていないドライバーがインストールされているときスタック全体を無効にする可能性があります。For example, when a driver stack has an unsigned driver (such as a filter driver) that fails to load, which may invalidate the entire stack. デバッガーをアタッチでは、未署名のドライバーを読み込む、ため、デバッガーがアタッチされていると、すぐに消える問題が表示されます。Because attaching a debugger allows the unsigned driver to load, the problem appears to vanish as soon as the debugger is attached. この種の問題のデバッグは、困難な場合があります。Debugging this type of issue may be difficult.

このような問題のデバッグを容易にするには、カーネル モード コードの署名ポリシー次のレジストリ値をサポートしています。In order to facilitate debugging such issues, the kernel-mode code signing policy supports the following registry value:

HKLM\SYSTEM\CurrentControlSet\Control\CI\DebugFlags

このレジストリ値の型はREG_DWORD、次のフラグの 1 つ以上のビットごとの OR に基づいて値を割り当てることができます。This registry value is of type REG_DWORD, and can be assigned a value based on a bitwise OR of one or more of the following flags:

0x000000010x00000001
このフラグの値は、ドライバーが署名されていない場合に、デバッガーを中断するカーネルを構成します。This flag value configures the kernel to break into the debugger if a driver is unsigned. 開発者またはテスターを入力して、未署名のドライバーをロードを選択できますgデバッガー プロンプトでします。The developer or tester can then choose to load the unsigned driver by entering g at the debugger prompt.

0x000000100x00000010
このフラグの値は、カーネル デバッガーの存在を無視して、常に符号なしのドライバーの読み込みをブロックするを構成します。This flag value configures the kernel to ignore the presence of the debugger and to always block an unsigned driver from loading.

このレジストリ値では、レジストリが存在しないか、前に説明したフラグに基づいていない値を持つ場合、カーネルは、カーネル モード ドライバーが署名されているかどうかに関係なくデバッグでのドライバーを常に読み込みます。If this registry value does not exist in the registry or has a value that is not based on the flags described previously, the kernel always loads a driver in kernel debugging mode regardless of whether the driver is signed.

  このレジストリ値は既定では、レジストリに存在しません。Note  This registry value does not exist in the registry by default. カーネル モードの署名の検証をデバッグするには、値を作成する必要があります。You must create the value in order to debug the kernel-mode signature verification.