InstallHinfSectionA 関数 (setupapi.h)
[この機能は、「要件」セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、アプリケーション インストーラーを開発するために Windows インストーラーを使用します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。]
InstallHinfSection は、.inf ファイルのセクションを実行するために使用できる Setupapi.dll によってエクスポートされるエントリ ポイント関数です。 InstallHinfSection は、「解説」セクションで説明されているように、Rundll32.exe ユーティリティを呼び出すことによって呼び出すことができます。
InstallHinfSection 関数のプロトタイプは、Rundll32.exe で使用されるすべてのエントリ ポイント関数の形式に従います。
ファイルがコピーまたは変更された場合、この関数の呼び出し元には、ターゲット ディレクトリに書き込む権限が必要です。 インストールされているサービスがある場合は、この関数の呼び出し元が Service Control Manager にアクセスできる必要があります。
構文
void InstallHinfSectionA(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCSTR CommandLine,
[in] INT ShowCommand
);
パラメーター
[in] Window
親ウィンドウ ハンドル。 通常 、hwnd は Null です。
[in] ModuleHandle
予約済みで、Null にする必要があります。
[in] CommandLine
コマンド ラインを含むバッファーへのポインター。 null で終わる文字列を使用する必要があります。
[in] ShowCommand
予約済みで、0 にする必要があります。
戻り値
なし
解説
InstallHinfSection (RunDll32 の場合)、InstallHinfSectionA、InstallHinfSectionW の 3 つのエクスポートが存在します。
指定した .inf ファイルの Install セクションを実行するには、次の構文を使用して、Rundll32.exe を使用して InstallHinfSection を呼び出すことができます。
RUNDLL32.EXE SETUPAPI.DLL、InstallHinfSection <セクション><モード><パス>
これにより、"<セクション><モード><パス>" が CmdLineBuffer に渡されます。
または、プログラムで InstallHinfSection、 InstallHinfSectionA、または InstallHinfSectionW を直接呼び出し、 CmdLineBuffer パラメーターを次のように設定することもできます。
"<section> <mode> <path>"
ここで、path は .inf ファイルへの完全パス、mode は再起動モード パラメーター、section は .inf ファイル内の任意の Install セクションです。 コマンド ラインの SETUPAPI.DLL と InstallHinfSection の間のコンマ区切り記号が必要です。 コマンド ラインには、コンマと SETUPAPI.DLL または InstallHinfSection の間に空白を指定できないことに注意してください。
.inf ファイルへの完全パスを パスとして指定することをお勧めします。
.inf ファイルの 任意の Install セクションを セクションとして指定できます。 スペースは使用できません。
mode には、次の値の組み合わせを使用する必要があります。 インストールの既定のパスを INF の場所に設定するには、128 を含める必要があります。それ以外の場合は、システム提供の INF が想定されます。 再起動を指定する値を追加します。 値 128 または 132 のみを使用することをお勧めします。その他の値を使用すると、コンピューターが不必要に再起動したり、必要に応じて再起動されたりする可能性があります。
値 | 説明 |
---|---|
0 | システムによって提供される INF。 |
128 | インストールの既定のパスを INF の場所に設定します。 これが一般的な設定です。 |
+0 | コンピューターを再起動しないでください。 |
+1 | すべての場合にコンピューターを再起動します。 |
+2 | 再起動するかどうかをユーザーに常に確認してください。 |
+3 | 必要に応じて、ユーザーにアクセス許可を求めずにコンピューターを再起動します。 |
+4 | コンピューターの再起動が必要な場合は、再起動する前にユーザーにアクセス許可を求めます。 |
たとえば、次のコマンド ラインでは、Shell.inf ファイルの DefaultInstall セクションが実行されます。 セットアップで再起動が必要であると判断された場合、ユーザーは [コンピューターを再起動します。はい/いいえ] ダイアログ ボックスが表示されます。
RUNDLL32.EXE SETUPAPI.DLL、InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL。Inf
注意
setupapi.h ヘッダーは、INSTALLHinfSection をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
注意事項
x86 または amd64 以外のアーキテクチャで使用する場合、または S モードのシステムで使用する場合、InstallHInfSection では、INF ファイルのハッシュと INF ファイルが INF SourceDisksFiles セクションを介して参照するすべてのファイルを含む署名済みカタログ ファイルを指す CatalogFile ディレクティブを持つ INF バージョン セクションが INF ファイルに含まれている必要があります。
注意事項
ネイティブ アーキテクチャが x86 でも amd64 でもないシステムで使用する場合は、ネイティブ アーキテクチャ プロセスから InstallHInfSection を使用する必要があります。 InstallHInfSection では、非ネイティブ アーキテクチャ プロセスから使用すると、多くの種類のシステム状態変更操作がブロックされます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | setupapi.h |
Library | Setupapi.lib |
[DLL] | Setupapi.dll |