Fungsi MsiSourceListEnumMediaDisksA (msi.h)

Fungsi MsiSourceListEnumMediaDisks menghitung daftar disk yang terdaftar untuk sumber media untuk patch atau produk.

Sintaks

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
);

Parameter

[in] szProductCodeOrPatchCode

ProductCode atau patch GUID produk atau patch. Gunakan string yang dihentikan null. Jika string lebih panjang dari 39 karakter, fungsi gagal dan mengembalikan ERROR_INVALID_PARAMETER. Parameter ini tidak boleh NULL.

[in, optional] szUserSid

String SID yang menentukan akun pengguna yang berisi produk atau patch. SID tidak divalidasi atau diselesaikan. SID yang salah dapat mengembalikan ERROR_UNKNOWN_PRODUCT atau ERROR_UNKNOWN_PATCH. Saat mereferensikan konteks komputer, szUserSID harus NULL dan dwContext harus MSIINSTALLCONTEXT_MACHINE.

Jenis SID Makna
NULL
NULL menunjukkan pengguna yang saat ini masuk. Saat mereferensikan akun pengguna saat ini, szUserSID dapat berupa NULL dan dwContext dapat MSIINSTALLCONTEXT_USERMANAGED atau MSIINSTALLCONTEXT_USERUNMANAGED.
Pengidentifikasi keamanan pengguna
Enumerasi untuk pengguna tertentu dalam sistem. Contoh SID pengguna adalah "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
String SID khusus s-1-1-0 (semua orang) menentukan enumerasi di semua pengguna dalam sistem.
 
Catatan String SID khusus s-1-5-18 (sistem) tidak dapat digunakan untuk menghitung produk atau patch yang diinstal sebagai per komputer. Mengatur nilai SID ke s-1-5-18 mengembalikan ERROR_INVALID_PARAMETER.
 

[in] dwContext

Parameter ini menentukan konteks produk atau instans patch. Parameter ini dapat berisi salah satu nilai berikut.

Jenis konteks Makna
MSIINSTALLCONTEXT_USERMANAGED
Instans produk atau patch ada dalam konteks yang dikelola per pengguna.
MSIINSTALLCONTEXT_USERUNMANAGED
Instans produk atau patch ada dalam konteks per pengguna yang tidak dikelola.
MSIINSTALLCONTEXT_MACHINE
Instans produk atau patch ada dalam konteks per komputer.

[in] dwOptions

Nilai dwOptions yang menentukan arti szProductCodeOrPatchCode.

Bendera Makna
MSICODE_PRODUCT
szProductCodeOrPatchCode adalah GUID kode produk.
MSICODE_PATCH
szProductCodeOrPatchCode adalah GUID kode patch.

[in] dwIndex

Indeks sumber yang akan diambil. Parameter ini harus 0 (nol) untuk panggilan pertama ke fungsi MsiSourceListEnumMediaDisks , lalu dinaikkan untuk panggilan berikutnya hingga fungsi kembali ERROR_NO_MORE_ITEMS.

[out, optional] pdwDiskId

Pada entri ke MsiSourceListEnumMediaDisks , parameter ini menyediakan penunjuk ke DWORD untuk menerima ID disk yang sedang dijumlahkan. Parameter ini bersifat opsional.

[out, optional] szVolumeLabel

Buffer output yang menerima label volume disk yang sedang dijumlahkan. Buffer ini harus cukup besar untuk memuat informasi. Jika buffer terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA dan mengatur *pcchVolumeLabel ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri.

Jika szVolumeLabel dan pcchVolumeLabel keduanya diatur ke NULL, fungsi mengembalikan ERROR_SUCCESS jika nilai ada, tanpa mengambil nilai.

[in, out, optional] pcchVolumeLabel

Penunjuk ke variabel yang menentukan jumlah TCHAR dalam buffer szVolumeLabel . Ketika fungsi kembali, parameter ini adalah jumlah TCHAR dalam nilai yang diterima, tidak termasuk karakter null yang mengakhiri.

