Поделиться через


Функция 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

Строковый идентификатор безопасности, указывающий учетную запись пользователя, содержащую продукт или исправление. Идентификатор безопасности не проверяется или не разрешается. Неверный идентификатор безопасности может возвращать ERROR_UNKNOWN_PRODUCT или ERROR_UNKNOWN_PATCH. При ссылке на контекст компьютера szUserSID необходимо null и dwContext должен быть MSIINSTALLCONTEXT_MACHINE.

Тип идентификатора безопасности Значение
NULL
NULL обозначает текущего пользователя, вошедшего в систему. При ссылке на текущую учетную запись пользователя szUserSID можно NULL и dwContext можно MSIINSTALLCONTEXT_USERMANAGED или MSIINSTALLCONTEXT_USERUNMANAGED.
идентификатор безопасности пользователя
Перечисление для конкретного пользователя в системе. Примером идентификатора безопасности пользователя является S-1-3-64-2415071341-13580988-3127455600-2561.
s-1-1-0
Специальная строка SID s-1-1-0 (все) указывает перечисление для всех пользователей в системе.
 
Примечание Нельзя использовать специальную строку SID s-1-5-18 (system) для перечисления продуктов или исправлений, установленных как на компьютере. При задании значения 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

Индекс извлекаемого источника. Этот параметр должен иметь значение 0 (ноль) для первого вызова функции MsiSourceListEnumMediaDisks, а затем добавится для последующих вызовов, пока функция не возвращает ERROR_NO_MORE_ITEMS.

[out, optional] pdwDiskId

При входе в MsiSourceListEnumMediaDisks этот параметр предоставляет указатель на DWORD для получения идентификатора перечисляемого диска. Этот параметр является необязательным.

[out, optional] szVolumeLabel

Выходной буфер, получающий метку тома перечисленного диска. Этот буфер должен быть достаточно большим, чтобы содержать информацию. Если буфер слишком мал, функция возвращает ERROR_MORE_DATA и задает *pcchVolumeLabel к числу TCHAR в значении, не включая символ NULL.

Если szVolumeLabel и pcchVolumeLabel имеют значение NULL, функция возвращает ERROR_SUCCESS, если значение существует, не извлекая значение.

[in, out, optional] pcchVolumeLabel

Указатель на переменную, указывающую количество TCHAR в буфере szVolumeLabel. Когда функция возвращается, этот параметр является числом TCHAR в полученном значении, не включая завершающий символ NULL.

Этот параметр можно задать NULL только в том случае, если szVolumeLabel также NULL, в противном случае функция возвращает ERROR_INVALID_PARAMETER.

[out, optional] szDiskPrompt

Выходной буфер, получающий запрос диска перечисленного диска. Этот буфер должен быть достаточно большим, чтобы содержать информацию. Если буфер слишком мал, функция возвращает ERROR_MORE_DATA и задает *pcchDiskPrompt к числу TCHAR в значении, не включая завершающий символ NULL.

Если szDiskPrompt имеет значение NULL и pcchDiskPrompt задан допустимый указатель, функция возвращает ERROR_SUCCESS и задает *pcchDiskPrompt число TCHAR в значении, не включая символ NULL. Затем функцию можно вызвать еще раз, чтобы получить значение, с szDiskPrompt буфер достаточно большой, чтобы содержать *pcchDiskPrompt + 1 символов.

Если szDiskPrompt и pcchDiskPrompt задано значение null NULL, функция возвращает ERROR_SUCCESS, если значение существует, без получения значения.

[in, out, optional] pcchDiskPrompt

Указатель на переменную, указывающую количество TCHAR в буфере szDiskPrompt. При возврате функции этот параметр имеет размер запрошенного значения, копирует ли функция значение в указанный буфер. Размер возвращается в виде числа TCHAR в запрошенном значении, не включая завершающийся символ NULL.

Этот параметр можно задать NULL только в том случае, если szDiskPrompt также 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 для перечисления всех источников для одного экземпляра продукта каждый вызов должен выполняться из одного потока.

Администратор может перечислять неуправляемые и управляемые установки для каждого пользователя, установки на компьютеры и управляемые установки для каждого пользователя. Администратор не может перечислять неуправляемые установки для других пользователей. Неадминистрированные пользователи могут перечислять только собственные неуправляемые и управляемые установки и установки на компьютер.

Заметка

Заголовок msi.h определяет MsiSourceListEnumMediaDisks как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows 3.0 или более поздней версии в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, требуемом версией установщика Windows, см. в разделе "Требования к установщику Windows Run-Time".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

контекста установки

не поддерживается в установщике Windows 2.0 и более ранних

ProductCode