SetupQueryInfVersionInformationA 関数 (setupapi.h)
[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、引き続きデバイス ドライバーのインストールに使用されます。
SetupQueryInfVersionInformation 関数は、SP_INF_INFORMATION構造体からバッファーに INF ファイルのバージョン情報を返します。
構文
WINSETUPAPI BOOL SetupQueryInfVersionInformationA(
[in] PSP_INF_INFORMATION InfInformation,
[in] UINT InfIndex,
[in] PCSTR Key,
[in, out] PSTR ReturnBuffer,
[in] DWORD ReturnBufferSize,
[in, out] PDWORD RequiredSize
);
パラメーター
[in] InfInformation
SetupGetInfInformation 関数の呼び出しから以前に返されたSP_INF_INFORMATION構造体へのポインター。
[in] InfIndex
バージョン情報を取得する構成 INF ファイルのインデックス。 このインデックスの範囲は [0, InfInformation.InfCount) です。 InfInformation.InfCount を含まない値が 0 から 0 であることを意味します。
[in] Key
関連付けられた文字列を取得するキー名を含む null で終わる文字列へのオプションのポインター。 このパラメーターが NULL の場合、すべてのリソース キーが指定されたバッファーにコピーされます。 各文字列は null で終わり、リストの末尾に余分な null が 付きます。
[in, out] ReturnBuffer
NULL でない場合、ReturnBuffer は、この関数が INF ファイル スタイルを返す呼び出し指定の文字バッファーを指します。 null で終わる文字列を使用する必要があります。 null で終わる文字列は、コピー先バッファーのサイズを超えないようにする必要があります。 関数を 1 回呼び出して、必要なバッファー サイズを取得し、必要なメモリを割り当ててから、もう一度関数を呼び出してデータを取得できます。 この手法を使用すると、バッファー サイズが不十分なため、エラーを回避できます。 「解説」を参照してください。 このパラメーターは、NULL でもかまいません。
[in] ReturnBufferSize
ReturnBuffer パラメーターが指すバッファーのサイズ (文字数)。 この数値には null 終端記号が含まれます。
[in, out] RequiredSize
NULL でない場合は、ReturnBuffer パラメーターが指すバッファーに必要なサイズを文字で受け取る変数へのポインター。 この数値には null 終端記号が含まれます。 ReturnBuffer を指定し、実際のサイズが ReturnBufferSize で指定された値より大きい場合、関数は失敗し、GetLastError の呼び出しはERROR_INSUFFICIENT_BUFFERを返します。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
ReturnBuffer が NULL で ReturnBufferSize が 0 の場合、この関数は、指定されたデータを保持するために必要なバッファー サイズを RequiredSize が指す変数に格納します。 この関数が成功した場合、戻り値は 0 以外の値になります。 それ以外の場合、戻り値は 0 で、 GetLastError を呼び出すことで拡張エラー情報を取得できます。
SetupQueryInfVersionInformation がレガシ INF ファイルで呼び出された場合、バージョン情報はレガシ INF ファイルから次の方法で生成されます。
- 従来のファイルの [識別 ] セクションの OptionType キーは、クラス キーの値として返されます。
- レガシ INF ファイルの [署名 ] セクションの FileType キーは、署名キーの値になります。
- レガシ INF ファイルの FileType キーの値がMICROSOFT_FILE場合、プロバイダー キーの値は "Microsoft" に設定されます。
レガシ ファイル情報 | Windows INF 情報 |
---|---|
|
|
|
|
(FileType がMICROSOFT_FILEの場合) |
|
注意
setupapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupQueryInfVersionInformation を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | setupapi.h |
Library | Setupapi.lib |
[DLL] | Setupapi.dll |