PFND3DDDI_UNLOCKASYNC 콜백 함수(d3dumddi.h)

UnlockAsync 함수는 LockAsync 함수가 이전에 잠근 리소스 내의 리소스 또는 표면을 잠금 해제합니다.

구문

PFND3DDDI_UNLOCKASYNC Pfnd3dddiUnlockasync;

HRESULT Pfnd3dddiUnlockasync(
  HANDLE hDevice,
  const D3DDDIARG_UNLOCKASYNC *unnamedParam2
)
{...}

매개 변수

hDevice

디스플레이 디바이스(즉, 그래픽 컨텍스트)에 대한 핸들입니다.

unnamedParam2

pData [in]

잠금을 해제할 리소스 내의 리소스 또는 표면을 설명하는 D3DDDIARG_UNLOCKASYNC 구조체에 대한 포인터입니다.

반환 값

UnlockAsync 는 다음 값 중 하나를 반환합니다.

반환 코드 설명
S_OK 리소스가 성공적으로 잠금 해제되었습니다.
E_OUTOFMEMORY UnlockAsync가 완료하는 데 필요한 메모리를 할당할 수 없습니다.
E_INVALIDARG D3DDDIARG_UNLOCKASYNC 설명하는 리소스는 드라이버의 LockAsync 함수에 대한 이전 호출에 의해 잠기지 않았습니다.

설명

사용자 모드 표시 드라이버는 UnlockAsync 함수가 호출된 후 적절한 할당 핸들을 사용하여 pfnUnlockCb 함수를 호출해야 합니다.

사용자 모드 표시 드라이버는 선택적으로 UnlockAsync를 구현합니다. Microsoft Direct3D 런타임은 드라이버가 LockAsync, UnlockAsyncRename 함수를 구현하는 경우에만 UnlockAsync를 호출합니다.

LockAsync와 마찬가지로 UnlockAsync는 기본 애플리케이션 스레드에서 호출되지만 사용자 모드 표시 드라이버 함수에 대한 대부분의 다른 호출은 작업자 스레드(다중 프로세서 컴퓨터)에서 이루어집니다.

사용자 모드 표시 드라이버가 DDI 버전의 0x0000000B 이상을 노출하는 경우(드라이버는 드라이버의 OpenAdapter 함수 호출에서 D3D10DDIARG_OPENADAPTER 구조체의 DriverVersion 멤버에서 이 값을 반환함) Direct3D 런타임은 다시 들여쓰기 방식으로 UnlockAsync를 호출합니다. 런타임이 다시 활성화된 방식으로 UnlockAsync 를 호출하면 한 스레드가 UnlockAsync 내에서 실행되는 반면 동일한 디스플레이 디바이스를 참조하는 다른 스레드는 다른 사용자 모드 표시 드라이버 함수 내에서 실행됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDIARG_UNLOCKASYNC

D3DDDI_DEVICEFUNCS

LockAsync

이름 바꾸기

pfnUnlockCb