ID3D11Fence::CreateSharedHandle-Methode (d3d11_3.h)
Erstellt ein freigegebenes Handle für ein Zaunobjekt.
Diese Methode entspricht der Direct3D 12-ID3D12Device::CreateSharedHandle--Methode und gilt in Szenarien, die eine Interoperation zwischen Direct3D 11 und Direct3D 12 umfassen. In DirecX 11 können Sie den gemeinsam genutzten Zaunhandle mit der ID3D11Device5::OpenSharedFence-Methode öffnen. In DirecX 12 können Sie den gemeinsam genutzten Zaunhandle mit der ID3D12Device::OpenSharedHandle--Methode öffnen.
Syntax
HRESULT CreateSharedHandle(
[in, optional] const SECURITY_ATTRIBUTES *pAttributes,
DWORD dwAccess,
[in, optional] LPCWSTR lpName,
[out] HANDLE *pHandle
);
Parameter
[in, optional] pAttributes
Typ: SECURITY_ATTRIBUTES*
Ein Zeiger auf eine SECURITY_ATTRIBUTES-Struktur, die zwei separate, aber verwandte Datenmember enthält: einen optionalen Sicherheitsdeskriptor und einen booleschen Wert, der bestimmt, ob untergeordnete Prozesse das zurückgegebene Handle erben können.
Legen Sie diesen Parameter auf NULL- fest, wenn untergeordnete Prozesse, die von der Anwendung erstellt werden, möglicherweise nicht erben sollen, das von CreateSharedHandlezurückgegebene Handle zurückgegeben wird, und wenn Sie möchten, dass die Ressource, die dem zurückgegebenen Handle zugeordnet ist, einen Standardsicherheitsdeskriptor abrufen soll.
Der lpSecurityDescriptor Element der Struktur gibt einen SECURITY_DESCRIPTOR für die Ressource an. Legen Sie dieses Element auf NULL- fest, wenn die Laufzeit der Ressource, die dem zurückgegebenen Handle zugeordnet ist, einen Standardsicherheitsdeskriptor zuweisen soll. Die ACLs im Standardsicherheitsdeskriptor für die Ressource stammen aus dem primären oder Identitätswechseltoken des Erstellers. Weitere Informationen finden Sie unter Sync Object Security and Access Rights.
dwAccess
Typ: DWORD-
Derzeit ist der einzige Wert, den dieser Parameter akzeptiert, GENERIC_ALL.
[in, optional] lpName
Typ: LPCWSTR-
Eine NULL--terminated UNICODE- Zeichenfolge, die den Namen enthält, der dem freigegebenen Heap zugeordnet werden soll. Der Name ist auf MAX_PATH Zeichen beschränkt. Bei dem Namensvergleich wird die Groß-/Kleinschreibung beachtet.
Wenn Name mit dem Namen einer vorhandenen Ressource übereinstimmt, schlägt CreateSharedHandle- mit DXGI_ERROR_NAME_ALREADY_EXISTSfehl. Dies geschieht, da diese Objekte denselben Namespace gemeinsam nutzen.
Der Name kann ein Präfix "Global" oder "Local" aufweisen, um das Objekt explizit im globalen oder Sitzungsnamespace zu erstellen. Der Rest des Namens kann ein beliebiges Zeichen mit Ausnahme des umgekehrten Schrägstrichs (\) enthalten. Weitere Informationen finden Sie unter Kernel Object Namespaces. Schnelle Benutzerumschaltung wird mithilfe von Terminaldienstesitzungen implementiert. Kernelobjektnamen müssen den Richtlinien für Terminaldienste entsprechen, damit Anwendungen mehrere Benutzer unterstützen können.
Das Objekt kann in einem privaten Namespace erstellt werden. Weitere Informationen finden Sie unter Object Namespaces.
[out] pHandle
Typ: HANDLE*
Ein Zeiger auf eine Variable, die den NT HANDLE-Wert an die freizugebende Ressource empfängt. Sie können dieses Handle in Aufrufen verwenden, um auf die Ressource zuzugreifen.
Rückgabewert
Typ: HRESULT-
Gibt S_OK zurück, wenn dies erfolgreich ist; andernfalls gibt einen der folgenden Werte zurück:
- DXGI_ERROR_INVALID_CALL, wenn einer der Parameter ungültig ist.
- DXGI_ERROR_NAME_ALREADY_EXISTS, wenn der angegebene Name der zu teilenden Ressource bereits einer anderen Ressource zugeordnet ist.
- E_ACCESSDENIED, wenn das Objekt in einem geschützten Namespace erstellt wird.
- E_OUTOFMEMORY, wenn genügend Arbeitsspeicher zum Erstellen des Handles nicht verfügbar ist.
- Möglicherweise andere Fehlercodes, die im Thema Direct3D 11-Rückgabecodes beschrieben werden.
Bemerkungen
Um einen gemeinsamen Ziehpunkt für den angegebenen Zaun zu schaffen, muss der Zaun entweder mit den D3D11_FENCE_FLAG_SHARED oder D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER Flaggen erstellt worden sein. Weitere Informationen finden Sie in der D3D11_FENCE_FLAG-Aufzählung.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Fenster |
Header- | d3d11_3.h |
Library | D3D11.lib |
DLL- | D3D11.dll |