Função CryptGetOIDFunctionValue (wincrypt.h)

A função CryptGetOIDFunctionValue consulta um valor associado a um OID. A consulta é feita para um valor nomeado específico associado a um OID, um nome de função e um tipo de codificação. A função pode retornar o tipo de valor consultado, o valor, o próprio ou ambos.

Sintaxe

BOOL CryptGetOIDFunctionValue(
  [in]      DWORD   dwEncodingType,
  [in]      LPCSTR  pszFuncName,
  [in]      LPCSTR  pszOID,
  [in]      LPCWSTR pwszValueName,
  [out]     DWORD   *pdwValueType,
  [out]     BYTE    *pbValueData,
  [in, out] DWORD   *pcbValueData
);

Parâmetros

[in] dwEncodingType

Especifica o tipo de codificação a ser correspondido. Atualmente, apenas X509_ASN_ENCODING e PKCS_7_ASN_ENCODING estão sendo usados; no entanto, tipos de codificação adicionais podem ser adicionados no futuro. Para corresponder aos dois tipos de codificação atuais, use X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pszFuncName

Um ponteiro para a cadeia de caracteres terminada em nulo que contém o nome do conjunto de funções OID.

[in] pszOID

Se a palavra de alta ordem do OID não for zero, pszOID será um ponteiro para uma cadeia de caracteres OID terminada em nulo, como "2.5.29.1" ou uma cadeia de caracteres ASCII terminada em nulo, como "file". Se a palavra de alta ordem do OID for zero, a palavra de ordem baixa especificará o identificador numérico a ser usado como o identificador de objeto.

[in] pwszValueName

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome do valor a ser consultado.

[out] pdwValueType

Um ponteiro para uma variável para receber o tipo do valor. O tipo retornado por meio desse parâmetro será um dos seguintes.

Valor Significado
REG_DWORD
Um número de 32 bits.
REG_EXPAND_SZ
Uma cadeia de caracteres Unicode que contém referências não explicadas a variáveis de ambiente como "%PATH%". Os aplicativos devem garantir que a cadeia de caracteres tenha um caractere nulo de terminação antes de usá-la. Para obter detalhes sobre quando a cadeia de caracteres não tem um caractere nulo de terminação, consulte RegQueryValueEx.
REG_MULTI_SZ
Uma matriz de cadeias de caracteres Unicode terminadas em nulo. Os aplicativos devem garantir que a matriz seja terminada corretamente por dois caracteres nulos antes de usá-la. Para obter detalhes sobre quando a matriz não é encerrada por dois caracteres nulos, consulte RegQueryValueEx.
REG_SZ
Uma cadeia de caracteres Unicode. Os aplicativos devem garantir que a cadeia de caracteres tenha um caractere nulo de terminação antes de usá-la. Para obter detalhes sobre quando a cadeia de caracteres não tem um caractere nulo de terminação, consulte RegQueryValueEx.
 

O parâmetro pdwValueType poderá ser NULL se um tipo retornado não for necessário.

[out] pbValueData

Um ponteiro para um buffer para receber o valor associado ao parâmetro pwszValueName . O buffer deve ser grande o suficiente para conter o caractere NULL de terminação. Esse parâmetro poderá ser NULL se os dados retornados não forem necessários.

Esse parâmetro também pode ser NULL para localizar o tamanho do buffer para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out] pcbValueData

Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer apontado pelo pbValueData.

Na maioria dos casos, o valor retornado em *pcbValueData inclui o tamanho do caractere NULL de terminação na cadeia de caracteres. Para obter informações sobre situações em que o caractere NULL não está incluído, consulte a seção Comentários de RegQueryValueEx.

Nota Ao processar os dados retornados no buffer, os aplicativos devem usar o tamanho real dos dados retornados. O tamanho real pode ser um pouco menor do que o tamanho do buffer especificado na entrada. (Na entrada, os tamanhos de buffer geralmente são especificados grandes o suficiente para garantir que os maiores dados de saída possíveis se encaixem no buffer.) Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

Valor retornado

Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).

Se a função falhar, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Essa função tem o código de erro a seguir.

Valor Descrição
ERROR_MORE_DATA
Se o buffer especificado pelo parâmetro pbValueData não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada por pcbValueData.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

Funções de suporte do OID