Função SCardGetCardTypeProviderNameW (winscard.h)
A função SCardGetCardTypeProviderName retorna o nome do módulo (biblioteca de vínculo dinâmico) que contém o provedor para um determinado nome de cartão e tipo de provedor.
Sintaxe
LONG SCardGetCardTypeProviderNameW(
[in] SCARDCONTEXT hContext,
[in] LPCWSTR szCardName,
[in] DWORD dwProviderId,
[out] WCHAR *szProvider,
[in, out] LPDWORD pcchProvider
);
Parâmetros
[in] hContext
Identificador que identifica o contexto do gerenciador de recursos. O contexto do gerenciador de recursos pode ser definido por uma chamada anterior para SCardEstablishContext. Esse valor poderá ser NULL se a chamada para SCardGetCardTypeProviderName não for direcionada para um contexto específico.
[in] szCardName
Nome do tipo cartão ao qual esse nome de provedor está associado.
[in] dwProviderId
Identificador para o provedor associado a esse tipo de cartão.
Valor | Significado |
---|---|
|
A função recupera o nome do provedor de serviços primáriodo cartão inteligente como uma cadeia de caracteres GUID. |
|
A função recupera o nome do provedor de serviços criptográficos. |
|
A função recupera o nome do KSP (provedor de armazenamento de chaves) de cartão inteligente. |
|
A função recupera o nome do módulo cartão. |
[out] szProvider
Variável de cadeia de caracteres para receber o nome do provedor após a conclusão bem-sucedida dessa função.
[in, out] pcchProvider
Ponteiro para o valor DWORD . Na entrada, pcchProvider fornece o comprimento do buffer szProvider em caracteres. Se esse valor for SCARD_AUTOALLOCATE, szProvider será convertido em um ponteiro para um ponteiro de bytes e receberá o endereço de um bloco de memória que contém a cadeia de caracteres. Esse bloco de memória deve ser desalocado chamando SCardFreeMemory.
Na saída, esse valor representa o número real de caracteres, incluindo o terminador nulo , na variável szProvider .
Retornar valor
Essa função retorna valores diferentes dependendo se ela é bem-sucedida ou falha.
Código de retorno | Descrição |
---|---|
|
SCARD_S_SUCCESS. |
|
Um código de erro. Para obter mais informações, consulte Valores retornados do cartão inteligente. |
Comentários
Essa função não é redirecionada, mas chamar a função quando dentro de uma sessão de Área de Trabalho Remota não resultará em um erro. Isso significa apenas que o resultado será do computador remoto em vez do computador local.
Após a conclusão bem-sucedida dessa função, o valor em szProvider pode ser usado como o terceiro parâmetro em uma chamada para CryptAcquireContext.
Exemplos
O exemplo a seguir mostra como recuperar o nome do provedor para o contexto de leitor especificado. O exemplo pressupõe que hContext é um identificador válido obtido de uma chamada anterior para a função SCardEstablishContext .
LPTSTR szProvider = NULL;
LPTSTR szCardName = _T("WindowsCard");
DWORD chProvider = SCARD_AUTOALLOCATE;
LONG lReturn = SCARD_S_SUCCESS;
// Retrieve the provider name.
// hContext was set by SCardEstablishContext.
lReturn = SCardGetCardTypeProviderName(hContext,
szCardName,
SCARD_PROVIDER_CSP,
(LPTSTR)&szProvider,
&chProvider);
if (SCARD_S_SUCCESS == lReturn)
{
BOOL fSts = TRUE;
HCRYPTPROV hProv = NULL;
// Acquire a Cryptographic operation context.
fSts = CryptAcquireContext(&hProv,
NULL,
szProvider,
PROV_RSA_FULL,
0);
// Perform Cryptographic operations with smart card
// ...
// Free memory allocated by SCardGetCardTypeProviderName.
lReturn = SCardFreeMemory(hContext, szProvider);
}
Observação
O cabeçalho winscard.h define SCardGetCardTypeProviderName como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winscard.h |
Biblioteca | Winscard.lib |
DLL | Winscard.dll |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de