Compartilhar via


Função SCardListInterfacesA (winscard.h)

A função SCardListInterfaces fornece uma lista de interfaces fornecidas por um determinado cartão.

O chamador fornece o nome de um cartão inteligente introduzido anteriormente no subsistema e recebe a lista de interfaces compatíveis com o cartão.

Sintaxe

LONG SCardListInterfacesA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szCard,
  [out]     LPGUID       pguidInterfaces,
  [in, out] LPDWORD      pcguidInterfaces
);

Parâmetros

[in] hContext

Identificador que identifica o de 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 inteligente já introduzido no subsistema de cartão inteligente .

[out] pguidInterfaces

Matriz de GUIDs (identificadores de interface) que indicam as interfaces compatíveis com o cartão inteligente. Se esse valor for NULL, SCardListInterfaces ignorará o comprimento da matriz fornecido em pcguidInterfaces, retornando o tamanho da matriz que teria sido retornada se esse parâmetro não tivesse sido NULL para pcguidInterfaces e um código de êxito.

[in, out] pcguidInterfaces

Tamanho do pcguidInterfaces matriz e recebe o tamanho real da matriz retornada. Se o tamanho da matriz for especificado como SCARD_AUTOALLOCATE, pcguidInterfaces será convertido em um ponteiro para um ponteiro GUID e receberá o endereço de um bloco de memória que contém a matriz. Esse bloco de memória deve ser desalocado com SCardFreeMemory.

Valor de retorno

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

Código de retorno Descrição
de sucesso do
SCARD_S_SUCCESS.
de falha do
Um código de erro. Para obter mais informações, consulte valores de retorno de cartão inteligente.

Observações

Essa função não é redirecionada, mas chamar a função ao tentar 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 SCardListInterfaces é 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 a listagem das interfaces de um cartão inteligente.

LPGUID          pGuids = NULL;
LONG            lReturn;
DWORD           cGuid = SCARD_AUTOALLOCATE;

// Retrieve the list of interfaces.
lReturn = SCardListInterfaces(NULL,
                              (LPCSTR) "MyCard",
                              (LPGUID)&pGuids,
                              &cGuid );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardListInterfaces\n");
    exit(1);   // Or other appropriate action
}

if ( 0 != cGuid )
{
    // Do something with the array of Guids.
    // Remember to free pGuids when done (by SCardFreeMemory).
    // ...
}

Nota

O cabeçalho winscard.h define SCardListInterfaces como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

SCardEstablishContext

SCardFreeMemory

SCardGetProviderId

SCardListCards

SCardListReaderGroups

SCardListReaders