デバイス インターフェイス クラスを登録するには、次の 2 つの方法があります。
PnP デバイスを制御するドライバーは、特定の デバイス インターフェイスクラスにデバイス インターフェイスを登録できます。 デバイス インターフェイスの登録の一環として、デバイス インターフェイス クラスが暗黙的に作成されます。 このトピックでは、ルーチンを使用して デバイス インターフェイスを登録する方法について説明します。
INF ファイルには、 INF DDInstall.Interfaces セクションを含めることができます。
WDM ドライバーは、そのデバイス オブジェクトに名前を付けません。 代わりに、ドライバーが IoCreateDevice を呼び出してデバイス オブジェクトを作成するときに、デバイス名に null 文字列を指定する必要があります。 詳細については、「 デバイス オブジェクトの作成」を参照してください。
デバイス オブジェクトを作成してデバイス スタックにアタッチした後、1 つのドライバーは IoRegisterDeviceInterface を呼び出して デバイス インターフェイス クラス を登録し、クラスの デバイス インターフェイス インスタンスを作成します。 通常、関数ドライバーは、 その AddDevice ルーチンからこの呼び出しを行いますが、場合によっては、フィルター ドライバーは、インターフェイスを登録します。
このルーチンはシンボリック リンク名を返します。 ドライバーは、デバイス インターフェイス インスタンスを有効または無効にすると、リンク名を渡します。 他のシステム コンポーネントでは、ドライバーが有効になるまで、デバイス インターフェイス インスタンスを使用できません。 詳細については、 デバイス インターフェイス インスタンスの有効化と無効化 を参照してください。
ドライバーは、シンボリック リンク名を使用してレジストリ キーにアクセスし、デバイス インターフェイスに固有の情報を格納することもできます (詳細については、 IoOpenDeviceInterfaceRegistryKey を参照してください)。 アプリケーションでは、リンク名を使用してデバイスを開きます。
ドライバーは、追加のデバイス インターフェイス クラスのインスタンスを登録するために必要な回数 IoRegisterDeviceInterface を呼び出すことができます。
WDF ドライバーから デバイス インターフェイス を使用するには、「 デバイス インターフェイス (WDF) の使用」を参照してください。