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 포함)

추가 정보

D3DKMTOpenSyncObjectFromNtHandle2