次の方法で共有


SetupGetInfDriverStoreLocationA 関数 (setupapi.h)

SetupGetInfDriverStoreLocation 関数は、システム INF ファイル ディレクトリ内の指定された INF ファイルまたはドライバー ストア内の指定された INF ファイルに対応する、ドライバー ストアに INF ファイルの完全修飾ファイル名 (ディレクトリ パスとファイル名) を取得します。

構文

WINSETUPAPI BOOL SetupGetInfDriverStoreLocationA(
  [in]            PCSTR                FileName,
  [in, optional]  PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
  [in, optional]  PCSTR                LocaleName,
  [out]           PSTR                 ReturnBuffer,
  [in]            DWORD                ReturnBufferSize,
  [out, optional] PDWORD               RequiredSize
);

パラメーター

[in] FileName

システム INF ファイル ディレクトリ内の INF ファイルの名前と、必要に応じて完全なディレクトリ パスを含む NULL で終わる文字列へのポインター。 または、このパラメーターは、ドライバー ストア内の INF ファイルの完全修飾ファイル名 (ディレクトリ パスとファイル名) を含む NULL で終わる文字列へのポインターです。

INF ファイルを指定する方法の詳細については、次の 解説 セクションを参照してください。

[in, optional] AlternatePlatformInfo

システム用に予約されています。

[in, optional] LocaleName

システム用に予約されています。

[out] ReturnBuffer

指定した INF ファイルの完全修飾ファイル名を含む NULL で終わる文字列を関数が返すバッファーへのポインター。 このパラメーターは、NULL設定できます。 サポートされているパスの最大サイズはMAX_PATH。 バッファーの必要なサイズを決定する方法については、次の 解説 セクションを参照してください。

[in] ReturnBufferSize

ReturnBufferによって提供されるバッファーのサイズ (文字数)。

[out, optional] RequiredSize

ReturnBuffer バッファーのサイズを文字単位で受け取る DWORD 型の変数へのポインター。 このパラメーターは省略可能であり、NULL設定できます。

戻り値

SetupGetInfDriverStoreLocation 成功した場合、関数は TRUE返します。それ以外の場合、関数は FALSE返します。 拡張エラー情報を取得するには、GetLastError呼び出します。

null ターミネータを含む、要求された INF ファイルの完全修飾ファイル名のサイズが ReturnBufferSizeより大きい場合、関数は失敗し、GetLastError の呼び出しはERROR_INSUFFICIENT_BUFFERを返します。

備考

ドライバー ストアに指定された INF ファイルの完全修飾ファイル名を格納するために必要な戻りバッファーのサイズを確認するには、SetupGetInfDriverStoreLocation 呼び出し、ReturnBuffer NULLを し、ReturnBufferSize を 0 に し、RequiredSize指定します。 SetupGetInfDriverStoreLocation は、RequiredSizeで必要なバッファー サイズ 返します。

デバイス のインストールでは、ドライバー ストアに ドライバー パッケージがプレインストールされると、ドライバー パッケージ INF ファイルの 2 つのコピーが作成されます。 デバイスのインストールでは、システム INF ディレクトリに 1 つのコピーをインストールし、その INF ファイルのコピーに、OEMnnn.inf形式の一意の 発行済みファイル名 を割り当てます。 デバイスのインストールでは、ドライバー ストアに INF ファイルの 2 番目のコピーをインストールし、元の INF ファイル名をコピーする割り当てます。

SetupGetInfDriverStoreLocation は、ドライバー ストア内の INF ファイルの完全修飾ファイル名を返します。INF ファイルがある場合は、FileNameによって提供されます。 Filename では、システム INF ディレクトリ内の INF ファイルのファイル名と、必要に応じてディレクトリ パスを指定する必要があります。 または、ファイル名 ドライバー ストア内の INF ファイルの完全修飾ファイル名を指定する必要があります。

たとえば、ドライバー パッケージの INF ファイルが Myinf.infされ、このドライバー パッケージの場合は であるとします。 デバイスのインストールでは、システム INF ディレクトリ C:\Windows\inf に OEM1.inf INF ファイルがインストールされます。 さらに、デバイスのインストールでは、ドライバー ストアに対応する INF ファイル コピー C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf がインストールされていることを前提としています。 この場合、この関数は C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.infFileName が次のいずれかの文字列を提供する場合に返します OEM1.inf,C:\Windows\inf\OEM1.inf, または C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf.

クラス インストーラー共同インストーラー は、SetupGetInfDriverStoreLocation を使用して、ドライバー ストアにプレインストールされている ドライバー パッケージ 内のファイルにアクセスできます。 ドライバー ストア内のドライバー パッケージのパスを確認するために、インストーラーは次の処理を行います。

  1. SetupDiGetDriverInfoDetail 呼び出して、ドライバーの SP_DRVINFO_DETAIL_DATA 構造を取得します。 この構造体の InfFileName メンバーには、システム INF ディレクトリ内のドライバー INF ファイルの完全修飾ファイル名が含まれています。
  2. SetupGetInfDriverStoreLocation 呼び出し、SetupDiGetDriverInfoDetail呼び出すことによって取得されたドライバー INF ファイルの完全修飾ファイル名を指定します。 SetupGetInfDriverStoreLocation は、ドライバー ストア内のドライバー INF ファイルの完全修飾ファイル名を返します。 INF ファイルの完全修飾ファイル名のディレクトリ パス部分は、ドライバー パッケージ ファイルのパスです。
SetupGetInfDriverStoreLocation では、FileNameで指定された INF ファイルの内容 処理されません。 この関数を使用して、ドライバー ストア内の INF ファイルのコンテンツ固有の検索を実行することはできません。
 
SetupGetInfPublishedName 関数を呼び出して、システム INF ファイル ディレクトリ内の指定された INF ファイルまたはドライバー ストア内の指定されたファイルに対応するシステム INF ファイル ディレクトリに INF ファイルの完全修飾ファイル名を取得します。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム の デスクトップ
ヘッダー setupapi.h (Setupapi.h を含む)
ライブラリ Setupapi.lib

関連項目

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail の

SetupGetInfPublishedName