NCryptGetProperty, fonction (ncrypt.h)

La fonction NCryptGetProperty récupère la valeur d’une propriété nommée pour un objet de stockage de clé.

Syntaxe

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

Paramètres

[in] hObject

Handle de l’objet pour lequel obtenir la propriété. Il peut s’agir d’un handle fournisseur (NCRYPT_PROV_HANDLE) ou d’un handle de clé (NCRYPT_KEY_HANDLE).

[in] pszProperty

Pointeur vers une chaîne Unicode terminée par null qui contient le nom de la propriété à récupérer. 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é.

[out] pbOutput

Adresse d’une mémoire tampon qui reçoit la valeur de propriété. Le paramètre cbOutput contient la taille de cette mémoire tampon.

Pour calculer la taille requise pour la mémoire tampon, définissez ce paramètre sur NULL. La taille, en octets, requise est retournée à l’emplacement indiqué par le paramètre pcbResult .

[in] cbOutput

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

[out] pcbResult

Pointeur vers une variable DWORD qui reçoit le nombre d’octets copiés dans la mémoire tampon pbOutput .

Si le paramètre pbOutput a la valeur NULL, la taille, en octets, requise pour la mémoire tampon est placée à l’emplacement indiqué par ce paramètre.

[in] dwFlags

Indicateurs qui modifient le comportement de la fonction. Il peut s’agir de zéro ou de la valeur suivante.

Valeur Signification
NCRYPT_PERSIST_ONLY_FLAG
Ignorez les valeurs intégrées pour cette propriété et récupérez 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.
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é à récupérer.

Valeur Signification
OWNER_SECURITY_INFORMATION
Récupérez l’identificateur de sécurité (SID) du propriétaire de l’objet. Utilisez la fonction GetSecurityDescriptorOwner pour obtenir le SID propriétaire à partir de la structure SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Récupérez le SID du groupe principal de l’objet. Utilisez la fonction GetSecurityDescriptorGroup pour obtenir le SID de groupe à partir de la structure SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Récupérez la liste de contrôle d’accès discrétionnaire (DACL). Utilisez la fonction GetSecurityDescriptorSacl pour obtenir la liste DACL à partir de la structure SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Récupérez la liste de contrôle d’accès système (SACL). Utilisez la fonction GetSecurityDescriptorDacl pour obtenir la liste SACL à partir de la structure SECURITY_DESCRIPTOR .

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 dwFlags paramètre 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 StartService fonction, un blocage 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