IDiscRecorder2::AcquireExclusiveAccess 메서드(imapi2.h)
디바이스에 대한 단독 액세스 권한을 획득합니다.
구문
HRESULT AcquireExclusiveAccess(
[in] VARIANT_BOOL force,
[in] BSTR __MIDL__IDiscRecorder20000
);
매개 변수
[in] force
파일 시스템 볼륨을 분리할 수 있는지 아니면 분리할 수 없는지 여부에 관계없이 볼륨에 대한 단독 액세스 권한을 얻으려면 VARIANT_TRUE 로 설정합니다. VARIANT_FALSE 경우 이 메서드는 볼륨에 탑재된 파일 시스템이 없는 경우에만 단독 액세스 권한을 얻습니다.
[in] __MIDL__IDiscRecorder20000
단독 액세스를 요청하는 클라이언트 애플리케이션의 식별 이름을 포함하는 문자열입니다. NULL 또는 길이가 0인 문자열일 수 없습니다. 문자열은 DDK에 있는 IOCTL_CDROM_EXCLUSIVE_ACCESS 제어 코드에 대한 제한을 준수해야 합니다.
반환 값
S_OK 성공하면 반환되지만 구현의 결과로 다른 성공 코드가 반환될 수 있습니다. 다음 오류 코드는 일반적으로 작업 실패 시 반환되지만 가능한 유일한 오류 값은 나타내지 않습니다.
반환 코드 | 설명 |
---|---|
|
지정되지 않은 오류입니다.
값: 0x80004005 |
|
디바이스는 현재 다른 애플리케이션에서 사용되고 있습니다.
값: 0x80070005 |
|
하나 이상의 인수가 잘못되었습니다.
값: 0x80070057 |
|
필요한 메모리를 할당하지 못했습니다.
값: 0x8007000E |
|
디바이스가 시간 제한 기간 내에 명령을 수락하지 못했습니다. 이는 디바이스가 일관되지 않은 상태를 입력했거나 명령에 대한 시간 제한 값을 늘려야 할 수 있으므로 발생할 수 있습니다.
값: 0xC0AA020D |
|
지정한 핸들이 잘못되었습니다.
값: 6 |
|
지정된 네트워크 리소스 또는 디바이스를 더 이상 사용할 수 없습니다.
값: 55 |
|
마지막 작업 중에 이 레코더와 연결된 디바이스가 단독으로 잠겨 있어 이 작업이 실패합니다.
값: 0xC0AA0210 |
설명
IDiscFormat2Data::Write와 같은 쓰기 작업이 잠금을 획득하기 때문에 잠금을 직접 획득하기 위해 이 메서드를 호출할 필요가 없습니다.
각 레코더에는 잠금 수가 있습니다. 레코더에 대한 첫 번째 호출은 단독 액세스를 위해 디바이스를 잠급 수 있습니다. 애플리케이션은 AcquireExclusiveAccess 메서드를 여러 번 사용하여 디바이스에 여러 잠금을 적용할 수 있습니다. 각 호출은 잠금 수를 1씩 증가합니다.
레코더의 잠금을 해제할 때 다른 클라이언트의 디바이스를 해제하려면 잠금 수가 0에 도달해야 합니다. IDiscRecorder2::ReleaseExclusiveAccess 메서드를 호출하면 잠금 수가 1씩 감소합니다.
디바이스를 해제하려면 AcquireExclusiveAccess 및 ReleaseExclusiveAccess 메서드에 대한 동일한 수의 호출이 필요합니다. 단독 액세스를 유지하는 동안 애플리케이션이 예기치 않게 종료되거나 충돌하는 경우 CDROM.SYS 드라이버는 이러한 배타적 잠금을 자동으로 해제합니다.
디바이스가 이미 잠겨 있는 경우 IDiscRecorder2::get_ExclusiveAccessOwner 호출하여 현재 단독 액세스 권한이 있는 클라이언트 애플리케이션의 이름을 검색할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista, WINDOWS XP SP2 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | imapi2.h |