各モデル 、DDInstall_。Interfaces セクションには、特定のデバイス/ドライバーでサポートされているデバイス インターフェイスの数に応じて、1 つ以上の AddInterface ディレクティブを指定できます。
[install-section-name.Interfaces] |
[install-section-name.nt.Interfaces] |
[install-section-name.ntx86.Interfaces] |
[install-section-name.ntia64.Interfaces] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.Interfaces] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.Interfaces] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.Interfaces] (Windows 10 version 1709 and later versions of Windows)
AddInterface={InterfaceClassGUID} [, [reference string] [,[add-interface-section] [,flags]]] ...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
システムの定義済みのカーネル ストリーミング インターフェイスなど、既存のデバイス インターフェイスをサポートするには、このセクションで適切な InterfaceClassGUID 値を指定します。
デバイス インターフェイスの新しいクラスをエクスポートするクラス ドライバーなどのコンポーネントをインストールするには、INF に INF InterfaceInstall32 セクションも必要です。
デバイス インターフェイスの詳細については、「 デバイス インターフェイス クラス」を参照してください。
エントリ
AddInterface={InterfaceClassGUID} [,[参照文字列] [,[add-interface-section] [,flags_]]...
このディレクティブは、ドライバーが上位レベルのコンポーネントにエクスポートする指定された InterfaceClassGUID 値によって指定されたデバイス インターフェイス クラスのサポートをインストールします。 通常は、INF ファイル内の他の場所で INF ライター定義 の add-interface-section も参照します。 このディレクティブを指定する方法の詳細については、 INF AddInterface ディレクティブを参照してください。
Include=,filename。inf[,filename2.inf]...
この省略可能なエントリは、このデバイス/ドライバーでサポートされているインターフェイス クラスを登録するために必要なセクションを含む 1 つ以上のシステム提供 INF ファイルを指定します。 このエントリが指定されている場合、通常は Needs エントリも指定されます。
Needs=,inf-section-name[,inf-section-name]...
このオプションのエントリは、このデバイスのインストール中に処理する必要がある特定のセクションを指定します。 通常、このような名前付きセクションは 、DDInstall_です。インクルード エントリに一覧表示されているシステム提供の INF ファイル内の Interfaces セクション。 ただし、このようなDDInstall_内で参照される任意のセクションを指定できます。 含まれている INF の [インターフェイス] セクション。
Remarks
DDInstall セクション名は、INF ファイルの製造元ごとの Models セクションのデバイス/モデル固有のエントリによって参照されている必要があります。 クロスプラットフォーム INF ファイルでシステム定義 の .nt、 .ntx86、 .ntia64、 .ntamd64、 .ntarm、 および .ntarm64 拡張機能を使用する方法については、「 複数のプラットフォームとオペレーティング システム用の INF ファイルの作成」を参照してください。
指定した {,InterfaceClassGUID_} がまだインストールされていない場合、オペレーティング システムのセットアップ コードによって、そのデバイス インターフェイス クラスがシステムにインストールされます。 INF ファイルが 1 つ以上の新しいデバイス インターフェイス クラスをインストールする場合、新しいクラスの GUID を識別する [InterfaceInstall32] セクションを含めることもできます。
GUID を作成する方法の詳細については、「 ドライバーでの GUID の使用」を参照してください。 システム定義インターフェイス クラス GUID については、カーネル ストリーミング インターフェイス クラス GUID の Ks.h など、システムが提供する適切なヘッダーを参照してください。
ドライバーが読み込まれると、デバイス インターフェイスの完全な SymbolicLinkName を取得するために、同じ {,InterfaceClassGUID_} と AddInterface ディレクティブで使用される参照文字列を使用して IoRegisterDeviceInterface を呼び出す必要があります。 これは、INF のDDInstall_内の各デバイス インターフェイスに対して行う必要があります。 基になるデバイスでドライバーがサポートするインターフェイス セクション。 各 SymbolicLinkName について、ドライバーは IoSetDeviceInterfaceState を呼び出してデバイス インターフェイスを有効にする必要があります。 通常、PnP 関数またはフィルター ドライバーは、 AddDevice ルーチンからこれらの呼び出しを行います。
Examples
この例では、 DDInstall を示します。nt. システム提供の WDM オーディオ デバイス/ドライバーの INF ファイルのインターフェイス セクション。
;
; following AddInterface= are all single lines (without
; backslash line continuators) in the system-supplied INF file
;
[WDMPNPB003_Device.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,\
WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,\
WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,\
WDM_SB16.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,\
WDM_SB16.Interface.FMSynth
; ...
[Strings] ; only immediately preceding %strkey% tokens shown here
%KSCATEGORY_AUDIO% = "{6994ad04-93ef-11d0-a3cc-00a0c9223196}"
KSNAME_Wave = "Wave"
KSNAME_UART = "UART"
KSNAME_FMSynth = "FMSynth"
KSNAME_Topology = "Topology"
; ...