INF DDInstall.COM セクション

モデル単位の各 DDInstall.COM セクションには、INF ファイル内の他の INF ライター定義セクションを参照する 1 つ以上の INF AddComServer ディレクティブが含まれています。 このセクションは、Windows 11 バージョン 24H2 以降でサポートされています。

[install-section-name.COM] |
[install-section-name.nt.COM] |
[install-section-name.ntamd64.COM] |
[install-section-name.ntarm64.COM]

AddComServer = com-server-name, [flags], com-server-install-section
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]

COM サーバーを登録するには、少なくとも 1 つの AddComServer ディレクティブが必要です。

Entries

AddComServer=com-server-name,flags,com-server-install-section

AddComServer ディレクティブは、INF ファイル内の別の場所で INF ライター定義の com-server-install-section を参照します。 AddComServer ディレクティブを 1 回以上使用し、複数の COM サーバーを登録することができます。 詳しくは、「INF AddComServer ディレクティブ」をご覧ください。COM サーバー全般については、「COM クライアントとサーバー」をご覧ください。

Include=filename.inf[,filename2.inf]...

この省略可能なエントリは、このデバイス クラスをインストールするために必要なセクションを含む 1 つ以上のシステム提供の他の名前付き INF ファイルを指定します。 このエントリが指定されている場合、Needs エントリも必要です。

Needs=inf-section-name[,inf-section-name]...

この省略可能なエントリは、このデバイス クラスのインストール中に処理する必要があるセクションを指定します。 通常、このセクションは DDInstall.COM セクションであり、Include エントリーにリストされているシステム提供の INF ファイル内にあります。 ただし、 DDInstall.COM セクション内で参照されるセクションであれば、どのセクションでもかまいません。

解説

COM バイナリは、DDInstall セクションの CopyFiles ディレクティブを使用して所定の場所にインストールされます。 バイナリは、ドライバー パッケージのドライバー ストア パス (DIRID 13 など) を基準とした場所にインストールする必要があります。 同様に、デバイスのインストールにより、デバイスの相対レジストリの場所に COM 登録が書き込まれます。

クライアントは、CoCreateInstance を呼び出す前に、ワーカー スレッドで CoRegisterDeviceCatalog を呼び出す必要があります。 CoRegisterDeviceCatalog を呼び出すと、COM ランタイムが使用するプロセスで COM サーバーの登録を使用できるようになります。

DDInstall.COM セクションは、関連する DDInstall セクションと同じプラットフォームとオペレーティング システムの装飾が必要です。 たとえば、install-section-name.ntamd64 セクションは、対応する install-section-name.ntamd64.COM セクションを持つことになります。 指定された DDInstall セクションは、INF ファイルの製造元ごとの Models セクションのデバイス/モデル固有のエントリで参照する必要があります。 正式な構文文に示されている install-section-name の大文字小文字を区別しない拡張は、クロスプラットフォーム INF ファイルの DDInstall.COM セクション名に挿入することができます。

システム定義の .nt.ntamd64.ntarm64 の拡張機能の使用方法の詳細については、「複数のプラットフォームとオペレーティング システム用の INF ファイルの作成」を参照してください。

[Device_Install.COM]
AddComServer   = VendorComServer,, VendorComServer_Inst

[VendorComServer_Inst]
ServerType     = 1 ; in-proc
ServerBinary   = %13%\Vendor_ComServer.dll
AddComClass    = {bb2b85ab-9473-42e5-8d1a-0f01d3879879},, Vendor_ComClass_Inst

[Vendor_ComClass_Inst]
Description    = %Vendor_ComClass_Desc%
ThreadingModel = Neutral

[Strings]
%Vendor_ComClass_Desc%="Vendor Com Server"

関連項目