SetupCopyOEMInfA 関数 (setupapi.h)
[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 以降のバージョンでは、変更または使用できない場合があります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、デバイス ドライバーのインストールに引き続き使用されます。
SetupCopyOEMInf 関数は、指定した .inf ファイルを %windir%/Inf ディレクトリにコピーします。
この関数の呼び出し元には管理者特権が必要です。それ以外の場合、関数は失敗します。
構文
WINSETUPAPI BOOL SetupCopyOEMInfA(
[in] PCSTR SourceInfFileName,
[in] PCSTR OEMSourceMediaLocation,
[in] DWORD OEMSourceMediaType,
[in] DWORD CopyStyle,
[out, optional] PSTR DestinationInfFileName,
[in] DWORD DestinationInfFileNameSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSTR *DestinationInfFileNameComponent
);
パラメーター
[in] SourceInfFileName
ソース .inf ファイルへの完全パス。 null で終わる文字列を使用する必要があります。 このパスは、終了 NULLを含め、サイズ MAX_PATH を超えないようにする必要があります。
[in] OEMSourceMediaLocation
プリコンパイル済みの .inf (.pnf) に格納されるソースの場所情報。 この場所の情報は、指定されたソース メディアの種類に固有です。 null で終わる文字列を使用する必要があります。 このパスは、終了 NULLを含め、サイズ MAX_PATH を超えないようにする必要があります。
[in] OEMSourceMediaType
場所情報によって参照されるソース メディアの種類。 このパラメーターには、次のいずれかの値を指定できます。
[in] CopyStyle
.inf ファイルを .inf ディレクトリにコピーする方法を指定します。 次のフラグを組み合わせることができます。
[out, optional] DestinationInfFileName
Inf ディレクトリにコピーされた時点で割り当てられた .inf ファイル名を受け取るバッファーへのポインター。 バッファーが指定されている場合、通常は長さが MAX_PATH されます。 SP_COPY_NOOVERWRITE フラグが指定されていて、SetupCopyOEMInf 関数がERROR_FILE_EXISTSのリターン コードで失敗した場合、このバッファーには既存の .inf ファイルの名前が含まれます。 SP_COPY_OEMINF_CATALOG_ONLY フラグが指定されている場合、.inf ファイルが Inf ディレクトリに既に存在する場合、このバッファーにはコピー先の .inf ファイル名が含まれます。 それ以外の場合、このバッファーは空の文字列に設定されます。 このパラメーターは NULL
[in] DestinationInfFileNameSize
DestinationInfFileName バッファーのサイズ (文字数)、バッファーが指定されていない場合は 0。 DestinationInfFileName
[out, optional] RequiredSize
終了 NULLを含む、コピー先の .inf ファイル名を格納するために必要なサイズ (文字数) を受け取る変数へのポインター。 SP_COPY_OEMINF_CATALOG_ONLY フラグを指定すると、.inf ファイルが Inf ディレクトリに既に存在する場合にのみ、この変数は文字列の長さを受け取ります。 それ以外の場合、この変数は 0 に設定されます。 このパラメーターは NULL
[out, optional] DestinationInfFileNameComponent
DestinationInfFileName パラメーターに格納されているパスのファイル名コンポーネントの先頭を指すように、正常に戻った時点 (またはERROR_FILE_EXISTS) に設定された文字列へのポインター。 SP_COPY_OEMINF_CATALOG_ONLY フラグが指定されている場合、DestinationInfFileName パラメーターは空の文字列である可能性があります。 この場合、文字ポインターは、正常に戻ると NULL
戻り値
この関数は WINSETUPAPI BOOL を返します。
備考
SetupCopyOEMInf 関数は、指定した .inf ファイルを %windir%\Inf ディレクトリにコピーします。
SetupCopyOEMInf は、指定した .inf ファイルのバイナリ イメージが、同じ名前またはフォーム OEM*.inf の名前を持つ Inf ディレクトリに既に存在する場合、ファイルを再コピーしません。 SetupCopyOEMInf
SetupCopyOEMInf では、次の手順を使用して、.inf ファイルが Inf ディレクトリに既に存在するかどうかを判断します。
OEM*.inf 形式の名前を持つすべての .inf ファイルが列挙され、指定した .inf ファイルと同じファイル サイズのファイルはバイナリと比較されます。
Inf ディレクトリは、.inf ファイルのソース ファイル名を検索します。 同じ名前の .inf ファイルが存在し、指定した .inf ファイルと同じサイズの場合、2 つのファイルはバイナリであり、同じかどうかを判断します。
指定した .inf ファイルが既に存在する場合は、指定した .inf ファイルの [Version] セクションに CatalogFile= エントリが含まれているかどうかを判断するために、さらにチェックが実行されます。 その場合は、.inf ファイルの %windir%\Inf プライマリ ファイル名と拡張子が ".cat" が使用され、カタログが既にインストールされているかどうかを判断します。 カタログがインストールされていても、ソース .inf に関連付けられているカタログと同じでない場合、これは一致とは見なされず、列挙が続行されます。 \Inf ディレクトリに含まれる一意のカタログを持つ複数の同一の .inf ファイル %windir%できます。 既存の一致が見つからない場合、.inf ファイルと .cat ファイルは新しい一意の名前でインストールされます。
CatalogFile= エントリを指定しない OEM .inf ファイルは、デジタル署名の検証に関して無効と見なされます。
.inf ファイルを %windir%\Inf ディレクトリにコピーする必要がある場合は、デジタル署名検証エラーが報告されます。
.inf ファイルと .cat ファイルが既に存在する場合は、これらの既存のファイル名が使用され、ファイルの置換動作は指定された CopyStyle フラグに基づいています。 置換動作は、.pnf に格納されているソース メディア情報のみを参照します。 既存の .inf、.pnf、.cat ファイルは変更されません。
手記
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupCopyOEMInf を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | setupapi.h |
ライブラリ | Setupapi.lib |
DLL | Setupapi.dll |
API セットの | ext-ms-win-setupapi-classinstallers-l1-1-2 (Windows 10 バージョン 10.0.14393 で導入) |