次の方法で共有


セットアップ クラスとインターフェイス クラス

デバイス インターフェイス クラスデバイス セットアップ クラスの 2 種類のデバイス クラスを区別することが重要です。 ユーザー モード コードでは、同じデバイス インストール機能のセットと同じデータ構造セット (デバイス情報セット) が両方のクラスで使用されるため、この 2 つは混同しやすくなっています。 さらに、多くの場合、デバイスはセットアップ クラスと複数のインターフェイス クラスの両方に同時に属します。 ただし、2 種類のクラスは異なる目的で機能し、レジストリ内の異なる領域を利用し、クラス GUID を定義するために異なるヘッダー ファイルのセットに依存します。

デバイス セットアップ クラス は、同じ方法でインストールおよび構成されているデバイスをグループ化するためのメカニズムを提供します。 たとえば、すべての CD-ROM ドライブは CDROM セットアップ クラスに属します。

デバイス インターフェイス クラス は、共有の特性または機能に従ってデバイスをグループ化するためのメカニズムを提供します。 ドライバーとユーザー アプリケーションは、個々のデバイスのシステム内のプレゼンスを追跡する代わりに、特定のインターフェイス クラスに属するすべてのデバイスの到着または削除の通知を受け取るために登録できます。

Windows デバイス セットアップ クラスは、システム ファイル Devguid.h で定義されています。 このファイルは、セットアップ クラスの一連の GUID を定義します。 ただし、Devguid.h で表されるデバイス セットアップ クラスは、デバイス インターフェイス クラスと混同しないでください。 Devguid.h ファイルには、セットアップ クラスの GUID のみが含まれています。

インターフェイス クラスの定義は、1 つのファイルでは提供されません。 デバイス インターフェイス クラスは、デバイスの特定のクラスにのみ属するヘッダー ファイルで常に定義されます。 たとえば、Ntddmou.h には、マウス インターフェイス クラスを表す GUID GUID_DEVINTERFACE_MOU Standard Editionの定義が含まれています。Ntddpar.h は、並列デバイスのインターフェイス クラス GUID を定義します。Ntddpcm.h は、PCMCIA デバイスの標準インターフェイス クラス GUID を定義します。Ntddstor.h は、ストレージ デバイスのインターフェイス クラス GUID などを定義します。

デバイス インターフェイスのインスタンスの到着通知を登録するには、デバイス インターフェイス クラスに固有のヘッダー ファイル内の GUID を使用する必要があります。 ドライバーがインターフェイス クラス GUID ではなくセットアップ クラス GUID を使用して通知を登録した場合、インターフェイスが到着しても通知されません。

新しいセットアップ クラスまたはインターフェイス クラスを定義するときは、 セットアップ クラスとインターフェイス クラスの両方を識別するために 1 つの GUID を使用しないでください。

GUID の詳細については、「ドライバーでの GUID の使用」を参照してください。