다음을 통해 공유


IStream::LockRegion 메서드(objidl.h)

LockRegion 메서드는 스트림에서 지정된 바이트 범위에 대한 액세스를 제한합니다. 일부 파일 시스템에서는 이 기능을 제공하지 않으므로 이 기능을 지원하는 것은 선택 사항입니다.

구문

HRESULT LockRegion(
  [in] ULARGE_INTEGER libOffset,
  [in] ULARGE_INTEGER cb,
  [in] DWORD          dwLockType
);

매개 변수

[in] libOffset

범위의 시작 부분에 대한 바이트 오프셋을 지정하는 정수입니다.

[in] cb

제한할 범위의 길이(바이트)를 지정하는 정수입니다.

[in] dwLockType

범위에 액세스하기 위해 요청되는 제한을 지정합니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
S_OK 지정된 바이트 범위가 잠겼습니다.
E_PENDING 비동기 스토리지만 해당: 스트림 데이터의 일부 또는 전체를 현재 사용할 수 없습니다.
STG_E_INVALIDFUNCTION 잠금은 전혀 지원되지 않거나 요청된 특정 유형의 잠금이 지원되지 않습니다.
STG_E_LOCKVIOLATION 요청된 잠금은 지원되지만 기존 잠금으로 인해 부여할 수 없습니다.
STG_E_REVERTED 개체가 트랜잭션 트리에서 위의 되돌리기 작업에 의해 무효화되었습니다.

설명

스트림의 바이트 범위를 확장할 수 있습니다. 스트림에 대한 확장 범위를 잠그는 것은 실제로 스트림의 일부인 데이터를 변경하지 않고 스트림의 여러 인스턴스 간에 통신하는 방법으로 유용합니다.

다른 기록기를 제외하도록 잠금, 다른 판독기 또는 기록기를 제외하도록 잠금, 지정된 범위에 대한 잠금을 한 명의 요청자만 가져올 수 있는 잠금( 일반적으로 다른 두 잠금 유형 중 하나에 대한 별칭)의 세 가지 유형의 잠금을 지원합니다. 지정된 스트림 instance 처음 두 형식 중 하나 또는 둘 다를 지원할 수 있습니다. 잠금 형식은 LOCKTYPE 열거형의 값을 사용하여 dwLockType에 의해 지정됩니다.

IStream::LockRegion으로 잠긴 모든 지역은 나중에 libOffset, cbdwLockType 매개 변수에 대해 정확히 동일한 값으로 IStream::UnlockRegion을 호출하여 명시적으로 잠금 해제되어야 합니다. 스트림이 해제되기 전에 지역의 잠금을 해제해야 합니다. 인접한 두 지역은 별도로 잠근 다음 단일 잠금 해제 호출로 잠금 해제할 수 없습니다.

발신자에 대한 참고 사항

지원되는 잠금 유형은 선택 사항이며 IStream의 다양한 구현에 따라 다를 수 있으므로 STG_E_INVALIDFUNCTION 오류를 처리하는 코드를 제공해야 합니다.

구현이 범위 잠금을 지원하지 않으므로 LockRegion 메서드는 복합 파일 구현에 영향을 주지 않습니다.

구현자에 대한 참고 사항

이 메서드에 대한 지원은 기본 파일 시스템에서 지원되지 않을 수 있으므로 스트림 개체 구현에 선택 사항입니다. 지원되는 잠금 유형도 선택 사항입니다. 요청된 잠금 유형이 지원되지 않으면 STG_E_INVALIDFUNCTION 오류가 반환됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 objidl.h
라이브러리 Uuid.lib
DLL Ole32.dll

추가 정보

IStream - 복합 파일 구현

IStream::UnlockRegion

LOCKTYPE