다음을 통해 공유


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 반환할 수 있습니다. 컴퓨터 컨텍스트를 참조할 때 szUserSIDNULL 이어야 하며 dwContext 는 MSIINSTALLCONTEXT_MACHINE 합니다.

SID 유형 의미
NULL
NULL은 현재 로그온한 사용자를 표시합니다. 현재 사용자 계정을 참조할 때 szUserSIDNULL 일 수 있고 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

이 매개 변수는 제품 또는 패치 instance 컨텍스트를 지정합니다. 이 매개 변수는 다음 값 중 하나를 포함할 수 있습니다.

컨텍스트 유형 의미
MSIINSTALLCONTEXT_USERMANAGED
제품 또는 패치 instance 사용자별 관리형 컨텍스트에 있습니다.
MSIINSTALLCONTEXT_USERUNMANAGED
제품 또는 패치 instance 사용자별 관리되지 않는 컨텍스트에 있습니다.
MSIINSTALLCONTEXT_MACHINE
제품 또는 패치 instance 컴퓨터별 컨텍스트에 있습니다.

[in] dwOptions

szProductCodeOrPatchCode의 의미를 지정하는 dwOptions 값입니다.

플래그 의미
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 수를 지정하는 변수에 대한 포인터입니다. 함수가 반환될 때 이 매개 변수는 종료 null 문자를 포함하지 않고 수신된 값의 TCHAR 수입니다.

이 매개 변수는 szVolumeLabelNULL인 경우에만 NULL로 설정할 수 있으며, 그렇지 않으면 함수가 ERROR_INVALID_PARAMETER 반환합니다.

[out, optional] szDiskPrompt

열거 중인 디스크의 디스크 프롬프트를 수신하는 출력 버퍼입니다. 이 버퍼는 정보를 포함할 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 함수는 ERROR_MORE_DATA 반환하고 *pcchDiskPrompt 를 종료 NULL 문자를 포함하지 않고 값의 TCHAR 수로 설정합니다.

szDiskPromptNULL로 설정되고 pcchDiskPrompt가 유효한 포인터로 설정된 경우 함수는 ERROR_SUCCESS 반환하고 *pcchDiskPrompt를 종료 NULL 문자를 포함하지 않고 값의 TCHAR 수로 설정합니다. 그런 다음 함수를 다시 호출하여 값을 검색할 수 있으며, szDiskPrompt 버퍼는 *pcchDiskPrompt + 1자를 포함할 만큼 충분히 큽니다.

szDiskPromptpcchDiskPrompt가 모두 NULL로 설정된 경우 함수는 값을 검색하지 않고 값이 있는 경우 ERROR_SUCCESS 반환합니다.

[in, out, optional] pcchDiskPrompt

szDiskPrompt 버퍼의 TCHAR 수를 지정하는 변수에 대한 포인터입니다. 함수가 반환될 때 이 매개 변수는 함수가 지정된 버퍼에 값을 복사하는지 여부에 관계없이 요청된 값의 크기로 설정됩니다. 크기는 종료 null 문자를 포함하지 않고 요청된 값의 TCHAR 수로 반환됩니다.

이 매개 변수는 szDiskPromptNULL인 경우에만 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
예기치 않은 내부 오류입니다.

설명

단일 제품 instance 대한 모든 원본을 열거하기 위해 MsiSourceListEnumMediaDisks를 여러 차례 호출하는 경우 각 호출은 동일한 스레드에서 수행되어야 합니다.

관리자는 모든 사용자에 대해 사용자별 관리되지 않는 설치 및 관리되는 설치, 컴퓨터별 설치 및 사용자별 관리 설치를 열거할 수 있습니다. 관리자는 다른 사용자에 대한 사용자별 관리되지 않는 설치를 열거할 수 없습니다. 비관리자는 관리되지 않는 사용자별 및 관리되는 설치 및 컴퓨터별 설치만 열거할 수 있습니다.

참고

msi.h 헤더는 MSiSourceListEnumMediaDisks를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Server 2008 또는 Windows Vista의 Windows Installer 4.0 또는 Windows Installer 4.5. Windows Server 2003 또는 Windows XP의 Windows Installer 3.0 이상. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요.
대상 플랫폼 Windows
헤더 msi.h
라이브러리 Msi.lib
DLL Msi.dll

추가 정보

설치 컨텍스트

Windows Installer 2.0 이하에서 지원되지 않음

ProductCode