Condividi tramite


Funzione NCryptSetProperty (ncrypt.h)

La funzione NCryptSetProperty imposta il valore per una proprietà denominata per un oggetto di archiviazione chiavi CNG.

Sintassi

SECURITY_STATUS NCryptSetProperty(
  [in] NCRYPT_HANDLE hObject,
  [in] LPCWSTR       pszProperty,
  [in] PBYTE         pbInput,
  [in] DWORD         cbInput,
  [in] DWORD         dwFlags
);

Parametri

[in] hObject

Handle dell'oggetto di archiviazione delle chiavi per impostare la proprietà per.

[in] pszProperty

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

[in] pbInput

Indirizzo di un buffer contenente il nuovo valore della proprietà. Il parametro cbInput contiene le dimensioni di questo buffer.

[in] cbInput

Dimensioni, in byte, del buffer pbInput .

[in] dwFlags

Contrassegni che modificano il comportamento della funzione. Questo può essere zero o una combinazione di uno o più dei valori seguenti.

Valore Significato
NCRYPT_PERSIST_FLAG
La proprietà deve essere archiviata nell'archiviazione delle chiavi insieme al materiale della chiave. Questo flag può essere usato solo quando il parametro hObject è l'handle di una chiave persistente. La dimensione massima dei dati per qualsiasi proprietà persistente è NCRYPT_MAX_PROPERTY_DATA byte.
NCRYPT_PERSIST_ONLY_FLAG
Non sovrascrivere i valori predefiniti per questa proprietà e impostare solo le proprietà persistenti dell'utente della chiave. La dimensione massima dei dati per qualsiasi proprietà persistente è NCRYPT_MAX_PROPERTY_DATA byte. Questo flag non può essere usato con la proprietà NCRYPT_SECURITY_DESCR_PROPERTY .
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 impostare.

Valore Significato
OWNER_SECURITY_INFORMATION
Impostare l'identificatore di sicurezza (SID) del proprietario dell'oggetto. Usare la funzione SetSecurityDescriptorOwner per impostare il SID proprietario nella struttura SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Impostare il SID del gruppo primario dell'oggetto. Usare la funzione SetSecurityDescriptorGroup per impostare il SID del gruppo nella struttura SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Impostare l'elenco di controllo di accesso discrezionale (DACL). Usare la funzione SetSecurityDescriptorDacl per impostare l'elenco dati nella struttura SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Impostare l'elenco di controllo di accesso del sistema (SACL). Usare la funzione SetSecurityDescriptorSacl per impostare SACL nella struttura SECURITY_DESCRIPTOR .
LABEL_SECURITY_INFORMATION
Impostare la voce di controllo di accesso dell'etichetta obbligatoria nell'oggetto SACL. Usare la funzione SetSecurityDescriptorSacl per impostare SACL nella struttura SECURITY_DESCRIPTOR . Per altre informazioni sulla voce di controllo di accesso alle etichette obbligatorie, vedere Progettazione del meccanismo di integrità di Windows.

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 parametro dwFlags 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 funzione StartService, può verificarsi un deadlock e il servizio potrebbe 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