struktur D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS (d3dukmdt.h)
Struktur D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS mengidentifikasi atribut objek sinkronisasi.
Sintaks
typedef struct _D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS {
union {
struct {
UINT Shared : 1;
UINT NtSecuritySharing : 1;
UINT CrossAdapter : 1;
UINT TopOfPipeline : 1;
UINT NoSignal : 1;
UINT NoWait : 1;
UINT NoSignalMaxValueOnTdr : 1;
UINT NoGPUAccess : 1;
UINT SignalByKmd : 1;
UINT LocalMemoryPreferred : 1;
#if ...
UINT Reserved : 21;
#elif
UINT Reserved : 22;
#elif
UINT Reserved : 23;
#elif
UINT Reserved : 28;
#else
UINT Reserved : 29;
#endif
UINT D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0 : 1;
};
UINT Value;
};
} D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS;
Anggota
Shared
Nilai UINT yang menentukan apakah objek sinkronisasi dibagikan.
Jika Dibagikan diatur ke 1 (TRUE), objek sinkronisasi dibagikan. Jika Dibagikan diatur ke nol (FALSE), objek sinkronisasi tidak dibagikan. Untuk informasi lebih lanjut, lihat bagian Keterangan.
NtSecuritySharing
Nilai UINT yang menentukan apakah objek sinkronisasi dibagikan dengan handel NT, yang berarti tidak memiliki handel mode kernel D3DKMT_HANDLE global ke sumber daya.
Jika NtSecuritySharing diatur ke 1 (TRUE), objek sinkronisasi dibagikan tetapi tidak memiliki penanganan D3DKMT_HANDLE global ke sumber daya.
Catatan
Jika NtSecuritySharing diatur ke 1, Bersama harus diatur ke 1. Untuk informasi lebih lanjut, lihat bagian Keterangan.
Didukung dimulai dengan Windows 8.
CrossAdapter
Nilai UINT yang menentukan apakah objek sinkronisasi adalah objek sumber daya lintas adaptor bersama pada sistem hibrid.
Jika CrossAdapter diatur ke 1 (TRUE), objek sinkronisasi adalah objek lintas adaptor bersama. Jika CrossAdapter diatur ke nol (FALSE), objek sinkronisasi bukan objek adaptor silang bersama.
TopOfPipeline
Nilai | Makna |
---|---|
TRUE | Menentukan apakah objek sinkronisasi disinyalir segera setelah konten buffer perintah sebelumnya sepenuhnya disalin ke alur GPU, tetapi belum tentu selesai dieksekusi. Perilaku ini memungkinkan menggunakan kembali buffer perintah sesegera mungkin. |
FALSE | Objek sinkronisasi disinyalir setelah buffer perintah sebelumnya selesai dieksekusi. |
Nilai ini hanya dapat diatur ke 1 (TRUE) untuk objek sinkronisasi pagar yang dipantau, dan harus diatur ke nol (FALSE) untuk semua jenis objek sinkronisasi lainnya.
Didukung dimulai dengan Windows 10.
NoSignal
Nilai | Makna |
---|---|
TRUE | Menentukan perangkat tempat objek sinkronisasi ini dibuat atau dibuka hanya dapat mengirimkan perintah tunggu untuknya. Upaya untuk mengirimkan operasi sinyal ketika bendera ini diatur akan mengembalikan STATUS_ACCESS_DENIED. |
FALSE | Objek sinkronisasi dapat disinyalkan. |
Nilai ini hanya dapat diatur ke 1 (TRUE) untuk objek sinkronisasi pagar yang dipantau, dan harus diatur ke nol (FALSE) untuk semua jenis objek sinkronisasi lainnya.
Didukung dimulai dengan Windows 10.
NoWait
Nilai | Makna |
---|---|
TRUE | Menentukan perangkat tempat objek sinkronisasi ini dibuat atau dibuka hanya dapat mengirimkan perintah sinyal untuknya. Upaya untuk mengirimkan operasi tunggu ketika bendera ini diatur akan kembali STATUS_ACCESS_DENIED. |
FALSE | Objek sinkronisasi dapat ditunggu. |
Nilai ini hanya dapat diatur ke 1 (TRUE) untuk objek sinkronisasi pagar yang dipantau, dan harus diatur ke nol (FALSE) untuk semua jenis objek sinkronisasi lainnya.
Bendera ini tidak dapat diatur secara bersamaan dengan bendera NoSignal .
Didukung dimulai dengan Windows 10.
NoSignalMaxValueOnTdr
Nilai | Makna |
---|---|
TRUE | Menginstruksikan penjadwal GPU untuk melewati sinyal yang disebutkan di atas dari pagar yang dipantau ke nilai maksimum dalam kasus TDR. |
FALSE | Penjadwal GPU akan memberi sinyal pagar yang dipantau ke nilai maksimum ketika perangkat yang berpotensi memberi sinyal itu dipengaruhi oleh reset GPU (TDR). |
Didukung dimulai dengan Windows 10.
NoGPUAccess
Ketika diatur, pagar tidak akan dipetakan ke ruang alamat virtual GPU dan akan selalu disimpan sebagai nilai 64-bit (terlepas dari batas adaptor). Hanya operasi sinyal/tunggu berbasis paket yang didukung.
SignalByKmd
Ketika diatur, pagar dapat diberi sinyal oleh driver mode kernel (KMD). Bendera ini hanya dapat digunakan dengan objek D3DDDI_CPU_NOTIFICATION . Didukung dimulai dengan Windows 11 (WDDM 3.0).
LocalMemoryPreferred
Ketika diatur, menunjukkan bahwa pagar harus ditempatkan dalam memori lokal GPU jika memungkinkan. Didukung dimulai dengan Windows 11 versi 22H2 (WDDM 3.1).
Reserved
Anggota ini dicadangkan dan harus diatur ke nol.
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0
Anggota ini dicadangkan dan harus diatur ke nol.
Didukung dimulai dengan Windows 8.
Value
Anggota dalam serikat yang terkandung dalam D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS yang dapat menyimpan satu nilai 32-bit yang mengidentifikasi atribut objek sinkronisasi.
Keterangan
Objek yang akan dibagikan dengan menggunakan fungsi D3DKMTShareObjects harus terlebih dahulu dibuat dengan kumpulan nilai bendera NtSecuritySharing . Nilai bendera ini tersedia dalam struktur D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGS, dan D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS .
Driver harus mengikuti panduan ini tentang bendera D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS :
Jika objek sinkronisasi tidak dibagikan, atur Shared dan NtSecuritySharing ke 0.
Jika objek sinkronisasi dibagikan dengan jenis data D3DKMT_HANDLE , atur Bersama = 1 dan NtSecuritySharing = 0.
Jika objek sinkronisasi dibagikan dengan handel NT ke proses (dan tanpa handel mode kernel D3DKMT_HANDLE global ke sumber daya), atur Shared = 1 dan NtSecuritySharing = 1.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 |
Header | d3dukmdt.h (termasuk D3dumddi.h, D3dkmddi.h) |
Lihat juga
D3DDDI_SYNCHRONIZATIONOBJECTINFO2
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