Partager via


NCryptSetProperty, fonction (ncrypt.h)

La fonction NCryptSetProperty définit la valeur d’une propriété nommée pour un objet de stockage de clé CNG.

Syntaxe

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

Paramètres

[in] hObject

Handle de l’objet de stockage de clé pour lequel définir la propriété.

[in] pszProperty

Pointeur vers une chaîne Unicode terminée par null qui contient le nom de la propriété à définir. Il peut s’agir de l’un des identificateurs de propriété de stockage de clés prédéfinis ou d’un identificateur de propriété personnalisé.

[in] pbInput

Adresse d’une mémoire tampon qui contient la nouvelle valeur de propriété. Le paramètre cbInput contient la taille de cette mémoire tampon.

[in] cbInput

Taille, en octets, de la mémoire tampon pbInput .

[in] dwFlags

Indicateurs qui modifient le comportement de la fonction. Il peut s’agir de zéro ou d’une combinaison d’une ou plusieurs des valeurs suivantes.

Valeur Signification
NCRYPT_PERSIST_FLAG
La propriété doit être stockée dans le stockage de clés avec le matériel de clé. Cet indicateur ne peut être utilisé que lorsque le paramètre hObject est le handle d’une clé persistante. La taille maximale des données pour toute propriété persistante est NCRYPT_MAX_PROPERTY_DATA octets.
NCRYPT_PERSIST_ONLY_FLAG
Ne remplacez pas les valeurs intégrées pour cette propriété et définissez uniquement les propriétés persistantes par l’utilisateur de la clé. La taille maximale des données pour toute propriété persistante est NCRYPT_MAX_PROPERTY_DATA octets. Cet indicateur ne peut pas être utilisé avec la propriété NCRYPT_SECURITY_DESCR_PROPERTY .
NCRYPT_SILENT_FLAG
Demande que le fournisseur de services clés (KSP) n’affiche aucune interface utilisateur. Si le fournisseur doit afficher l’interface utilisateur pour fonctionner, l’appel échoue et le KSP doit définir le code d’erreur NTE_SILENT_CONTEXT comme dernière erreur.
 

Pour la propriété NCRYPT_SECURITY_DESCR_PROPERTY , ce paramètre doit également contenir l’une des valeurs suivantes, qui identifie la partie du descripteur de sécurité à définir.

Valeur Signification
OWNER_SECURITY_INFORMATION
Définissez l’identificateur de sécurité (SID) du propriétaire de l’objet. Utilisez la fonction SetSecurityDescriptorOwner pour définir le SID propriétaire dans la structure SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Définissez le SID du groupe principal de l’objet. Utilisez la fonction SetSecurityDescriptorGroup pour définir le SID de groupe dans la structure SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Définissez la liste de contrôle d’accès discrétionnaire (DACL). Utilisez la fonction SetSecurityDescriptorDacl pour définir la liste DACL dans la structure SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Définissez la liste de contrôle d’accès système (SACL). Utilisez la fonction SetSecurityDescriptorSacl pour définir la SACL dans la structure SECURITY_DESCRIPTOR .
LABEL_SECURITY_INFORMATION
Définissez l’entrée de contrôle d’accès d’étiquette obligatoire dans la SACL de l’objet . Utilisez la fonction SetSecurityDescriptorSacl pour définir la SACL dans la structure SECURITY_DESCRIPTOR . Pour plus d’informations sur l’entrée de contrôle d’accès d’étiquette obligatoire, consultez Conception du mécanisme d’intégrité Windows.

Valeur retournée

Retourne un code status qui indique la réussite ou l’échec de la fonction.

Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.

Code de retour Description
ERROR_SUCCESS
La fonction a réussi.
NTE_BAD_FLAGS
Le paramètre dwFlags contient une valeur qui n’est pas valide.
NTE_INVALID_HANDLE
Le paramètre hObject n’est pas valide.
NTE_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
NTE_NO_MEMORY
Un échec d’allocation de mémoire s’est produit.
NTE_NOT_SUPPORTED
La propriété spécifiée n’est pas prise en charge pour l’objet .

Remarques

Un service ne doit pas appeler cette fonction à partir de sa fonction StartService. Si un service appelle cette fonction à partir de sa fonction StartService, un interblocage peut se produire et le service peut cesser de répondre.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête ncrypt.h
Bibliothèque Ncrypt.lib
DLL Ncrypt.dll