D3DKMTLock 함수(d3dkmthk.h)

D3DKMTLock 함수는 할당 내에서 전체 할당 또는 특정 페이지를 잠글 수 있습니다.

구문

NTSTATUS D3DKMTLock(
  D3DKMT_LOCK *unnamedParam1
);

매개 변수

unnamedParam1

pData [in, out]

할당 잠금에 대한 매개 변수를 설명하는 D3DKMT_LOCK 구조체에 대한 포인터입니다.

반환 값

D3DKMTLock 은 다음 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS 할당이 성공적으로 잠겼습니다.
STATUS_DEVICE_REMOVED 그래픽 어댑터가 중지되었거나 디스플레이 디바이스가 다시 설정되었습니다.
STATUS_INVALID_PARAMETER 매개 변수의 유효성이 검사되었고 잘못된 것으로 확인되었습니다.
STATUS_GRAPHICS_ALLOCATION_BUSY 할당이 현재 사용 중이며 잠글 수 없습니다.
STATUS_GRAPHICS_TOO_MANY_REFERENCES 할당에 대해 너무 많은 참조가 보류 중이었습니다.
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION deswizzling 조리개는 사용할 수 없으며 할당이 고정되어 제거될 수 없기 때문에 할당을 잠글 수 없습니다.

이 함수는 다른 NTSTATUS 값을 반환할 수도 있습니다.

설명

D3DKMTLock 함수는 시스템 메모리 할당 및 비디오 메모리 할당에 액세스하기 위해 호출됩니다.

예제

다음 코드 예제에서는 OpenGL ICD가 D3DKMTLock 을 사용하여 전체 할당을 잠그는 방법을 보여 줍니다.

VOID* LockEntireAllocation(D3DKMT_HANDLE hDevice, D3DKMT_HANDLE hAllocation, UINT PrivateData)
{
    D3DKMT_LOCK LockAllocation = {0};

    LockAllocation.hDevice = hDevice;
    LockAllocation.hAllocation = LockData.hAllocation;
    LockAllocation.Flags.LockEntire = TRUE;
    LockAllocation.PrivateDriverData = PrivateData;
    LockAllocation.NumPages = 0;
    LockAllocation.pPages = NULL;
 
    if (NT_SUCCESS((*pfnKTLock)(&LockAllocation))) {
        return LockAllocation.pData;
    }
    return NULL;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 유니버설
헤더 d3dkmthk.h(D3dkmthk.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

D3DKMT_LOCK