はじめに
ストレージ ・ デバイスが、Windows に接続された場合でも、windows がデバイスのレジストリ情報を作成する、ごく簡単に。、時間の経過は、デバイスは今後使用することで多くのエントリがレジストリにあります。この資料では、システム レジストリからこの情報を削除する方法について説明します。
ストレージ ・ デバイスとデバイスの情報を適切にクリーンアップするのには Windows との間の接続を確立するソフトウェアの役割です。このプロセスは、Windows が一時的または永続的にストレージ ・ デバイスが削除されるときを把握していないために必要があります。ですが、通常の接続を確立するソフトウェアはこれを認識します。などの場合は、バックアップ ・ ソフトウェアがバックアップのための論理ユニット番号 (Lun) をマウントして、Lun をアンマウントし、ことがウィンドウから LUN 情報をクリーンアップするバックアップ ・ ソフトウェアの同じストレージ ・ デバイスは、不要になったためもう一度 Windows で使用します。
詳細
Windows システム レジストリ内のデバイスに関する情報を記録、コンピューターに新しいデバイスが接続されている場合。ほとんどのデバイスのこの手順で問題が発生されることはないです。ただし、ファイバ ・ チャネルまたは iSCSI LUN がストレージ ・ デバイスが表示され後、デバイス可能性があることはありませんが発生するもう一度コンピューターが。などのシリアル番号によって、または SCSI ページは 0x80 と 0x83 でデバイスを特定することができます。
このような場合は、レジストリに再度が表示されることはありませんのデバイスのエントリが含まれている可能性があります。だけでなく、レジストリ内の領域を占有するこれらのエントリは、これらのエントリが原因で最終的に運用上の問題です。たとえば、プラグ アンド プレイ機能のためのインデックスは、4 桁の 10 進値を使用するため 10,001 のデバイスが接続されている場合が問題することがあります。
この制限を解決するには、プラグ アンド プレイ機能で、デバイスのハード ディスク ドライブが存在しない場合、デバイスの情報をレジストリから削除する場合があります。Microsoft DevNodeCleanユーティリティを使用してこれを行うことができます。
Windows Server 2003、Windows Server 2008、Windows Server 2008 R2、および Visual Studio 2005 でビルドする方法
GUID_DEVCLASS_DISKDRIVE ディスク クラス GUID のレジストリをクリーンアップして、GUID_DEVCLASS_VOLUME のクラス GUID をディスクは、以下の手順を実行します。
注: このタスクには、 DevNodeCleanユーティリティを使用することをお勧めします。次の手順とコード例を手順 7 では、情報目的でのみ提供されます。
-
GUID に関連付けられているクラスの情報を取得するSetupDiGetClassDevs関数を呼び出します。
-
現在のクラス内の各デバイスのインスタンス情報を取得するSetupDiEnumDeviceInfo関数を呼び出します。
-
現在のデバイス情報が存在しない場合、デバイスを表すかどうかを確認するのにはCM_Get_DevNode_Status関数を呼び出します。関数のステータスが CR_NO_SUCH_DEVINST または CR_NO_SUCH_VALUE に等しいかどうかを確認します。
-
オプションでは、存在しないデバイスの場合、デバイス インスタンス ID を取得して、情報を削除する前に ID を表示するCM_Get_Device_ID関数を呼び出します。
-
存在しない場合のデバイスでは、手順 1 で取得したクラスの情報と手順 2 で取得したインスタンス情報を使用します。レジストリから情報を削除するのにはSetupDiCallClassInstaller (DIF_REMOVE、...)関数を呼び出します。
-
現在のクラスのすべてのデバイスは既に処理されている場合は、クリーンアップするSetupDiDestroyDeviceInfoList関数を呼び出します。
注: 一部のシナリオでは、GUID_DEVCLASS_DISKDRIVE と GUID_DEVCLASS_VOLUME ディスク クラス Guid、以外にも、GUID_DEVCLASS_SCSIADAPTER と GUID_DEVCLASS_VOLUMESNAPSHOT のディスク guid に対してだけでなく、レジストリをクリーンアップする必要があります。これを行うには、次のサンプル コード内の