次の方法で共有


フレームワーク レジストリ キー オブジェクトの使用

フレームワーク ベースのドライバーは、フレームワーク レジストリ キー オブジェクトを使用してレジストリにアクセスします。 レジストリ キー オブジェクトは、ドライバーがレジストリ キーを作成、開く、閉じたり、レジストリ値を追加、削除、レジストリ値に割り当てられたデータを読み書きできるようにするメソッドを定義します。

レジストリ キーを開くには、ドライバーが WdfRegistryOpenKey を呼び出す必要があります。 キーが存在しない場合、ドライバーは WdfRegistryCreateKey を呼び出す必要があります。このキーによって新しいキーが作成され、開かれます。

ドライバーがレジストリ キーを開くと、フレームワークは、開かれたキーを表すレジストリ キー オブジェクトを作成し、ドライバーにオブジェクト ハンドルを返します。 ドライバーは、オブジェクト ハンドルを使用して、キー、キーの下に存在するすべてのサブキー、およびキーまたはそのサブキーの下に存在する値にアクセスする必要があります。

現在レジストリ値の名前に割り当てられているデータを読み取るために、ドライバーは次のいずれかのオブジェクト メソッドを呼び出すことができます。

WdfRegistryQueryMemory
値名に現在割り当てられているデータを取得し、フレームワークによって割り当てられたバッファーにデータを格納し、バッファーを表すフレームワーク メモリ オブジェクトを作成します。

WdfRegistryQueryMultiString
複数文字列型の値の名前に現在割り当てられている文字列データを取得し、各文字列のフレームワーク文字列オブジェクトを作成し、各文字列オブジェクトをオブジェクト コレクションに追加します。

WdfRegistryQueryString
文字列型の値の名前に現在割り当てられている文字列データを取得し、指定したフレームワーク文字列オブジェクトに文字列を割り当てます。

WdfRegistryQueryUnicodeString
文字列型の値の名前に現在割り当てられている文字列データを取得し、指定した UNICODE_STRING 構造体に文字列をコピーします。

WdfRegistryQueryULong
値の名前に現在割り当てられている符号なし長い単語 (REG_DWORD) データを取得し、指定した場所にデータをコピーします。

WdfRegistryQueryValue
値の名前に現在割り当てられているデータを取得し、ドライバーが提供するバッファーにデータをコピーします。

レジストリ値にデータを書き込むには、ドライバーは、次のいずれかのメソッドを呼び出すことができます。 値の名前が既に存在する場合は、オペレーティング システムによって値のデータが更新されます。

WdfRegistryAssignMemory
メモリ バッファーに格納されているデータをレジストリ内の指定した値名に割り当てます。

WdfRegistryAssignMultiString
レジストリ内の指定した値名に文字列のセットを割り当てます。 文字列は、ドライバーが指定したフレームワーク文字列オブジェクトのコレクションに含まれています。

WdfRegistryAssignString
レジストリ内の指定した値名に文字列を割り当てます。 文字列はフレームワーク文字列オブジェクトに含まれています。

WdfRegistryAssignUnicodeString
指定した Unicode 文字列をレジストリ内の指定した値名に割り当てます。

WdfRegistryAssignULong
レジストリ内の指定した値名に、指定した符号なしロング ワード値を割り当てます。

WdfRegistryAssignValue
ドライバーが指定したデータ バッファーの内容をレジストリ内の指定された値の名前に割り当てます。

レジストリ値を削除するには、ドライバーは WdfRegistryRemoveValue を呼び出す必要があります。 キーを削除するには、ドライバーが WdfRegistryRemoveKey を呼び出す必要があります。

レジストリに関する WDM 情報を取得するために、ドライバーは WdfRegistryWdmGetHandle を呼び出すことができます、これは、フレームワーク レジストリ キー オブジェクトが表すレジストリ キーに WDM ハンドルを返します。

ドライバーがレジストリ キーへのアクセスを完了したら、WdfRegistryClose または WdfObjectDelete を呼び出してキーを閉じ、レジストリ キー オブジェクトを削除する必要があります。