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

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTShareObjects

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS