структура D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 используется с D3DKMTOpenSyncObjectFromNtHandle2 для открытия отслеживаемого объекта ограждения.
Синтаксис
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
Доступное только для чтения сопоставление значения ограждения для ЦП. Это адрес в пользовательском режиме, доступный для чтения из процесса, создавшего отслеживаемый объект ограждения. Для 32-разрядных платформ, поддерживающих 64-разрядные атомарные операции чтения с помощью таких методов, как InterlockedCompareExchange64(pointer,0,0)
, сопоставление будет выполняться для чтения и записи, а не только для чтения, чтобы избежать нарушения доступа во время операции блокировки. В зависимости от значения ограничения No64BitAtomics этот адрес указывает на 32-разрядное или 64-разрядное базовое значение.
[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) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по