Compartilhar via


Função SCardGetProviderIdA (winscard.h)

A função SCardGetProviderId retorna o identificador (GUID) do provedor de serviços primário para um determinado cartão.

O chamador fornece o nome de um cartão inteligente (introduzido anteriormente no sistema) e recebe o identificador registrado do GUID do provedor de serviços primário, se houver.

Sintaxe

LONG SCardGetProviderIdA(
  [in]  SCARDCONTEXT hContext,
  [in]  LPCSTR       szCard,
  [out] LPGUID       pguidProviderId
);

Parâmetros

[in] hContext

Identificador que identifica o contexto do gerenciador de recursos para a consulta. O contexto do gerenciador de recursos pode ser definido por uma chamada anterior para SCardEstablishContext. Esse parâmetro não pode ser NULL.

[in] szCard

Nome do cartão definido para o sistema.

[out] pguidProviderId

Identificador (GUID) do provedor de serviços primário. Esse provedor pode ser ativado usando COM e fornecerá acesso a outros serviços no cartão.

Valor retornado

Essa função retorna valores diferentes dependendo se ela é bem-sucedida ou falha.

Código de retorno Descrição
Êxito
SCARD_S_SUCCESS.
Falha
Um código de erro. Para obter mais informações, consulte Valores retornados de 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.

A função SCardGetProviderId é uma função de consulta de banco de dados. Para obter mais informações sobre outras funções de consulta de banco de dados, consulte Funções de consulta de banco de dados de cartão inteligente.

Exemplos

O exemplo a seguir mostra como obter a ID do provedor para o cartão especificado. O exemplo pressupõe que hContext é um identificador válido obtido de uma chamada anterior para a função SCardEstablishContext e que "MyCardName" foi introduzido por uma chamada anterior à função SCardIntroduceCardType .

GUID    guidProv;
LONG    lReturn;

lReturn = SCardGetProviderId(hContext, 
                             L"MyCardName",
                             &guidProv);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardGetProviderId - %x\n", lReturn);
else
{
    // Use the provider GUID as needed.
    // ...
}

Observação

O cabeçalho winscard.h define SCardGetProviderId 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

   
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

Scardestablishcontext

SCardListCards

SCardListInterfaces

SCardListReaderGroups

SCardListReaders