MountNtmsMedia 함수(ntmsapi.h)
[Windows 7 및 Windows Server 2008 R2를 기준으로 이동식 스토리지 관리자 를 더 이상 사용할 수 없습니다.]
MountNtmsMedia 함수는 하나 이상의 미디어를 동기적으로 탑재합니다.
구문
DWORD MountNtmsMedia(
[in] HANDLE hSession,
[in] LPNTMS_GUID lpMediaId,
[in, out] LPNTMS_GUID lpDriveId,
[in] DWORD dwCount,
[in] DWORD dwOptions,
[in] int dwPriority,
[in] DWORD dwTimeout,
LPNTMS_MOUNT_INFORMATION lpMountInformation
);
매개 변수
[in] hSession
OpenNtmsSession 함수에서 반환된 세션에 대한 핸들입니다.
[in] lpMediaId
논리 미디어 또는 측면의 고유 식별자 배열입니다.
[in, out] lpDriveId
lpMediaId 매개 변수의 미디어 목록에 해당하는 드라이브 식별자의 배열입니다. 이 배열은 미디어를 탑재할 드라이브 목록을 지정하거나 작업이 완료될 때 미디어가 탑재된 드라이브 목록을 받습니다. 아래 NTMS_MOUNT_SPECIFIC_DRIVE 값을 참조하세요. 탑재가 완료되기 전에 MountNtmsMedia 함수의 시간이 초과되면 RSM은 드라이브 목록을 반환하지 않습니다.
[in] dwCount
lpMediaId 및 lpDriveId 매개 변수에 전달된 미디어 식별자 및 드라이브 식별자 수입니다. lpMediaId 및 lpDriveId는 길이가 같은 배열의 첫 번째 요소를 가리킵니다.
[in] dwOptions
옵션입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
[in] dwPriority
드라이브에 대한 액세스를 허용하기 위해 RSM에서 사용하는 탑재의 우선 순위입니다. 우선 순위 범위는 -15에서 15까지이며 15는 가장 높은 우선 순위이고 0은 기본값입니다. 이 매개 변수는 다음 상수 중 하나를 사용할 수도 있습니다. 특수 탑재 우선 순위가 필요하지 않으면 애플리케이션이 NTMS_PRIORITY_NORMAL 전달해야 합니다.
값 | 의미 |
---|---|
|
시간이 중요하지 않은 탑재. |
|
백그라운드 작업으로 수행되는 탑재입니다. |
|
시간이 중요한 탑재. |
|
우선 순위가 가장 낮은 탑재입니다. |
|
우선 순위가 가장 높은 탑재입니다. |
[in] dwTimeout
지정된 미디어를 탑재할 수 있는 최대 시간(밀리초)입니다. 탑재가 완료될 때까지 기다리려면 이 매개 변수를 INFINITE로 설정합니다.
lpMountInformation
이 매개 변수는 예약되어 있으며 NULL이어야 합니다.
반환 값
이 함수는 다음 값 중 하나를 반환합니다.
값 | 의미 |
---|---|
|
미디어 풀 또는 미디어가 포함된 라이브러리에 대한 NTMS_USE_ACCESS 거부되었습니다. 다른 보안 오류도 가능하지만 보안 하위 시스템 오류를 나타냅니다. |
|
미디어 또는 드라이브가 사용 중입니다. |
|
CloseNtmsSession 함수에 의해 요청이 취소되었습니다. |
|
데이터베이스에 액세스할 수 없거나 손상되었습니다. |
|
데이터베이스가 가득 찼습니다. |
|
지정된 미디어와 드라이브가 동일한 라이브러리에 없습니다. |
|
지정된 드라이브 중 하나 이상이 잘못되었습니다. |
|
드라이브 또는 미디어를 포함하는 라이브러리가 잘못되었습니다. |
|
지정된 미디어 중 하나 이상이 유효하지 않거나 미디어 목록에 중복된 미디어 ID가 있습니다. |
|
탑재하는 동안 예기치 않은 미디어 또는 디바이스 상태가 발생했습니다. |
|
미디어가 오프라인 상태이며 탑재할 수 없습니다. |
|
처리하는 동안 메모리 할당 오류가 발생했습니다. |
|
사용자가 사용자 인터페이스를 통해 요청을 취소했습니다. |
|
탑재를 수행하는 데 필요한 하나 이상의 리소스가 사용하지 않도록 설정됩니다. |
|
미디어가 탑재되었으며 사용할 준비가 되었습니다. |
|
하나 이상의 필수 리소스를 획득하는 동안 시간 제한 이벤트가 만료되었습니다. 탑재 요청이 취소되었습니다. |
|
미디어 상태가 Completed로 설정되고 NTMS_MOUNT_WRITE 값이 지정되었습니다. |
설명
MountNtmsMedia 함수는 지정된 미디어를 탑재하기 위한 요청을 큐에 대기한 다음 탑재가 완료되거나 오류가 검색될 때까지 dwTimeout 매개 변수에 지정된 시간(밀리초)을 기다립니다. dwTimeout이 만료되기 전에 RSM이 탑재 작업을 완료할 수 없는 경우 NTMS는 요청을 취소하고 오류를 반환합니다. 지정된 미디어가 오프라인 라이브러리에 있는 경우 애플리케이션이 장기간 차단될 수 있습니다. GetNtmsObjectInformation 함수를 사용하여 지정된 매체의 현재 위치를 확인할 수 있습니다. 미디어가 오프라인 상태일 때 연산자 요청 대신 NTMS_MOUNT_ERROR_OFFLINE 값을 사용하여 즉각적인 오류를 생성할 수도 있습니다.
지정된 매체를 사용 중이거나 드라이브를 사용할 수 없는 경우 프로세스는 제한 시간 값까지 차단하고 ERROR_BUSY 반환합니다. NTMS_MOUNT_ERROR_NOT_AVAILABLE 값을 지정하면 리소스(미디어 또는 드라이브)를 사용할 수 없는 경우 함수는 즉각적인 오류를 반환합니다.
INFINITE의 제한 시간 값을 사용하여 시간 초과 없이 함수를 대기할 수 있습니다. 0이 아닌 시간 제한 값이 dwTimeout 매개 변수에 지정되면 RSM은 lpMediaId 에 지정된 모든 미디어가 탑재될 때까지 기다립니다. 모든 미디어가 탑재되기 전에 지정된 시간이 경과하면 MountNtmsMedia 함수는 오류를 반환하고 요청을 취소합니다. 애플리케이션은 반환된 상태 검사하고 원하는 경우 요청을 다시 제출할 수 있습니다.
탑재할 여러 미디어를 단일 호출로 지정하면 지정된 모든 미디어가 단일 라이브러리에 있어야 합니다. 지정된 미디어 중 하나라도 오프라인 상태이면 모든 미디어가 온라인 상태가 될 때까지 미디어가 탑재되지 않습니다.
탑재가 완료되면 드라이브 상태(예: 수정 또는 변수 모드)가 정의되지 않습니다. 애플리케이션은 드라이브를 설정해야 합니다.
CloseNtmsSession 함수를 사용하여 보류 중인 탑재를 취소할 수 있습니다. 기본 동작은 다음과 같습니다.
- 지정된 매체가 오프라인인 경우 RSM은 미디어를 탑재하기 위한 운영자 요청을 게시하고 MountNtmsMedia 함수는 dwTimeout 매개 변수에 지정된 기간 동안 대기합니다.
- 지정된 매체가 온라인 상태이면 RSM에서 탑재를 요청합니다.
- 드라이브 또는 미디어를 사용할 수 없는 경우 RSM은 요청을 보내고 MountNtmsMedia 함수는 dwTimeout 매개 변수에 지정된 기간 동안 대기합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ntmsapi.h |
라이브러리 | Ntmsapi.lib |
DLL | Ntmsapi.dll |