IMF2DBuffer2::Lock2DSize 메서드(mfobjects.h)
호출자에게 버퍼의 메모리에 대한 액세스 권한을 부여합니다.
구문
HRESULT Lock2DSize(
[in] MF2DBuffer_LockFlags lockFlags,
[out] BYTE **ppbScanline0,
[out] LONG *plPitch,
[out] BYTE **ppbBufferStart,
[out] DWORD *pcbBufferLength
);
매개 변수
[in] lockFlags
읽기, 쓰기 또는 둘 다에 버퍼를 잠글지 여부를 지정하는 MF2DBuffer_LockFlags 열거형의 멤버입니다.
[out] ppbScanline0
이미지에서 픽셀 맨 위 행의 첫 번째 바이트에 대한 포인터를 받습니다. 이미지가 뷰어에 표시될 때 맨 위 행이 맨 위 행으로 정의되며 메모리의 첫 번째 행이 아닐 수 있습니다.
[out] plPitch
표면 보폭(바이트)을 받습니다. 보폭은 음수일 수 있으며, 이는 이미지가 메모리의 아래쪽에서 위로 방향을 지정함을 나타냅니다.
[out] ppbBufferStart
메모리에서 액세스 가능한 버퍼의 시작 부분에 대한 포인터를 받습니다.
[out] pcbBufferLength
버퍼의 길이(바이트)를 받습니다.
반환 값
이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
성공. |
|
잘못된 요청입니다. 버퍼가 호환되지 않는 잠금 플래그로 이미 잠겨 있을 수 있습니다. 설명 부분을 참조하세요. |
|
메모리가 부족하여 작업을 완료할 수 없습니다. |
설명
메모리 액세스가 완료되면 IMF2DBuffer::Unlock2D 를 호출하여 버퍼의 잠금을 해제합니다. Lock2DSize를 호출할 때마다 Unlock2D를 한 번 호출해야 합니다.
이 메서드는 IMF2DBuffer::Lock2D 메서드와 동일합니다. 그러나 Lock2DSize 는 호출자가 메모리 포인터의 유효성을 검사할 수 있고 읽기 전용 잠금을 지원하기 때문에 선호됩니다. 버퍼는 IMF2DBuffer2 인터페이스를 지원하도록 보장되지 않습니다. 버퍼에 액세스하려면 나열된 순서대로 다음 메서드를 시도해야 합니다.
- IMF2DBuffer2::Lock2DSize
- IMF2DBuffer::Lock2D
- IMFMediaBuffer::Lock
lockFlags 매개 변수는 버퍼가 읽기 전용 액세스, 쓰기 전용 액세스 또는 읽기/쓰기 액세스를 위해 잠겨 있는지 여부를 지정합니다.
- 읽기 전용 액세스를 위해 버퍼가 이미 잠겨 있는 경우 쓰기 액세스를 위해 버퍼를 잠글 수 없습니다.
- 쓰기 전용 액세스를 위해 버퍼가 이미 잠겨 있는 경우 읽기 액세스를 위해 버퍼를 잠글 수 없습니다.
- 버퍼가 읽기/쓰기 액세스를 위해 이미 잠겨 있는 경우 읽기 또는 쓰기 액세스를 위해 버퍼를 잠글 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | mfobjects.h(Mfidl.h 포함) |