MsiSourceListEnumMediaDisksA 関数 (msi.h)
MsiSourceListEnumMediaDisks 関数は、パッチまたは製品のメディア ソースに登録されているディスクの一覧を列挙します。
構文
UINT MsiSourceListEnumMediaDisksA(
[in] LPCSTR szProductCodeOrPatchCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD dwOptions,
[in] DWORD dwIndex,
[out, optional] LPDWORD pdwDiskId,
[out, optional] LPSTR szVolumeLabel,
[in, out, optional] LPDWORD pcchVolumeLabel,
[out, optional] LPSTR szDiskPrompt,
[in, out, optional] LPDWORD pcchDiskPrompt
);
パラメーター
[in] szProductCodeOrPatchCode
製品またはパッチの ProductCode またはパッチ GUID。 null で終わる文字列を使用します。 文字列が 39 文字を超える場合、関数は失敗し、ERROR_INVALID_PARAMETERを返します。 このパラメーターを NULL にすることはできません。
[in, optional] szUserSid
製品またはパッチを含むユーザー アカウントを指定する文字列 SID。 SID は検証も解決もされません。 SID が正しくないと、ERROR_UNKNOWN_PRODUCTまたはERROR_UNKNOWN_PATCHが返される可能性があります。 マシン コンテキストを参照する場合、 szUserSID は NULL で、 dwContext はMSIINSTALLCONTEXT_MACHINEする必要があります。
[in] dwContext
このパラメーターは、製品またはパッチ インスタンスのコンテキストを指定します。 このパラメーターには、次のいずれかの値を含めることができます。
[in] dwOptions
szProductCodeOrPatchCode の意味を指定する dwOptions 値。
フラグ | 説明 |
---|---|
|
szProductCodeOrPatchCode は製品コード GUID です。 |
|
szProductCodeOrPatchCode はパッチ コード GUID です。 |
[in] dwIndex
取得するソースのインデックス。 このパラメーターは、 MsiSourceListEnumMediaDisks 関数の最初の呼び出しでは 0 (ゼロ) にする必要があり、その後の呼び出しでは関数がERROR_NO_MORE_ITEMSを返すまでインクリメントする必要があります。
[out, optional] pdwDiskId
MsiSourceListEnumMediaDisks へのエントリでは、このパラメーターは、列挙されているディスクの ID を受け取る DWORD へのポインターを提供します。 このパラメーターは省略可能です。
[out, optional] szVolumeLabel
列挙されているディスクのボリューム ラベルを受け取る出力バッファー。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATAを返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchVolumeLabel を設定します。
szVolumeLabel と pcchVolumeLabel の両方が NULL に設定されている場合、値が存在する場合、関数は値を取得せずにERROR_SUCCESSを返します。
[in, out, optional] pcchVolumeLabel
szVolumeLabel バッファー内の TCHAR の数を指定する変数へのポインター。 関数から戻るときに、このパラメーターは、受信した値の TCHAR の数であり、終端の null 文字は含まれません。
このパラメーターは、szVolumeLabel も NULL の場合にのみ NULL に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。
[out, optional] szDiskPrompt
列挙されているディスクのディスク プロンプトを受信する出力バッファー。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATAを返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchDiskPrompt を設定します。
szDiskPrompt が NULL に設定され、pcchDiskPrompt が有効なポインターに設定されている場合、関数は ERROR_SUCCESSを返し、*pcchDiskPrompt を終端の NULL 文字を含まない値の TCHAR の数に設定します。 関数を再度呼び出して値を取得し、 *pcchDiskPrompt + 1 文字を格納するのに十分な大きさの szDiskPrompt バッファーを使用できます。
szDiskPrompt と pcchDiskPrompt の両方が NULL に設定されている場合、値が存在する場合は、値を取得せずにERROR_SUCCESSを返します。
[in, out, optional] pcchDiskPrompt
szDiskPrompt バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るときに、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。
このパラメーターは、szDiskPrompt も NULL の場合にのみ NULL に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。
戻り値
MsiSourceListEnumMediaDisks 関数は、次の値を返します。
値 | 意味 |
---|---|
|
ユーザーは、指定されたメディア ソースまたは指定された製品またはパッチを読み取る機能を持っていません。 これは、メディア ソース、製品、またはパッチが見つかったかどうかを示すものではありません。 |
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されます。 |
|
この製品またはパッチに登録されているディスクはこれ以上ありません。 |
|
値が正常に列挙されました。 |
|
パッチが見つかりません。 |
|
製品が見つかりません。 |
|
指定されたバッファーが小さすぎて、要求された情報を格納できません。 |
|
予期しない内部エラー。 |
注釈
1 つの製品インスタンスのすべてのソースを列挙するために MsiSourceListEnumMediaDisks に対して複数の呼び出しを行う場合、各呼び出しは同じスレッドから行う必要があります。
管理者は、すべてのユーザーのユーザーごとのアンマネージド インストールとマネージド インストール、マシンごとのインストール、およびユーザーごとのマネージド インストールを列挙できます。 管理者は、他のユーザーのユーザーごとのアンマネージド インストールを列挙できません。 管理者以外は、ユーザーごとのアンマネージド インストールとマネージド インストールとマシンごとのインストールのみを列挙できます。
注意
msi.h ヘッダーは、MSISourceListEnumMediaDisks をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP 上では Windows インストーラー 3.0 以降。 Windows インストーラーのバージョンに必要な最小の Windows Service Pack については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |