Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Struktur identifiziert Attribute eines Synchronisierungsobjekts.
Syntax
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 Unused : 1;
UINT UnwaitCpuWaitersOnlyOnDestroy : 1;
#if ...
UINT Reserved : 20;
#elif
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;
Angehörige
Shared
Ein UINT-Wert, der angibt, ob das Synchronisierungsobjekt freigegeben ist.
Wenn Shared auf 1 (TRUE) festgelegt ist, wird das Synchronisierungsobjekt freigegeben. Wenn Shared auf Null (FALSE) festgelegt ist, wird das Synchronisierungsobjekt nicht freigegeben. Weitere Informationen finden Sie im Abschnitt "Hinweise".
NtSecuritySharing
Ein UINT-Wert, der angibt, ob das Synchronisierungsobjekt für ein NT-Handle freigegeben wird, d. h., es verfügt nicht über ein globales D3DKMT_HANDLE Kernelmodushandle für die Ressource.
Wenn NtSecuritySharing- auf 1 (TRUE) festgelegt ist, wird das Synchronisierungsobjekt freigegeben, verfügt jedoch nicht über ein globales D3DKMT_HANDLE Handle für die Ressource.
Anmerkung
Wenn NtSecuritySharing- auf 1 festgelegt ist, muss freigegebene auf 1 festgelegt sein. Weitere Informationen finden Sie im Abschnitt "Hinweise".
Wird ab Windows 8 unterstützt.
CrossAdapter
Ein UINT-Wert, der angibt, ob das Synchronisierungsobjekt ein freigegebenes Cross-Adapter-Ressourcenobjekt in einem Hybridsystemist.
Wenn CrossAdapter- auf 1 (TRUE) festgelegt ist, ist das Synchronisierungsobjekt ein gemeinsam genutztes Adapterobjekt. Wenn CrossAdapter- auf Null (FALSE) festgelegt ist, ist das Synchronisierungsobjekt kein gemeinsam genutztes Adapterobjekt.
TopOfPipeline
| Wert | Bedeutung |
|---|---|
| STIMMT | Gibt an, ob das Synchronisierungsobjekt signalisiert wird, sobald der Inhalt des Befehlspuffers vor der GPU-Pipeline vollständig kopiert wird, aber nicht unbedingt abgeschlossene Ausführung. Dieses Verhalten ermöglicht die erneute Verwendung von Befehlspuffern so schnell wie möglich. |
| FALSCH | Das Synchronisierungsobjekt wird signalisiert, nachdem die ausführung der vorherigen Befehlspuffer abgeschlossen wurde. |
Dieser Wert kann nur für überwachte Zaunsynchronisierungsobjekte auf 1 (TRUE) festgelegt werden, und er sollte für alle anderen Synchronisierungsobjekttypen auf Null (FALSE) festgelegt werden.
Wird ab Windows 10 unterstützt.
NoSignal
| Wert | Bedeutung |
|---|---|
| STIMMT | Gibt an, dass das Gerät, auf dem dieses Synchronisierungsobjekt erstellt oder geöffnet wird, nur Wartebefehle senden kann. Beim Versuch, einen Signalvorgang zu senden, wenn dieses Flag festgelegt ist, wird STATUS_ACCESS_DENIED zurückgegeben. |
| FALSCH | Das Synchronisierungsobjekt kann signalisiert werden. |
Dieser Wert kann nur für überwachte Zaunsynchronisierungsobjekte auf 1 (TRUE) festgelegt werden, und er sollte für alle anderen Synchronisierungsobjekttypen auf Null (FALSE) festgelegt werden.
Wird ab Windows 10 unterstützt.
NoWait
| Wert | Bedeutung |
|---|---|
| STIMMT | Gibt an, dass das Gerät, auf dem dieses Synchronisierungsobjekt erstellt oder geöffnet wird, nur Signalbefehle senden kann. Beim Versuch, einen Wartevorgang zu senden, wenn dieses Flag festgelegt ist, wird STATUS_ACCESS_DENIED zurückgegeben. |
| FALSCH | Das Synchronisierungsobjekt kann gewartet werden. |
Dieser Wert kann nur für überwachte Zaunsynchronisierungsobjekte auf 1 (TRUE) festgelegt werden, und er sollte für alle anderen Synchronisierungsobjekttypen auf Null (FALSE) festgelegt werden.
Dieses Flag kann nicht gleichzeitig mit NoSignal- Flag festgelegt werden.
Wird ab Windows 10 unterstützt.
NoSignalMaxValueOnTdr
| Wert | Bedeutung |
|---|---|
| STIMMT | Weist den GPU-Scheduler an, die oben erwähnte Signalisierung des überwachten Zauns auf den Höchstwert in TDR-Fällen zu umgehen. |
| FALSCH | Der GPU-Scheduler signalisiert den überwachten Zaun auf den Maximalwert, wenn ein Gerät, das potenziell signalisiert, dass er von der GPU-Zurücksetzung (GPU Reset, TDR) betroffen ist. |
Wird ab Windows 10 unterstützt.
NoGPUAccess
Wenn festgelegt, wird der Zaun nicht im virtuellen GPU-Adressraum zugeordnet und immer als 64-Bit-Wert (unabhängig von Adapterkappen) gespeichert. Es werden nur paketbasierte Signal-/Wartevorgänge unterstützt. Wird ab Windows 10 unterstützt.
SignalByKmd
Bei Festlegung kann der Zaun vom Kernelmodustreiber (KERNEL-Mode Driver, KMD) signalisiert werden. Dieses Kennzeichen kann nur mit D3DDDI_CPU_NOTIFICATION Objekten verwendet werden. Wird ab Windows 11 (WDDM 3.0) unterstützt.
Unused
Dieses Element ist nicht verwendet und sollte auf Null festgelegt werden. Verfügbar ab Windows 11, Version 22H2 (WDDM 3.1).
UnwaitCpuWaitersOnlyOnDestroy
Wenn festgelegt, werden die Waiters für ein freigegebenes Synchronisierungsobjekt auf der CPU nur aufgehoben, wenn das freigegebene Synchronisierungsobjekt endgültig zerstört wird. Standardmäßig werden CPU-Waiter entsperrt, wenn ein lokales Synchronisierungsobjekt zerstört wird, aber das haupt freigegebene Synchronisierungsobjekt wird weiterhin von einem anderen lokalen Synchronisierungsobjekt geöffnet. Unterstützt ab Windows 11, Version 24H2 (WDDM 3.2).
Reserved
Dieses Element ist reserviert und sollte auf Null festgelegt werden.
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0
Dieses Element ist reserviert und sollte auf Null festgelegt werden.
Wird ab Windows 8 unterstützt.
Value
Ein Mitglied in der Union, das in D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS enthalten ist, der einen 32-Bit-Wert enthalten kann, der Attribute eines Synchronisierungsobjekts identifiziert.
Bemerkungen
Objekte, die mithilfe der D3DKMTShareObjects--Funktion freigegeben werden sollen, müssen zuerst mit dem NtSecuritySharing Flagwertsatz erstellt werden. Dieser Kennzeichenwert ist in den Strukturen D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGSund D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS verfügbar.
Treiber sollten die folgenden Richtlinien für D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags befolgen:
Wenn das Synchronisierungsobjekt nicht freigegeben ist, legen Sie Shared und NtSecuritySharing- auf 0 fest.
Wenn das Synchronisierungsobjekt mit einem D3DKMT_HANDLE Datentyp geteilt wird, legen Sie Shared = 1 und NtSecuritySharing- = 0 fest.
Wenn das Synchronisierungsobjekt mit einem NT-Handle für den Prozess (und ohne ein globales D3DKMT_HANDLE Kernelmodushandle für die Ressource) freigegeben wird, legen Sie Shared = 1 und NtSecuritySharing = 1 fest.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Windows 7 |
| Header- | d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h) |
Siehe auch
D3DDDI_SYNCHRONIZATIONOBJECTINFO2