Compartilhar via


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
Êxito
SCARD_S_SUCCESS.
Falha
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

Confira também

Scardconnect

SCardDisconnect