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, cb 및 dwLockType 매개 변수에 대해 정확히 동일한 값으로 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 |
헤더 |
|
유형 라이브러리 |
|
DLL |
|
IID |
IID_IByteBuffer E126F8FE-A7AF-11D0-B88A-00C04FD424B9로 정의됩니다. |