Função SCardConnectA (winscard.h)
A função SCardConnect
Sintaxe
LONG SCardConnectA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReader,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[out] LPSCARDHANDLE phCard,
[out] LPDWORD pdwActiveProtocol
);
Parâmetros
[in] hContext
Um identificador que identifica ode contexto do gerenciador de recursos
[in] szReader
O nome do leitor que contém o cartão de destino.
[in] dwShareMode
Um sinalizador que indica se outros aplicativos podem formar conexões com o cartão.
[in] dwPreferredProtocols
Uma máscara de bits de protocolos aceitáveis para a conexão. Os valores possíveis podem ser combinados com a operação OR.
[out] phCard
Um identificador que identifica a conexão com o cartão inteligente no leitor designado.
[out] pdwActiveProtocol
Um sinalizador que indica o protocolo ativo estabelecido.
Valor | Significado |
---|---|
|
T=0 é o protocolo ativo. |
|
T=1 é o protocolo ativo. |
|
SCARD_SHARE_DIRECT foi especificado, de modo que nenhuma negociação de protocolo tenha ocorrido. É possível que não haja cartão no leitor. |
Valor de retorno
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 de retorno de cartão inteligente. |
|
O leitor não pôde se conectar ao cartão. |
Observações
A função SCardConnect
Exemplos
O exemplo a seguir cria uma conexão com um leitor. O exemplo pressupõe que hContext é um identificador válido do tipo SCARDCONTEXT recebido de uma chamada anterior para SCardEstablishContext.
SCARDHANDLE hCardHandle;
LONG lReturn;
DWORD dwAP;
lReturn = SCardConnect( hContext,
(LPCTSTR)"Rainbow Technologies SCR3531 0",
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
&hCardHandle,
&dwAP );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardConnect\n");
exit(1); // Or other appropriate action.
}
// Use the connection.
// Display the active protocol.
switch ( dwAP )
{
case SCARD_PROTOCOL_T0:
printf("Active protocol T0\n");
break;
case SCARD_PROTOCOL_T1:
printf("Active protocol T1\n");
break;
case SCARD_PROTOCOL_UNDEFINED:
default:
printf("Active protocol unnegotiated or unknown\n");
break;
}
// Remember to disconnect (by calling SCardDisconnect).
// ...
Nota
O cabeçalho winscard.h define SCardConnect 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 |