SetupGetStringFieldW 関数 (setupapi.h)

[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、引き続きデバイス ドライバーのインストールに使用されます。

SetupGetStringField 関数は、INF ファイル内の行の指定されたフィールドから文字列を取得します。

構文

WINSETUPAPI BOOL SetupGetStringFieldW(
  [in]      PINFCONTEXT Context,
  [in]      DWORD       FieldIndex,
  [in, out] PWSTR       ReturnBuffer,
  [in]      DWORD       ReturnBufferSize,
  [out]     PDWORD      RequiredSize
);

パラメーター

[in] Context

INF ファイル内の行のコンテキストへのポインター。

[in] FieldIndex

文字列の取得元となる指定した行内のフィールドの 1 から始まるインデックス。 文字列キーが存在する場合は、 FieldIndex 0 を使用して取得します。

[in, out] ReturnBuffer

null で終わる文字列を受け取るバッファーへの省略可能なポインター。 宛先バッファーのサイズがソース バッファーと同じか大きいことを確認する必要があります。 このパラメーターは、NULL でもかまいません。 「解説」を参照してください。

[in] ReturnBufferSize

ReturnBuffer が指すバッファーのサイズ (文字数)。 これには null 終端記号が含まれます。

[out] RequiredSize

ReturnBuffer パラメーターが指すバッファーに必要なサイズを受け取る変数への省略可能なポインター (文字数)。 ReturnBuffer を指定し、必要な実際のサイズが ReturnBufferSize で指定された値より大きい場合、関数は失敗し、文字列はバッファーに格納されません。 この場合、 GetLastError を呼び出すと、ERROR_INSUFFICIENT_BUFFERが返されます。 この関数の Unicode バージョンの場合、必要なサイズは文字数です。 これには null 終端記号が含まれます。

戻り値

関数が成功した場合、戻り値は 0 以外の値になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

ReturnBuffer が NULLReturnBufferSize が 0 の場合、この関数は、指定されたデータを保持するために必要なバッファー サイズを RequiredSize が指す変数に格納します。 この関数が成功した場合、戻り値は 0 以外の値になります。 それ以外の場合、戻り値は 0 で、 GetLastError を呼び出すことで拡張エラー情報を取得できます。

関数を 1 回呼び出して、必要なバッファー サイズを取得し、必要なメモリを割り当ててから、もう一度関数を呼び出してデータを取得できます。 この手法を使用すると、バッファー サイズが不十分なため、エラーを回避できます。

INF 文字列セクションで指定された 1 つの文字列の最大長は、終端 の NULL を含めて 512 文字であることに注意してください。 文字列の長さが 512 を超える場合は、切り捨てられ、エラーは返されません。 1 つ以上の %strkey% トークンから作成された連結文字列の最大長は 4096 文字です。

注意

setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupGetStringField を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー setupapi.h
Library Setupapi.lib
[DLL] Setupapi.dll
API セット ext-ms-win-setupapi-inf-l1-1-1 (Windows 10 バージョン 10.0.14393 で導入)

関連項目

関数

概要

SetupGetBinaryField

SetupGetIntField

SetupGetMultiSzField