Metodo ID3D11Fence::CreateSharedHandle (d3d11_3.h)
Crea un handle condiviso per un oggetto di isolamento.
Questo metodo equivale al metodo Direct3D 12 ID3D12Device::CreateSharedHandle e si applica negli scenari che coinvolgono l'interoperabilità tra Direct3D 11 e Direct3D 12. In DirecX 11 è possibile aprire l'handle di isolamento condiviso con il metodo ID3D11Device5::OpenSharedFence . In DirecX 12 è possibile aprire l'handle di isolamento condiviso con il metodo ID3D12Device::OpenSharedHandle .
Sintassi
HRESULT CreateSharedHandle(
[in, optional] const SECURITY_ATTRIBUTES *pAttributes,
DWORD dwAccess,
[in, optional] LPCWSTR lpName,
[out] HANDLE *pHandle
);
Parametri
[in, optional] pAttributes
Tipo: const SECURITY_ATTRIBUTES*
Puntatore a una struttura SECURITY_ATTRIBUTES che contiene due membri dati separati ma correlati: un descrittore di sicurezza facoltativo e un valore booleano che determina se i processi figlio possono ereditare l'handle restituito.
Impostare questo parametro su NULL se si desidera che i processi figlio che l'applicazione possa creare per non ereditare l'handle restituito da CreateSharedHandle e se si desidera che la risorsa associata all'handle restituito possa ottenere un descrittore di sicurezza predefinito.
Il membro lpSecurityDescriptor della struttura specifica un SECURITY_DESCRIPTOR per la risorsa. Impostare questo membro su NULL se si vuole che il runtime assegni un descrittore di sicurezza predefinito alla risorsa associata all'handle restituito. Gli ACL nel descrittore di sicurezza predefinito per la risorsa provengono dal token primario o di rappresentazione del creatore. Per altre informazioni, vedere Synchronization Object Security and Access Rights.For more info, see Synchronization Object Security and Access Rights.
dwAccess
Tipo: DWORD
Attualmente l'unico valore accettato da questo parametro è GENERIC_ALL.
[in, optional] lpName
Tipo: LPCWSTR
Stringa UNICODE con terminazione NULL contenente il nome da associare all'heap condiviso. Il nome è limitato a MAX_PATH caratteri. Il confronto dei nomi fa distinzione tra maiuscole e minuscole.
Se Name corrisponde al nome di una risorsa esistente, CreateSharedHandle ha esito negativo con DXGI_ERROR_NAME_ALREADY_EXISTS. Ciò si verifica perché questi oggetti condividono lo stesso spazio dei nomi.
Il nome può avere un prefisso "Global" o "Local" per creare in modo esplicito l'oggetto nello spazio dei nomi globale o sessione. Il resto del nome può contenere qualsiasi carattere ad eccezione del carattere barra rovesciata (\). Per altre informazioni, vedere Spazi dei nomi degli oggetti kernel. Il passaggio rapido degli utenti viene implementato usando le sessioni di Servizi terminal. I nomi degli oggetti kernel devono seguire le linee guida descritte per Servizi terminal in modo che le applicazioni possano supportare più utenti.
L'oggetto può essere creato in uno spazio dei nomi privato. Per altre informazioni, vedere Spazi dei nomi degli oggetti.
[out] pHandle
Tipo: HANDLE*
Puntatore a una variabile che riceve il valore NT HANDLE per la risorsa da condividere. È possibile usare questo handle nelle chiamate per accedere alla risorsa.
Valore restituito
Tipo: HRESULT
Restituisce S_OK in caso di esito positivo; in caso contrario, restituisce uno dei valori seguenti:
- DXGI_ERROR_INVALID_CALL se uno dei parametri non è valido.
- DXGI_ERROR_NAME_ALREADY_EXISTS se il nome specificato della risorsa da condividere è già associato a un'altra risorsa.
- E_ACCESSDENIED se l'oggetto viene creato in uno spazio dei nomi protetto.
- E_OUTOFMEMORY se la memoria sufficiente non è disponibile per creare l'handle.
- Possibilmente altri codici di errore descritti nell'argomento Codici restituiti Direct3D 11 .
Commenti
Per creare un handle condiviso per la recinzione specificata, è necessario che il recinto sia stato creato con i flag D3D11_FENCE_FLAG_SHARED o D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER . Per altre informazioni, vedere l'enumerazione D3D11_FENCE_FLAG .
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d3d11_3.h |
Libreria | D3D11.lib |
DLL | D3D11.dll |