Поделиться через


структура D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)

D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 используется с D3DKMTOpenSyncObjectFromNtHandle2 для открытия отслеживаемого объекта ограждения.

Синтаксис

typedef struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 {
  void                               D3DKMT_PTR(
    HANDLE    unnamedParam1,
    hNtHandle unnamedParam2
  );
  [in]  D3DKMT_HANDLE                      hDevice;
  [in]  D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
  [out] D3DKMT_HANDLE                      hSyncObject;
  union {
    struct {
      void                                  D3DKMT_PTR(
    VOID                        *unnamedParam1,
    FenceValueCPUVirtualAddress unnamedParam2
  );
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
      UINT                                  EngineAffinity;
    } MonitoredFence;
          D3DKMT_ALIGN64 UINT64 Reserved[8];
  };
} D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2;

Члены

void D3DKMT_PTR( HANDLE unnamedParam1, hNtHandle unnamedParam2)

[in] hDevice

Дескриптор устройства для использования этого объекта синхронизации.

[in] Flags

Указывает требуемое поведение объекта синхронизации для этого устройства, например семантику ожидания и сигнала и обработку TDR.

[out] hSyncObject

Дескриптор объекта синхронизации, который можно использовать в этом процессе.

MonitoredFence

Содержит виртуальные адреса объекта синхронизации, которые можно использовать в этом процессе.

void D3DKMT_PTR( VOID *unnamedParam1, FenceValueCPUVirtualAddress unnamedParam2)

[out] MonitoredFence.FenceValueGPUVirtualAddress

Сопоставление для чтения и записи значения ограждения для GPU. Драйвер может сообщить о новом значении ограждения, вставив команду записи GPU для этого адреса в буфер команд, и графическое ядро DirectX разблокировать официанты для этого значения объекта ограждения. Этот виртуальный адрес GPU сопоставляется асинхронно, и драйвер должен дождаться, пока устройство, открывающее или создающее объект синхронизации отслеживаемого ограждения, достигнет PagingFenceValue в своем объекте ограждения подкачки перед доступом к этому виртуальному адресу GPU. В зависимости от значения ограничения No64BitAtomics этот адрес указывает на 32-разрядное или 64-разрядное базовое значение.

[in] MonitoredFence.EngineAffinity

Битовое поле, где каждая позиция бита (начиная с нуля) определяет индекс физического адаптера в связанной ссылке видеоадаптера, где будет зафиксирован виртуальный адрес GPU. Ноль означает, что виртуальный адрес GPU будет зафиксирован для всех физических адаптеров.

Reserved[8]

Консолидированное значение структуры MonitoredFence .

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Верхняя часть d3dkmthk.h (включая D3dkmthk.h)

См. также раздел

D3DKMTOpenSyncObjectFromNtHandle2