Função CryptGetOIDFunctionAddress (wincrypt.h)

A função CryptGetOIDFunctionAddress pesquisa a lista de funções registradas e instaladas para uma correspondência de tipo de codificação e identificador de objeto (OID). Se uma correspondência for encontrada, a DLL que contém a função será carregada, se necessário. Se uma correspondência for encontrada, um ponteiro para o endereço da função e um ponteiro para o identificador de função também serão retornados. A contagem de referência no identificador de função é incrementada.

Sintaxe

BOOL CryptGetOIDFunctionAddress(
  [in]  HCRYPTOIDFUNCSET  hFuncSet,
  [in]  DWORD             dwEncodingType,
  [in]  LPCSTR            pszOID,
  [in]  DWORD             dwFlags,
  [out] void              **ppvFuncAddr,
  [out] HCRYPTOIDFUNCADDR *phFuncAddr
);

Parâmetros

[in] hFuncSet

O identificador do conjunto de funções obtido anteriormente de uma chamada para a função CryptInitOIDFunctionSet .

[in] dwEncodingType

Especifica o tipo de codificação a ser correspondido. Atualmente, apenas X509_ASN_ENCODING e PKCS_7_ASN_ENCODING são 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

Para funções que não usam um tipo de codificação, defina esse parâmetro como zero.

[in] pszOID

Se a palavra de alta ordem do OID não for zero, pszOID será um ponteiro para uma cadeia de caracteres OID como "2.5.29.1" ou uma cadeia de caracteres ASCII , 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. Esse OID resultante é mapeado para a função que foi instalada ou registrada com o mesmo OID.

[in] dwFlags

Esse parâmetro pode ser o valor a seguir.

Valor Significado
CRYPT_GET_INSTALLED_OID_FUNC_FLAG
Pesquisa apenas a lista instalada de funções.

[out] ppvFuncAddr

Um ponteiro para um ponteiro para um endereço de função. Se uma correspondência for encontrada, ppvFuncAddr apontará para o endereço da função.

[out] phFuncAddr

Se uma correspondência for encontrada, phFuncAddr apontará para o identificador de função. A contagem de referência para o identificador é incrementada. Quando terminar de usar o identificador, solte o identificador chamando a função CryptFreeOIDFunctionAddress .

Nota Por padrão, as listas de funções registradas e instaladas são pesquisadas. Para pesquisar apenas a lista instalada de funções, defina CRYPT_GET_INSTALLED_OID_FUNC_FLAG. Esse sinalizador seria definido por uma função registrada para obter o endereço de uma função pré-instalada que estava substituindo. Por exemplo, a função registrada pode lidar com um novo caso especial e chamar a função pré-instalada para lidar com os casos restantes.
 

Valor retornado

Se a função for bem-sucedida e uma correspondência for encontrada, a função retornará diferente de zero (TRUE).

Se a função falhar ou nenhuma correspondência for encontrada, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Comentários

Você pode chamar CryptGetOIDFunctionAddress com o argumento pszOID definido como CMSG_DEFAULT_INSTALLABLE_FUNC_OID para obter a função instalável padrão para as seguintes funções de retorno de chamada.

Para recuperar as funções padrão, defina dwEncodingType como uma combinação OR bit a bit dos seguintes tipos de codificação.

CRYPT_ASN_ENCODINGX509_ASN_ENCODING

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