Partilhar via


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, nome da função e 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 um cadeia de caracteres ASCII nula, como "arquivo". Se a palavra de alta ordem do OID for zero, a palavra de ordem baixa especifica 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 esse 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 exibidas 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á-lo. 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á-lo. Para obter detalhes sobre quando a cadeia de caracteres não tem um caractere nulo de terminação, consulte RegQueryValueEx.
 

O parâmetro pdwValueType pode 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 de NULL terminação. Esse parâmetro pode 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 dede 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 da terminação caractere nulo 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.

Observação Ao processar os dados retornados no buffer, os aplicativos devem usar o tamanho real dos dados retornados. O tamanho real pode ser ligeiramente 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 ajustem ao 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 de retorno

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

Requisito Valor
de cliente com suporte mínimo Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho wincrypt.h
biblioteca Crypt32.lib
de DLL Crypt32.dll

Consulte também

Funções de suporte OID