Freigeben über


D3DKMTShareObjects-Funktion (d3dkmthk.h)

D3DKMTShareObjects teilt Ressourcenobjekte, die mit dem D3KMTCreateAllocation, D3KMTCreateAllocation2D3DKMTCreateKeyedMutex2erstellt wurden, und D3DKMTCreateSynchronizationObject2 Funktionen.

Syntax

NTSTATUS D3DKMTShareObjects(
  [in]  UINT                cObjects,
  [in]  const D3DKMT_HANDLE *hObjects,
  [in]  POBJECT_ATTRIBUTES  pObjectAttributes,
  [in]  DWORD               dwDesiredAccess,
  [out] HANDLE              *phSharedNtHandle
);

Parameter

[in] cObjects

Die Anzahl der Ressourcenobjekte, die im hObjects--Parameter bereitgestellt werden. Dieser Wert muss kleiner oder gleich D3DKMT_MAX_OBJECTS_PER_HANDLEsein.

[in] hObjects

Ein Zeiger auf ein Array lokaler Kernelmodushandles, mit denen die ressourcenbezogenen Objekte angegeben werden. Weitere Informationen finden Sie unter Anmerkungen.

[in] pObjectAttributes

Ein Zeiger auf eine OBJECT_ATTRIBUTES Struktur, die Attribute der Ressourcenobjekte angibt.

[in] dwDesiredAccess

Gibt Lese- und Schreibzugriff für die Ressource an.

Bei GPU-Synchronisierungsobjekten kann dwDesiredAccess- eine Kombination der folgenden Bitfelder sein (definiert in d3dukmdt.h).

Wert Bedeutung
STANDARD_RIGHTS_READ Der Prozess, der das Synchronisierungsobjekt öffnet, kann den Status des Synchronisierungsobjekts lesen. Diese Kennzeichnung muss angegeben werden, oder auf das Objekt kann nicht zugegriffen werden.
D3DDDI_SYNC_OBJECT_WAIT Der Prozess, der das Synchronisierungsobjekt öffnet, kann Wartezeitvorgänge für das Synchronisierungsobjekt ausgeben.
D3DDDI_SYNC_OBJECT_SIGNAL Der Prozess, der das Synchronisierungsobjekt öffnet, kann Signalvorgänge für das Synchronisierungsobjekt ausgeben.
D3DDDI_SYNC_OBJECT_ALL_ACCESS Der Prozess, der das Synchronisierungsobjekt öffnet, kann einen beliebigen Vorgang für das Synchronisierungsobjekt ausgeben.

Für gemeinsam genutzte Ressourcen kann der gewünschte Zugriff als Kombination der folgenden Flags angegeben werden (definiert in d3dkmthk.h):

Wert Bedeutung
STANDARD_RIGHTS_READ Der Prozess, der die Ressource öffnet, kann Lesezugriff haben. Diese Kennzeichnung muss angegeben werden, oder auf das Objekt kann nicht zugegriffen werden.
SHARED_ALLOCATION_WRITE Der Prozess, der die Ressource öffnet, kann Schreibzugriff haben. Wenn diese Zugriffskennzeichnung nicht angegeben ist, wird die Ressource schreibgeschützt geöffnet.
SHARED_ALLOCATION_ALL_ACCESS Der Prozess, der die Ressource öffnet, kann über alle Zugriffe auf das Objekt verfügen.

[out] phSharedNtHandle

Ein Zeiger auf ein freigegebenes NT-Handle, das die Ressourcenobjekte angibt.

Dieser Parameter wird NULL-, wenn der NtSecuritySharing Flagwert nicht festgelegt ist. Weitere Informationen finden Sie unter Anmerkungen.

Rückgabewert

Die Methode gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen geeigneten NTSTATUS Fehlercode zurück.

Bemerkungen

Objekte, die mit D3DKMTShareObjects- 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.

Diese Funktion muss Handles über das hObjects Parameter nur für die folgenden Kombinationen von Eingabeobjektarraytypen angeben:

  • eine Zuordnung
  • Zuweisung, Schlüsselmutex und Synchronisierungsobjekt
  • ein Synchronisierungsobjekt

Das Betriebssystem lehnt alle anderen Eingabeziehpunktkombinationen ab.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Universal
Header- d3dkmthk.h (einschließlich D3dkmthk.h)
Library Gdi32.lib
DLL- Gdi32.dll

Siehe auch

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTCreateAllocation

D3DKMTCreateAllocation2

D3DKMTCreateKeyedMutex2

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS