D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 구조체(d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2D3DKMTOpenSyncObjectFromNtHandle2 사용하여 모니터링되는 펜스 개체를 엽니다.
통사론
typedef struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 {
[in] HANDLE hNtHandle;
[in] D3DKMT_HANDLE hDevice;
[in] D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
[out] D3DKMT_HANDLE hSyncObject;
union {
struct {
VOID *FenceValueCPUVirtualAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
UINT EngineAffinity;
} MonitoredFence;
D3DKMT_ALIGN64 UINT64 Reserved[8];
};
} D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2;
회원
[in] hNtHandle
열 동기화 개체에 대한 NT 핸들입니다.
[in] hDevice
이 동기화 개체를 사용하는 디바이스 핸들입니다.
[in] Flags
대기 및 신호 의미 체계 및 TDR 처리와 같이 이 디바이스에 대해 원하는 동기화 개체 동작을 지정합니다.
[out] hSyncObject
이 프로세스에서 사용할 수 있는 동기화 개체에 대한 핸들입니다.
MonitoredFence
이 프로세스에서 사용할 수 있는 동기화 개체 가상 주소를 포함합니다.
[out] MonitoredFence.FenceValueCPUVirtualAddress
CPU에 대한 펜스 값의 읽기 전용 매핑입니다. 모니터링되는 펜스 개체를 만든 프로세스에서 읽을 수 있는 사용자 모드 주소입니다.
InterlockedCompareExchange64(pointer,0,0)
같은 메서드를 통해 64비트 원자 읽기를 지원하는 32비트 플랫폼의 경우 연동 작업 중에 액세스 위반을 방지하기 위해 읽기 전용이 아닌 읽기-쓰기로 매핑됩니다.
No64BitAtomics 상한 값에 따라 이 주소는 32비트 또는 64비트 기본 값을 가리킵니다.
[out] MonitoredFence.FenceValueGPUVirtualAddress
GPU에 대한 펜스 값의 읽기-쓰기 매핑입니다. 드라이버는 이 주소에 대한 GPU 쓰기 명령을 명령 버퍼에 삽입하여 새 펜스 값에 신호를 보낼 수 있으며 DirectX 그래픽 커널은 이 펜스 개체 값에 대한 웨이터의 차단을 해제합니다. 이 GPU 가상 주소는 비동기적으로 매핑되며, 드라이버는 이 GPU 가상 주소에 액세스하기 전에 모니터링되는 펜스 동기화 개체를 열거나 만든 디바이스가 페이징 펜스 개체의 PagingFenceValue 도달할 때까지 기다려야 합니다. No64BitAtomics 상한 값에 따라 이 주소는 32비트 또는 64비트 기본 값을 가리킵니다.
[in] MonitoredFence.EngineAffinity
각 비트 위치(0부터 시작)가 GPU 가상 주소를 커밋할 연결된 디스플레이 어댑터 링크에서 실제 어댑터 인덱스를 정의하는 비트 필드입니다. 0은 GPU 가상 주소가 모든 실제 어댑터에 커밋됨을 의미합니다.
Reserved[8]
MonitoredFence 구조체의 통합 값입니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | Windows Server 2016 |
헤더 | d3dkmthk.h(D3dkmthk.h 포함) |