INF RegisterDlls ディレクティブ
注意事項
Windows 11 バージョン 22H2 以降では、このディレクティブを使用する ドライバー パッケージ は、 ハードウェア デベロッパー センターからの署名の対象ではなくなりました。
ユニバーサル ドライバー パッケージ と Windows ドライバー では、このディレクティブを使用できません。
Note
Reg2inf ツール を使用すると、ドライバー パッケージをユニバーサルにするために、既存の INF RegisterDlls ディレクティブ を INF AddReg ディレクティブ に変換できます。
RegisterDlls ディレクティブは、OLE コントロールであり、自己登録が必要なファイルを指定するために使用される 1 つ以上の INF セクションを参照します。
[DDInstall]
RegisterDlls=register-dll-section[,register-dll-section]...
RegisterDlls ディレクティブによって参照される各 INF セクションには、次のエントリ形式が必要です。
[register-dll-section]
dirid,[subdir],filename,registration-flags[,[timeout][,argument]]
register-dll-section には、それぞれ個別の行に任意の数のエントリを含めることができます。
Entries
dirid
登録するファイルの宛先ディレクトリ ID を指定します。 詳細については、「Dirid の使用」を参照してください。
subdir
現在のディレクトリを基準にして、登録するファイルへのディレクトリ パスを指定します。 指定しないと、ファイルは現在のディレクトリに存在します。
filename
登録する OLE コントロールのファイル名を識別します。
registration-flags
OLE コントロールで実行する登録操作を示します。 次のフラグのうち、一方または両方を指定する必要があります。
0x00000001 (FLG_REGSVR_DLLREGISTER)
OLE コントロールの DllRegisterServer 関数を呼び出します (Windows SDK のドキュメントで説明されています)。
0x00000002 (FLG_REGSVR_DLLINSTALL)
OLE コントロールの DllInstall 関数を呼び出します (Windows SDK のドキュメントで説明)。
timeout
OLE コントロールが指定した登録呼び出しを完了するためのタイムアウトを秒単位で指定します。 既定のタイムアウトは 60 秒です。
argument
コントロールが実行可能ファイルの場合、これは実行可能ファイルに渡されるコマンド文字列です。 既定の引数は /RegServer です。
コントロールが実行可能ファイルでない場合は、DllInstall 関数に渡すコマンド ライン引数を指定します。
解説
register-dll-section 名はそれぞれ INFファイルに対して 一意であり、セクション名を定義するための一般的な規則に従う必要があります。 これらの規則の詳細については、「INF ファイルの一般的な構文規則」を参照してください。
次の規則は、デバイスのインストールに RegisterDlls ディレクティブを使用する場合に適用されます。
構文ではファイル名を DLL または実行可能ファイルにできますが、デバイスのインストールでは DLL のみが許可されます。
登録するコードは、ユーザー入力を求めてはなりません。
サーバー側のインストールは、システム コンテキストで実行されます。 そのため、登録されているコードにセキュリティの脆弱性が含まれていること、およびファイルのアクセス許可によってコードが悪意を持って変更されないようにする必要があります。
OLE コントロールと自己登録の詳細については、Windows SDK のドキュメントを参照してください。
例
[Dialer]
RegisterDlls = DialerRegSvr
[DialerUninstall]
UnregisterDlls = DialerRegSvr
[DialerRegSvr]
11,,avtapi.dll, 1