次の方法で共有


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する必要があります。

SID の種類 意味
NULL
NULL は、現在ログオンしているユーザーを表します。 現在のユーザー アカウントを参照する場合、szUserSID は NULL でき、dwContext MSIINSTALLCONTEXT_USERMANAGEDまたはMSIINSTALLCONTEXT_USERUNMANAGEDできます。
ユーザー SID の
システム内の特定のユーザーの列挙。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。
s-1-1-0
特殊な SID 文字列 s-1-1-0 (すべてのユーザー) は、システム内のすべてのユーザーの列挙を指定します。
 
特別な SID 文字列 s-1-5-18 (システム) を使用して、コンピューターごとにインストールされている製品またはパッチを列挙することはできません。 SID 値を s-1-5-18 に設定すると、ERROR_INVALID_PARAMETERが返されます。
 

[in] dwContext

このパラメーターは、製品またはパッチ インスタンスのコンテキストを指定します。 このパラメーターには、次のいずれかの値を含めることができます。

コンテキストの種類 意味
MSIINSTALLCONTEXT_USERMANAGED
製品またはパッチ インスタンスは、ユーザーごとのマネージド コンテキストに存在します。
MSIINSTALLCONTEXT_USERUNMANAGED
製品またはパッチ インスタンスは、ユーザーごとのアンマネージド コンテキストに存在します。
MSIINSTALLCONTEXT_MACHINE
製品またはパッチ インスタンスは、マシンごとのコンテキストに存在します。

[in] dwOptions

dwOptions szProductCodeOrPatchCodeの意味 指定する値です。

意味
MSICODE_PRODUCT
szProductCodeOrPatchCode は製品コード GUID です。
MSICODE_PATCH
szProductCodeOrPatchCode はパッチ コード GUID です。

[in] dwIndex

取得するソースのインデックス。 このパラメーターは、MsiSourceListEnumMediaDisks 関数の最初の呼び出しでは 0 (ゼロ) にする必要があります。その後、関数がERROR_NO_MORE_ITEMSを返すまで後続の呼び出しではインクリメントされます。

[out, optional] pdwDiskId

MsiSourceListEnumMediaDisks へのエントリでは、このパラメーターは、列挙されているディスクの ID を受け取る DWORD へのポインターを提供します。 このパラメーターは省略可能です。

[out, optional] szVolumeLabel

列挙されているディスクのボリューム ラベルを受け取る出力バッファー。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数はERROR_MORE_DATAを返し、*pcchVolumeLabel を、終了する NULL 文字を含まない値の TCHAR の数に設定します。

szVolumeLabelpcchVolumeLabel の両方が nullに設定されている場合、値が存在する場合は、値を取得せずにERROR_SUCCESSが返されます。

[in, out, optional] pcchVolumeLabel

szVolumeLabel バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るときに、このパラメーターは、受信した値に TCHAR の数であり、終端の null 文字は含まれません。

このパラメーターは、szVolumeLabel も NULL場合にのみ、NULL を に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。

[out, optional] szDiskPrompt

列挙されているディスクのディスク プロンプトを受信する出力バッファー。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数はERROR_MORE_DATAを返し、*pcchDiskPrompt を、終了する NULL 文字を含まない値の TCHAR の数に設定します。

szDiskPrompt が null に設定され、pcchDiskPrompt が有効なポインターに設定 場合、関数はERROR_SUCCESSを返し、*pcchDiskPrompt を、終了 NULL 文字を含まない値の TCHAR の数に設定します。 その後、この関数を再度呼び出して値を取得できます。szDiskPrompt バッファーは、 *pcchDiskPrompt + 1 文字を含むのに十分な大きさです。

szDiskPromptpcchDiskPrompt の両方が nullに設定されている場合、値が存在する場合は、値を取得せずにERROR_SUCCESSを返します。

[in, out, optional] pcchDiskPrompt

szDiskPrompt バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るときに、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値 TCHAR の数として返されます。終端の null 文字は含まれません。

このパラメーターは、szDiskPrompt も NULL場合にのみ、NULL を に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。

戻り値

MsiSourceListEnumMediaDisks 関数は、次の値を返します。

価値 意味
ERROR_ACCESS_DENIED
ユーザーは、指定されたメディア ソースまたは指定された製品またはパッチを読み取る機能を持っていません。 これは、メディア ソース、製品、またはパッチが見つかったかどうかを示すものではありません。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されます。
ERROR_NO_MORE_ITEMS
この製品またはパッチに登録されているディスクはこれ以上ありません。
ERROR_SUCCESS
値は正常に列挙されます。
ERROR_UNKNOWN_PATCH
パッチが見つかりません。
ERROR_UNKNOWN_PRODUCT
製品が見つかりません。
ERROR_MORE_DATA
指定されたバッファーが小さすぎて、要求された情報を格納できません。
ERROR_FUNCTION_FAILED
予期しない内部エラー。

備考

MsiSourceListEnumMediaDisks を複数回呼び出して 1 つの製品インスタンスのすべてのソースを列挙する場合、各呼び出しは同じスレッドから行う必要があります。

管理者は、ユーザーごとのアンマネージド インストールとマネージド インストールを列挙できます。このインストール自体、マシンごとのインストール、およびユーザーごとのマネージド インストールは、任意のユーザーに対して行うことができます。 管理者は、他のユーザーのユーザーごとのアンマネージド インストールを列挙できません。 管理者以外は、ユーザーごとのアンマネージド インストールとマネージド インストールとマシンごとのインストールのみを列挙できます。

手記

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 インストーラーの Run-Time 要件を参照してください。
ターゲット プラットフォーム の ウィンドウズ
ヘッダー msi.h
ライブラリ Msi.lib
DLL Msi.dll

関連項目

インストール コンテキストの

Windows インストーラー 2.0 以前の ではサポートされていません

ProductCode を する