Parameter ini dapat diatur ke NULL hanya jika szVolumeLabel juga NULL, jika tidak, fungsi akan mengembalikan ERROR_INVALID_PARAMETER.

[out, optional] szDiskPrompt

Buffer output yang menerima prompt disk disk yang sedang dijumlahkan. Buffer ini harus cukup besar untuk memuat informasi. Jika buffer terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA dan mengatur *pcchDiskPrompt ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri.

Jika szDiskPrompt diatur ke NULL dan pcchDiskPrompt diatur ke penunjuk yang valid, fungsi mengembalikan ERROR_SUCCESS dan mengatur *pcchDiskPrompt ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri. Fungsi kemudian dapat dipanggil lagi untuk mengambil nilai, dengan buffer szDiskPrompt cukup besar untuk berisi *pcchDiskPrompt + 1 karakter.

Jika szDiskPrompt dan pcchDiskPrompt keduanya diatur ke NULL, fungsi mengembalikan ERROR_SUCCESS jika nilai ada, tanpa mengambil nilai.

[in, out, optional] pcchDiskPrompt

Penunjuk ke variabel yang menentukan jumlah TCHAR dalam buffer szDiskPrompt . Ketika fungsi kembali, parameter ini diatur ke ukuran nilai yang diminta apakah fungsi menyalin nilai ke dalam buffer yang ditentukan atau tidak. Ukuran dikembalikan sebagai jumlah TCHAR dalam nilai yang diminta, tidak termasuk karakter null yang mengakhiri.

Parameter ini dapat diatur ke NULL hanya jika szDiskPrompt juga NULL, jika tidak, fungsi mengembalikan ERROR_INVALID_PARAMETER.

Nilai kembali

Fungsi MsiSourceListEnumMediaDisks mengembalikan nilai berikut.

Nilai Makna
ERROR_ACCESS_DENIED
Pengguna tidak memiliki kemampuan untuk membaca sumber media yang ditentukan atau produk atau patch yang ditentukan. Ini tidak menunjukkan apakah sumber media, produk, atau patch ditemukan.
ERROR_BAD_CONFIGURATION
Data konfigurasi rusak.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi.
ERROR_NO_MORE_ITEMS
Tidak ada lagi disk yang terdaftar untuk produk atau patch ini.
ERROR_SUCCESS
Nilai berhasil dijumlahkan.
ERROR_UNKNOWN_PATCH
Patch tidak ditemukan.
ERROR_UNKNOWN_PRODUCT
Produk tidak ditemukan.
ERROR_MORE_DATA
Buffer yang disediakan terlalu kecil untuk berisi informasi yang diminta.
ERROR_FUNCTION_FAILED
Kegagalan internal yang tidak terduga.

Keterangan

Saat melakukan beberapa panggilan ke MsiSourceListEnumMediaDisks untuk menghitung semua sumber untuk satu instans produk, setiap panggilan harus dilakukan dari utas yang sama.

Administrator dapat menghitung penginstalan yang tidak dikelola dan dikelola per pengguna untuk penginstalan sendiri, penginstalan per komputer, dan penginstalan terkelola per pengguna untuk pengguna mana pun. Administrator tidak dapat menghitung penginstalan per pengguna yang tidak dikelola untuk pengguna lain. Non-administrator hanya dapat menghitung penginstalan per pengguna mereka sendiri yang tidak terkelola dan terkelola serta penginstalan per komputer.

Catatan

Header msi.h mendefinisikan MsiSourceListEnumMediaDisks sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Windows Installer 4.0 atau Windows Installer 4.5 di Windows Server 2008 atau Windows Vista. Windows Installer 3.0 atau yang lebih baru pada Windows Server 2003 atau Windows XP. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Penginstal Windows.
Target Platform Windows
Header msi.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Konteks Penginstalan

Tidak Didukung di Windows Installer 2.0 dan yang lebih lama

ProductCode