Função SCardControl (winscard.h)
A função SCardControl fornece controle direto do leitor. Você pode chamá-lo a qualquer momento após uma chamada bem-sucedida para SCardConnect e antes de uma chamada bem-sucedida para SCardDisconnect. O efeito sobre o estado do leitor depende do código de controle.
Sintaxe
LONG SCardControl(
[in] SCARDHANDLE hCard,
[in] DWORD dwControlCode,
[in] LPCVOID lpInBuffer,
[in] DWORD cbInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD cbOutBufferSize,
[out] LPDWORD lpBytesReturned
);
Parâmetros
[in] hCard
Valor de referência retornado de SCardConnect.
[in] dwControlCode
Código de controle para a operação. Esse valor identifica a operação específica a ser executada.
[in] lpInBuffer
Ponteiro para um buffer que contém os dados necessários para executar a operação. Esse parâmetro poderá ser NULL se o parâmetro dwControlCode especificar uma operação que não exija dados de entrada.
[in] cbInBufferSize
Tamanho, em bytes, do buffer apontado por lpInBuffer.
[out] lpOutBuffer
Ponteiro para um buffer que recebe os dados de saída da operação. Esse parâmetro poderá ser NULL se o parâmetro dwControlCode especificar uma operação que não produz dados de saída.
[in] cbOutBufferSize
Tamanho, em bytes, do buffer apontado por lpOutBuffer.
[out] lpBytesReturned
Ponteiro para um DWORD que recebe o tamanho, em bytes, dos dados armazenados no buffer apontado por lpOutBuffer.
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 de cartão inteligente. |
Comentários
A função SCardControl é uma função de acesso cartão direta. Para obter mais informações sobre outras funções de acesso direto, consulte Funções de acesso a cartão direto.
Exemplos
O exemplo a seguir emite um código de controle. O exemplo pressupõe que hCardHandle é um identificador válido recebido de uma chamada anterior para SCardConnect e que dwControlCode é uma variável do tipo DWORD inicializada anteriormente para um código de controle válido. Esse código de controle específico não requer dados de entrada e não espera dados de saída.
lReturn = SCardControl( hCardHandle,
dwControlCode,
NULL,
0,
NULL,
0,
0 );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardControl\n");
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 |