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