Função NCryptGetProperty (ncrypt.h)

A função NCryptGetProperty recupera o valor de uma propriedade nomeada para um objeto de armazenamento de chaves.

Sintaxe

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

O identificador do objeto para o qual obter a propriedade. Pode ser um identificador de provedor (NCRYPT_PROV_HANDLE) ou um identificador de chave (NCRYPT_KEY_HANDLE).

[in] pszProperty

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome da propriedade a ser recuperada. Esse pode ser um dos Identificadores de Propriedade de Armazenamento de Chaves predefinidos ou um identificador de propriedade personalizado.

[out] pbOutput

O endereço de um buffer que recebe o valor da propriedade. O parâmetro cbOutput contém o tamanho desse buffer.

Para calcular o tamanho necessário para o buffer, defina esse parâmetro como NULL. O tamanho, em bytes, necessário é retornado no local apontado pelo parâmetro pcbResult .

[in] cbOutput

O tamanho, em bytes, do buffer pbOutput .

[out] pcbResult

Um ponteiro para uma variável DWORD que recebe o número de bytes que foram copiados para o buffer pbOutput .

Se o parâmetro pbOutput for NULL, o tamanho, em bytes, necessário para o buffer será colocado no local apontado por esse parâmetro.

[in] dwFlags

Sinalizadores que modificam o comportamento da função. Isso pode ser zero ou o valor a seguir.

Valor Significado
NCRYPT_PERSIST_ONLY_FLAG
Ignore todos os valores internos dessa propriedade e recupere apenas as propriedades persistentes do usuário da chave. O tamanho máximo dos dados para qualquer propriedade persistente é NCRYPT_MAX_PROPERTY_DATA bytes.
NCRYPT_SILENT_FLAG
Solicita que o KSP (provedor de serviços de chave) não exiba nenhuma interface do usuário. Se o provedor precisar exibir a interface do usuário para operar, a chamada falhará e o KSP deverá definir o código de erro NTE_SILENT_CONTEXT como o último erro.

Para a propriedade NCRYPT_SECURITY_DESCR_PROPERTY , esse parâmetro também deve conter um dos valores a seguir, que identifica a parte do descritor de segurança a ser recuperada.

Valor Significado
OWNER_SECURITY_INFORMATION
Recupere o SID (identificador de segurança) do proprietário do objeto. Use a função GetSecurityDescriptorOwner para obter o SID proprietário da estrutura SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Recupere o SID do grupo primário do objeto. Use a função GetSecurityDescriptorGroup para obter o SID do grupo da estrutura SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Recupere a DACL (lista de controle de acesso discricionário). Use a função GetSecurityDescriptorSacl para obter a DACL da estrutura SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Recupere a SACL (lista de controle de acesso do sistema). Use a função GetSecurityDescriptorDacl para obter o SACL da estrutura SECURITY_DESCRIPTOR .

Retornar valor

Retorna um código status que indica o êxito ou a falha da função.

Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.

Código de retorno Descrição
ERROR_SUCCESS A função foi bem-sucedida.
NTE_BAD_FLAGS O dwFlags parâmetro contém um valor que não é válido.
NTE_INVALID_HANDLE O parâmetro hObject não é válido.
NTE_INVALID_PARAMETER Um ou mais dos parâmetros não são válidos.
NTE_NO_MEMORY Ocorreu uma falha de alocação de memória.
NTE_NOT_SUPPORTED Não há suporte para a propriedade especificada para o objeto .

Comentários

Um serviço não deve chamar essa função de sua função StartService . Se um serviço chamar essa função de sua StartService função, um deadlock poderá ocorrer e o serviço poderá parar de responder.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho ncrypt.h
Biblioteca Ncrypt.lib
DLL Ncrypt.dll