Función NCryptGetProperty (ncrypt.h)

La función NCryptGetProperty recupera el valor de una propiedad con nombre para un objeto de almacenamiento de claves.

Sintaxis

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

Parámetros

[in] hObject

Identificador del objeto para el que se va a obtener la propiedad . Puede ser un identificador de proveedor (NCRYPT_PROV_HANDLE) o un identificador de clave (NCRYPT_KEY_HANDLE).

[in] pszProperty

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

[out] pbOutput

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

Para calcular el tamaño necesario para el búfer, establezca este parámetro en NULL. El tamaño, en bytes, necesario se devuelve en la ubicación a la que apunta el parámetro pcbResult .

[in] cbOutput

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

[out] pcbResult

Puntero a una variable DWORD que recibe el número de bytes que se copiaron en el búfer pbOutput .

Si el parámetro pbOutput es NULL, el tamaño, en bytes, necesario para el búfer se coloca en la ubicación a la que apunta este parámetro.

[in] dwFlags

Marcas que modifican el comportamiento de la función. Puede ser cero o el valor siguiente.

Valor Significado
NCRYPT_PERSIST_ONLY_FLAG
Omita los valores integrados de esta propiedad y recupere 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.
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 valores siguientes, que identifica la parte del descriptor de seguridad que se va a recuperar.

Valor Significado
OWNER_SECURITY_INFORMATION
Recupere el identificador de seguridad (SID) del propietario del objeto. Use la función GetSecurityDescriptorOwner para obtener el SID de propietario de la estructura SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Recupere el SID del grupo principal del objeto. Use la función GetSecurityDescriptorGroup para obtener el SID de grupo de la estructura SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Recupere la lista de control de acceso discrecional (DACL). Use la función GetSecurityDescriptorSacl para obtener la DACL de la estructura SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Recupere la lista de control de acceso del sistema (SACL). Use la función GetSecurityDescriptorDacl para obtener la SACL de la estructura SECURITY_DESCRIPTOR .

Valor devuelto

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

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

Código devuelto Descripción
ERROR_SUCCESS La función se realizó correctamente.
NTE_BAD_FLAGS El dwFlags parámetro 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 StartService función, 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