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

Код продукта или 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-1358098788-3127455600-2561".
s-1-1-0
Специальная строка sid s-1-1-0 (все) указывает перечисление для всех пользователей в системе.
 
Примечание Специальная строка идентификатора безопасности s-1-5-18 (система) не может использоваться для перечисления продуктов или исправлений, установленных по каждому компьютеру. При установке значения SID s-1-5-18 возвращается ERROR_INVALID_PARAMETER.
 

[in] dwContext

Этот параметр указывает контекст экземпляра продукта или исправления. Этот параметр может содержать одно из следующих значений.

Тип контекста Значение
MSIINSTALLCONTEXT_USERMANAGED
Экземпляр продукта или исправления существует в контексте, управляемом пользователем.
MSIINSTALLCONTEXT_USERUNMANAGED
Экземпляр продукта или исправления существует в неуправляемом контексте для каждого пользователя.
MSIINSTALLCONTEXT_MACHINE
Экземпляр продукта или исправления существует в контексте для каждого компьютера.

[in] dwOptions

Значение dwOptions , указывающее значение szProductCodeOrPatchCode.

Flag Значение
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, функция возвращает 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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

См. также раздел

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

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

ProductCode