SetupGetInfDriverStoreLocationW 関数 (setupapi.h)

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

構文

WINSETUPAPI BOOL SetupGetInfDriverStoreLocationW(
  [in]            PCWSTR               FileName,
  [in, optional]  PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
  [in, optional]  PCWSTR               LocaleName,
  [out]           PWSTR                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 を呼び出し、 ReturnBufferNULL に設定し、 ReturnBufferSize を 0 に設定し、 RequiredSize を指定します。 SetupGetInfDriverStoreLocation、RequiredSize で必要なバッファー サイズを返します。

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

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

たとえば、ドライバー パッケージの INF ファイルが Myinf.inf であり、このドライバー パッケージの場合、デバイスのインストールによってシステム INF ディレクトリ C:\Windows\inf に INF ファイル OEM1.inf がインストールされるとします。さらに、デバイスのインストールでは、対応する INF ファイル コピー C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.inf がドライバー ストアにインストールされているとします。 この場合、FileNameOEM1.inf、C:\Windows\inf\OEM1.inf、C:\windows\system32\driverstore\filerepository\myinf_12345678\myinf.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 ヘッダーでは、SetupGetInfDriverStoreLocation をエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib

こちらもご覧ください

SP_ALTPLATFORM_INFO

SP_DRVINFO_DETAIL_DATA

SetupDiGetDriverInfoDetail

SetupGetInfPublishedName