Funzione NCryptGetProperty (ncrypt.h)

La funzione NCryptGetProperty recupera il valore di una proprietà denominata per un oggetto di archiviazione delle chiavi.

Sintassi

SECURITY_STATUS NCryptGetProperty(
  [in]  NCRYPT_HANDLE hObject,
  [in]  LPCWSTR       pszProperty,
  [out] PBYTE         pbOutput,
  [in]  DWORD         cbOutput,
  [out] DWORD         *pcbResult,
  [in]  DWORD         dwFlags
);

Parametri

[in] hObject

Handle dell'oggetto per ottenere la proprietà per. Questo può essere un handle provider (NCRYPT_PROV_HANDLE) o un handle di chiavi (NCRYPT_KEY_HANDLE).

[in] pszProperty

Puntatore a una stringa Unicode con terminazione null contenente il nome della proprietà da recuperare. Può trattarsi di uno degli identificatori di proprietà di archiviazione chiavi predefiniti o di un identificatore di proprietà personalizzato.

[out] pbOutput

Indirizzo di un buffer che riceve il valore della proprietà. Il parametro cbOutput contiene le dimensioni di questo buffer.

Per calcolare le dimensioni necessarie per il buffer, impostare questo parametro su NULL. Le dimensioni, in byte, necessarie vengono restituite nella posizione a cui punta il parametro pcbResult .

[in] cbOutput

Dimensioni, in byte, del buffer pbOutput .

[out] pcbResult

Puntatore a una variabile DWORD che riceve il numero di byte copiati nel buffer pbOutput .

Se il parametro pbOutput è NULL, le dimensioni, in byte, necessarie per il buffer vengono posizionate nel percorso a cui punta questo parametro.

[in] dwFlags

Contrassegni che modificano il comportamento della funzione. Questo valore può essere zero o il valore seguente.

Valore Significato
NCRYPT_PERSIST_ONLY_FLAG
Ignorare tutti i valori predefiniti per questa proprietà e recuperare solo le proprietà persistenti dell'utente della chiave. La dimensione massima dei dati per qualsiasi proprietà persistente è NCRYPT_MAX_PROPERTY_DATA byte.
NCRYPT_SILENT_FLAG
Richiede che il provider di servizi chiave (KSP) non visualizzi alcuna interfaccia utente. Se il provider deve visualizzare l'interfaccia utente da operare, la chiamata ha esito negativo e il KSP deve impostare il codice di errore NTE_SILENT_CONTEXT come ultimo errore.

Per la proprietà NCRYPT_SECURITY_DESCR_PROPERTY , questo parametro deve contenere anche uno dei valori seguenti, che identifica la parte del descrittore di sicurezza da recuperare.

Valore Significato
OWNER_SECURITY_INFORMATION
Recuperare l'identificatore di sicurezza (SID) del proprietario dell'oggetto. Usare la funzione GetSecurityDescriptorOwner per ottenere il SID proprietario dalla struttura SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Recuperare il SID del gruppo primario dell'oggetto. Usare la funzione GetSecurityDescriptorGroup per ottenere il SID del gruppo dalla struttura SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Recuperare l'elenco di controllo di accesso discrezionale (DACL). Usare la funzione GetSecurityDescriptorSacl per ottenere l'elenco dati dalla struttura SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Recuperare l'elenco di controllo di accesso del sistema (SACL). Usare la funzione GetSecurityDescriptorDacl per ottenere l'oggetto SACL dalla struttura SECURITY_DESCRIPTOR .

Valore restituito

Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.

I codici restituiti possibili includono, ma non sono limitati a, i seguenti.

Codice restituito Descrizione
ERROR_SUCCESS La funzione ha avuto esito positivo.
NTE_BAD_FLAGS Il dwFlags parametro contiene un valore non valido.
NTE_INVALID_HANDLE Il parametro hObject non è valido.
NTE_INVALID_PARAMETER Uno o più parametri non sono validi.
NTE_NO_MEMORY Si è verificato un errore di allocazione della memoria.
NTE_NOT_SUPPORTED La proprietà specificata non è supportata per l'oggetto.

Commenti

Un servizio non deve chiamare questa funzione dalla funzione StartService . Se un servizio chiama questa funzione dalla relativa StartService funzione, può verificarsi un deadlock e il servizio può interrompere la risposta.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione ncrypt.h
Libreria Ncrypt.lib
DLL Ncrypt.dll