Função NCryptSetProperty (ncrypt.h)

A função NCryptSetProperty define o valor de uma propriedade nomeada para um objeto de armazenamento de chaves CNG.

Sintaxe

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

Parâmetros

[in] hObject

O identificador do objeto de armazenamento de chaves para o qual definir a propriedade.

[in] pszProperty

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

[in] pbInput

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

[in] cbInput

O tamanho, em bytes, do buffer pbInput .

[in] dwFlags

Sinalizadores que modificam o comportamento da função. Isso pode ser zero ou uma combinação de um ou mais dos valores a seguir.

Valor Significado
NCRYPT_PERSIST_FLAG
A propriedade deve ser armazenada no armazenamento de chaves junto com o material da chave. Esse sinalizador só pode ser usado quando o parâmetro hObject é o identificador de uma chave persistente. O tamanho máximo dos dados para qualquer propriedade persistente é NCRYPT_MAX_PROPERTY_DATA bytes.
NCRYPT_PERSIST_ONLY_FLAG
Não substitua nenhum valor interno para essa propriedade e defina apenas as propriedades persistentes do usuário da chave. O tamanho máximo dos dados para qualquer propriedade persistente é NCRYPT_MAX_PROPERTY_DATA bytes. Esse sinalizador não pode ser usado com a propriedade NCRYPT_SECURITY_DESCR_PROPERTY .
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 definida.

Valor Significado
OWNER_SECURITY_INFORMATION
Defina o SID ( identificador de segurança ) do proprietário do objeto. Use a função SetSecurityDescriptorOwner para definir o SID do proprietário na estrutura SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Defina o SID do grupo primário do objeto. Use a função SetSecurityDescriptorGroup para definir o SID do grupo na estrutura SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Defina a DACL ( lista de controle de acesso discricionário ). Use a função SetSecurityDescriptorDacl para definir a DACL na estrutura SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Defina a SACL ( lista de controle de acesso do sistema ). Use a função SetSecurityDescriptorSacl para definir a SACL na estrutura SECURITY_DESCRIPTOR .
LABEL_SECURITY_INFORMATION
Defina a entrada de controle de acesso de rótulo obrigatório na SACL do objeto . Use a função SetSecurityDescriptorSacl para definir a SACL na estrutura SECURITY_DESCRIPTOR . Para obter mais informações sobre a entrada de controle de acesso de rótulo obrigatório, consulte Design do Mecanismo de Integridade do Windows.

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 parâmetro dwFlags 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 função StartService, 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