Share via


Fonction BCryptQueryContextFunctionProperty (bcrypt.h)

La fonction BCryptQueryContextFunctionProperty obtient la valeur d’une propriété nommée pour une fonction de chiffrement dans un contexte CNG existant.

Syntaxe

NTSTATUS BCryptQueryContextFunctionProperty(
  [in]      ULONG   dwTable,
  [in]      LPCWSTR pszContext,
  [in]      ULONG   dwInterface,
  [in]      LPCWSTR pszFunction,
  [in]      LPCWSTR pszProperty,
  [in, out] ULONG   *pcbValue,
  [in, out] PUCHAR  *ppbValue
);

Paramètres

[in] dwTable

Identifie la table de configuration dans laquelle le contexte existe. Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
CRYPT_LOCAL
Le contexte existe dans la table de configuration de l’ordinateur local.
CRYPT_DOMAIN
Cette valeur n’est pas disponible pour l’utilisation.

[in] pszContext

Pointeur vers une chaîne Unicode terminée par null qui contient l’identificateur du contexte à partir duquel obtenir la propriété de fonction.

[in] dwInterface

Identifie l’interface de chiffrement dans laquelle la fonction existe. Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE
La fonction existe dans la liste des fonctions de chiffrement asymétrique.
BCRYPT_CIPHER_INTERFACE
La fonction existe dans la liste des fonctions de chiffrement.
BCRYPT_HASH_INTERFACE
La fonction existe dans la liste des fonctions de hachage.
BCRYPT_RNG_INTERFACE
La fonction existe dans la liste des fonctions de générateur de nombres aléatoires.
BCRYPT_SECRET_AGREEMENT_INTERFACE
La fonction existe dans la liste des fonctions d’accord secret.
BCRYPT_SIGNATURE_INTERFACE
La fonction existe dans la liste des fonctions de signature.
NCRYPT_KEY_STORAGE_INTERFACE
La fonction existe dans la liste des fonctions de stockage clés.
NCRYPT_SCHANNEL_INTERFACE
La fonction existe dans la liste des fonctions Schannel.

[in] pszFunction

Pointeur vers une chaîne Unicode terminée par null qui contient l’identificateur de la fonction de chiffrement pour laquelle obtenir la propriété.

[in] pszProperty

Pointeur vers une chaîne Unicode terminée par null qui contient l’identificateur de la propriété à obtenir.

[in, out] pcbValue

Adresse d’une variable ULONG qui, lors de l’entrée, contient la taille, en octets, de la mémoire tampon pointée vers ppbValue. Si cette taille n’est pas suffisamment grande pour contenir la valeur de la propriété, cette fonction échoue avec STATUS_BUFFER_TOO_SMALL.

Une fois cette fonction retournée, cette variable contient le nombre d’octets qui ont été copiés dans la mémoire tampon ppbValue .

[in, out] ppbValue

Adresse d’un pointeur vers une mémoire tampon qui reçoit les données de propriété. La taille et le format de cette mémoire tampon dépendent du format de la propriété récupérée. La valeur pointée vers par le paramètre pcbValue contient la taille de cette mémoire tampon.

Si la valeur pointée par ce paramètre est NULL, cette fonction alloue la mémoire requise. Cette mémoire doit être libérée lorsqu’elle n’est plus nécessaire en passant ce pointeur vers la fonction BCryptFreeBuffer .

Si ce paramètre a la valeur NULL, cette fonction place la taille requise, en octets, dans la variable pointée par le paramètre pcbValue et retourne STATUS_BUFFER_TOO_SMALL.

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
STATUS_SUCCESS
La fonction a réussi.
STATUS_BUFFER_TOO_SMALL
Le paramètre ppbValue n’est pas NULL et la valeur pointée par le paramètre pcbValue n’est pas assez grande pour contenir l’ensemble de contextes.
STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
STATUS_NO_MEMORY
Un échec d’allocation de mémoire s’est produit.
STATUS_NOT_FOUND
Le contexte, la fonction ou la propriété spécifiés est introuvable.

Remarques

BCryptQueryContextFunctionProperty peut être appelé uniquement en mode utilisateur.

Configuration requise

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