struktur D3DDDI_SYNCHRONIZATIONOBJECTINFO2 (d3dukmdt.h)
Struktur D3DDDI_SYNCHRONIZATIONOBJECTINFO2 berisi informasi tentang objek sinkronisasi generasi kedua.
Sintaks
typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE Type;
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
union {
struct {
BOOL InitialState;
} SynchronizationMutex;
struct {
UINT MaxCount;
UINT InitialCount;
} Semaphore;
struct {
D3DKMT_ALIGN64 UINT64 FenceValue;
} Fence;
struct {
void D3DKMT_PTR(
HANDLE unnamedParam1,
Event unnamedParam2
);
} CPUNotification;
struct {
D3DKMT_ALIGN64 UINT64 InitialFenceValue;
void D3DKMT_PTR(
VOID *unnamedParam1,
FenceValueCPUVirtualAddress unnamedParam2
);
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
UINT EngineAffinity;
UINT Padding;
} MonitoredFence;
struct {
D3DKMT_HANDLE hAdapter;
D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId;
D3DKMT_ALIGN64 UINT64 Time;
void D3DKMT_PTR(
VOID *unnamedParam1,
FenceValueCPUVirtualAddress unnamedParam2
);
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
UINT EngineAffinity;
UINT Padding;
} PeriodicMonitoredFence;
struct {
D3DKMT_ALIGN64 UINT64 Reserved[8];
} Reserved;
};
D3DKMT_HANDLE SharedHandle;
} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;
Anggota
Type
[in] Nilai jenis D3DDDI_SYNCHRONIZATIONOBJECT_TYPE yang menunjukkan jenis objek sinkronisasi.
Flags
[in] Struktur D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS yang menentukan, dalam bendera bidang bit, atribut objek sinkronisasi.
SynchronizationMutex
Struktur yang berisi informasi tentang mutex sinkronisasi. Jika anggota Jenis sama dengan D3DDDI_SYNCHRONIZATION_MUTEX, penyatuan di D3DDDI_SYNCHRONIZATIONOBJECTINFO2 menyimpan struktur SynchronizationMutex .
SynchronizationMutex.InitialState
Nilai Boolean yang menunjukkan apakah mutex sinkronisasi awalnya dimiliki oleh objek. Nilai TRUE menunjukkan bahwa mutex dimiliki; FALSE menunjukkan bahwa mutex tidak dimiliki.
Semaphore
Struktur yang berisi informasi tentang semaphore. Jika anggota Jenis sama dengan D3DDDI_SEMAPHORE, serikat di D3DDDI_SYNCHRONIZATIONOBJECTINFO2 memegang struktur Semaphore .
Semaphore.MaxCount
Jumlah maksimum peristiwa yang dapat dinanti objek.
Semaphore.InitialCount
Jumlah awal peristiwa yang dinanti objek.
Fence
Struktur yang berisi informasi tentang pagar. Jika anggota Jenis sama dengan D3DDDI_FENCE, serikat di D3DDDI_SYNCHRONIZATIONOBJECTINFO2 memegang struktur Pagar .
Fence.FenceValue
Nilai 64-bit yang menentukan nilai pagar awal.
CPUNotification
Struktur yang berisi informasi tentang pemberitahuan CPU. Jika anggota Jenis sama dengan D3DDDI_CPU_NOTIFICATION, gabungan di D3DDDI_SYNCHRONIZATIONOBJECTINFO2 memegang struktur CPUNotification .
void D3DKMT_PTR( HANDLE unnamedParam1, Event unnamedParam2)
MonitoredFence
Struktur yang berisi informasi tentang pagar yang dipantau. Jika anggota Jenis sama dengan D3DDDI_MONITORED_FENCE, union di D3DDDI_SYNCHRONIZATIONOBJECTINFO2 memegang struktur MonitoredFence .
Pagar yang dipantau hanya dapat dibagikan dengan menggunakan handel NT karena alasan keamanan, sehingga bendera NtSecuritySharing harus diatur saat menggunakan pagar yang dipantau.
Didukung dimulai dengan Windows 10.
MonitoredFence.InitialFenceValue
[in] Nilai 64-bit yang menentukan nilai pagar awal.
Didukung dimulai dengan Windows 10.
void D3DKMT_PTR( VOID *unnamedParam1, FenceValueCPUVirtualAddress unnamedParam2)
MonitoredFence.FenceValueGPUVirtualAddress
[out] Pemetaan baca-tulis dari nilai pagar untuk GPU. Driver dapat memberi sinyal nilai pagar baru dengan memasukkan perintah tulis GPU untuk alamat ini ke dalam buffer perintah, dan Dxgkrnl akan membuka blokir pelayan untuk nilai objek pagar ini. Bergantung pada nilai batas No64BitAtomics , alamat ini menunjuk ke nilai yang mendasar 32 bit atau 64 bit. Jika perangkat tidak mendukung koherensi cache dengan CPU, perangkat tidak boleh menulis ke nilai pagar menggunakan alamat virtual GPU. Akses ke nilai pagar harus dilakukan hanya oleh CPU.
Didukung dimulai dengan Windows 10.
MonitoredFence.EngineAffinity
[in] Bidang bit, di mana setiap posisi bit (mulai dari nol) mendefinisikan indeks adaptor fisik dalam tautan adaptor tampilan tautan (LDA) tempat alamat virtual GPU akan diterapkan. Nol berarti bahwa alamat virtual GPU akan berkomitmen untuk semua adaptor fisik.
Didukung dimulai dengan Windows 10.
MonitoredFence.Padding
PeriodicMonitoredFence
Struktur yang berisi informasi tentang pagar yang dipantau secara berkala. Jika anggota Jenis sama dengan D3DDDI_PERIODIC_MONITORED_FENCE, union di D3DDDI_SYNCHRONIZATIONOBJECTINFO2 memegang struktur MonitoredFence .
Didukung dimulai dengan Windows 10.
VidPnTargetID
[out] ID output yang ingin diterima oleh komppositori.
PeriodicMonitoredFence.hAdapter
[in] Handel ke adaptor yang terkait dengan VidPnSourceID
PeriodicMonitoredFence.VidPnTargetId
PeriodicMonitoredFence.Time
[out] Mewakili offset sebelum VSync (waktu VSync – Parameter waktu). Nilai Waktu mungkin tidak lebih panjang dari interval VSync (1 / DisplayModeRefresh). Waktu ditentukan dalam satuan 100ns.
PeriodicMonitoredFence.FenceValueGPUVirtualAddress
[in] Pemetaan baca-saja dari nilai pagar untuk GPU
PeriodicMonitoredFence.EngineAffinity
[in] Menentukan adaptor fisik tempat VA GPU akan dipetakan
PeriodicMonitoredFence.Padding
Reserved
Struktur yang dicadangkan untuk digunakan di masa mendatang. Struktur ini berisi anggota berikut:
Reserved.Reserved[8]
SharedHandle
[out] Handel ke objek sinkronisasi bersama jika handel bersama saat ini ada. Driver harus berbagi objek sinkronisasi menggunakan handel NT. Ini harus mengatur D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS::NtSecuritySharing untuk menunjukkan bahwa objek akan dibagikan menggunakan handel NT dan memanggil D3DKMTShareObjects untuk mendapatkan handel NT. Menggunakan handel global tidak aman. Proses apa pun dapat menebak handel global dan membuka objek bersama. Handel global hanya didukung untuk alasan kompatibilitas dengan runtime D3D lama.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 |
Header | d3dukmdt.h (termasuk D3dumddi.h, D3dkmddi.h) |
Lihat juga
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk