Función NCryptSetProperty (ncrypt.h)

La función NCryptSetProperty establece el valor de una propiedad con nombre para un objeto de almacenamiento de claves CNG.

Sintaxis

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

Parámetros

[in] hObject

Identificador del objeto de almacenamiento de claves para el que se va a establecer la propiedad .

[in] pszProperty

Puntero a una cadena Unicode terminada en null que contiene el nombre de la propiedad que se va a establecer. Puede ser uno de los identificadores de propiedad de almacenamiento de claves predefinidos o un identificador de propiedad personalizado.

[in] pbInput

Dirección de un búfer que contiene el nuevo valor de propiedad. El parámetro cbInput contiene el tamaño de este búfer.

[in] cbInput

Tamaño, en bytes, del búfer pbInput .

[in] dwFlags

Marcas que modifican el comportamiento de la función. Puede ser cero o una combinación de uno o varios de los valores siguientes.

Valor Significado
NCRYPT_PERSIST_FLAG
La propiedad debe almacenarse en el almacenamiento de claves junto con el material de la clave. Esta marca solo se puede usar cuando el parámetro hObject es el identificador de una clave persistente. El tamaño máximo de los datos de cualquier propiedad persistente es NCRYPT_MAX_PROPERTY_DATA bytes.
NCRYPT_PERSIST_ONLY_FLAG
No sobrescriba ningún valor integrado para esta propiedad y establezca solo las propiedades persistentes del usuario de la clave. El tamaño máximo de los datos de cualquier propiedad persistente es NCRYPT_MAX_PROPERTY_DATA bytes. Esta marca no se puede usar con la propiedad NCRYPT_SECURITY_DESCR_PROPERTY .
NCRYPT_SILENT_FLAG
Solicita que el proveedor de servicios clave (KSP) no muestre ninguna interfaz de usuario. Si el proveedor debe mostrar la interfaz de usuario para funcionar, se produce un error en la llamada y el KSP debe establecer el código de error NTE_SILENT_CONTEXT como último error.
 

Para la propiedad NCRYPT_SECURITY_DESCR_PROPERTY , este parámetro también debe contener uno de los siguientes valores, que identifica la parte del descriptor de seguridad que se va a establecer.

Valor Significado
OWNER_SECURITY_INFORMATION
Establezca el identificador de seguridad (SID) del propietario del objeto. Use la función SetSecurityDescriptorOwner para establecer el SID propietario en la estructura SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Establezca el SID del grupo principal del objeto. Use la función SetSecurityDescriptorGroup para establecer el SID de grupo en la estructura SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Establezca la lista de control de acceso discrecional (DACL). Use la función SetSecurityDescriptorDacl para establecer la DACL en la estructura SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Establezca la lista de control de acceso del sistema (SACL). Use la función SetSecurityDescriptorSacl para establecer la SACL en la estructura SECURITY_DESCRIPTOR .
LABEL_SECURITY_INFORMATION
Establezca la entrada de control de acceso de etiqueta obligatoria en la SACL del objeto . Use la función SetSecurityDescriptorSacl para establecer la SACL en la estructura SECURITY_DESCRIPTOR . Para obtener más información sobre la entrada de control de acceso de etiquetas obligatorias, consulta Diseño del mecanismo de integridad de Windows.

Valor devuelto

Devuelve un código de estado que indica el éxito o error de la función.

Entre los códigos de retorno posibles se incluyen, entre otros, los siguientes.

Código devuelto Descripción
ERROR_SUCCESS
La función se realizó correctamente.
NTE_BAD_FLAGS
El parámetro dwFlags contiene un valor que no es válido.
NTE_INVALID_HANDLE
El parámetro hObject no es válido.
NTE_INVALID_PARAMETER
Uno o más parámetros no son válidos.
NTE_NO_MEMORY
Error de asignación de memoria.
NTE_NOT_SUPPORTED
La propiedad especificada no se admite para el objeto .

Comentarios

Un servicio no debe llamar a esta función desde su función StartService. Si un servicio llama a esta función desde su función StartService, se puede producir un interbloqueo y el servicio puede dejar de responder.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado ncrypt.h
Library Ncrypt.lib
Archivo DLL Ncrypt.dll