다음을 통해 공유


IByteBuffer::LockRegion 메서드

[ LockRegion 메서드는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. Windows Server 2003 SP1(서비스 팩 1) 이상, Windows Vista, Windows Server 2008 및 이후 버전의 운영 체제에서는 사용할 수 없습니다. IStream 인터페이스는 비슷한 기능을 제공합니다.]

LockRegion 메서드는 버퍼 개체에서 지정된 바이트 범위에 대한 액세스를 제한합니다.

구문

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

매개 변수

libOffset [in]

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

cb [in]

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

dwLockType [in]

범위에 액세스하기 위해 요청되는 제한을 지정합니다. 다음 표의 값 중 하나일 수 있습니다.

의미
LOCK_WRITE
지정된 바이트 범위를 열고 횟수에 따라 읽을 수 있지만 이 잠금이 부여된 소유자를 제외하고 잠긴 범위에 쓰는 것은 금지됩니다.
LOCK_EXCLUSIVE
이 잠금이 부여된 소유자를 제외하고 지정된 바이트 범위에 대한 쓰기는 금지됩니다.
LOCK_ONLYONCE
이 잠금이 부여되면 범위에서 다른 LOCK_ONLYONCE 잠금을 가져올 수 없습니다. 일반적으로 이 잠금 유형은 다른 잠금 유형에 대한 별칭입니다. 따라서 특정 구현에는 이 잠금 유형과 관련된 추가 동작이 있을 수 있습니다.

반환 값

반환 값은 HRESULT입니다. S_OK 값은 호출이 성공했음을 나타냅니다.

설명

바이트 범위는 스트림의 현재 끝을 지나 확장할 수 있습니다. 스트림의 끝 부분을 벗어나는 잠금은 실제로 스트림의 일부인 데이터를 변경하지 않고 스트림의 여러 인스턴스 간에 통신하는 방법으로 유용합니다.

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

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

예제

다음 예제에서는 바이트 범위에 대한 액세스를 제한하는 방법을 보여 있습니다.

HRESULT  hr;

// Lock a region.
hr = pIByteBuff->LockRegion(0, 10, LOCK_EXCLUSIVE);
if (FAILED(hr))
  printf("Failed IByteBuffer::LockRegion\n");

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
클라이언트 지원 종료
Windows XP
서버 지원 종료
Windows Server 2003
헤더
Scardssp.h
유형 라이브러리
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer E126F8FE-A7AF-11D0-B88A-00C04FD424B9로 정의됩니다.