Partager via


NCryptStreamOpenToProtect, fonction (ncryptprotect.h)

La fonction NCryptStreamOpenToProtect ouvre un objet de flux qui peut être utilisé pour chiffrer de grandes quantités de données dans un descripteur de protection donné. Appelez NCryptStreamUpdate pour chiffrer le contenu. Pour chiffrer des messages plus petits tels que des clés et des mots de passe, appelez NCryptProtectSecret.

Syntaxe

SECURITY_STATUS NCryptStreamOpenToProtect(
  [in]           NCRYPT_DESCRIPTOR_HANDLE   hDescriptor,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

Paramètres

[in] hDescriptor

Handle du descripteur de protection. Créez le handle en appelant NCryptCreateProtectionDescriptor.

dwFlags

L’indicateur peut être égal à zéro ou à la valeur suivante.

Valeur Signification
NCRYPT_SILENT_FLAG
Demande que le fournisseur de services de clé n’affiche pas d’interface utilisateur.

[in, optional] hWnd

Gérez la fenêtre parente de l’interface utilisateur, le cas échéant, à afficher.

[in] pStreamInfo

Pointeur vers une structure de NCRYPT_PROTECT_STREAM_INFO qui contient l’adresse d’une fonction de rappel définie par l’utilisateur pour recevoir les données chiffrées et un pointeur vers des données de contexte définies par l’utilisateur.

[out] phStream

Pointeur vers le handle de l’objet stream.

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 doit contenir zéro (0), NCRYPT_MACHINE_KEY_FLAG ou NCRYPT_SILENT_FLAG.
NTE_INVALID_HANDLE
Le handle spécifié par le paramètre hDescriptor n’est pas valide.
NTE_INVALID_PARAMETER
Les paramètres phStream et pStreamInfo ne peuvent pas être NULL.

La fonction de rappel pointée par le membre pfnStreamOutput de la structure NCRYPT_PROTECT_STREAM_INFO pointée par le paramètre pStreamInfo ne peut pas être NULL.

NTE_NO_MEMORY
La mémoire était insuffisante pour allouer un flux de données.

Remarques

La fonction NCryptStreamOpenToProtect crée un objet de flux interne qui peut être utilisé pour chiffrer des messages volumineux. Vous ne pouvez pas utiliser l’objet directement. Au lieu de cela, vous devez utiliser le handle d’objet retourné par cette fonction.

Appelez cette fonction avant d’appeler la fonction NCryptStreamUpdate . Si vous chiffrez un fichier volumineux, utilisez NCryptStreamUpdate dans une boucle qui avance dans le fichier bloc par bloc, en chiffrant chaque bloc à mesure qu’il avance et en informant votre rappel lorsque chaque bloc est terminé. Pour plus d’informations, consultez NCryptStreamUpdate.

La fonction NCryptStreamOpenToProtect écrit la chaîne de règle de descripteur de protection non chiffrée dans l’en-tête de l’objet stream afin que NCryptStreamOpenToUnprotect puisse démarrer le déchiffrement du flux à l’aide du même protecteur que celui utilisé pendant le chiffrement.

Configuration requise

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

Voir aussi

Fonctions DPAPI CNG

NCRYPT_PROTECT_STREAM_INFO

NCryptCreateProtectionDescriptor

NCryptStreamClose

NCryptStreamOpenToUnprotect

NCryptStreamUpdate