Funzione SCardControl (winscard.h)

La funzione SCardControl consente di controllare direttamente il lettore. È possibile chiamarlo in qualsiasi momento dopo la corretta chiamata a SCardConnect e prima di una chiamata a SCardDisconnect. L'effetto sullo stato del lettore dipende dal codice del controllo.

Sintassi

LONG SCardControl(
  [in]  SCARDHANDLE hCard,
  [in]  DWORD       dwControlCode,
  [in]  LPCVOID     lpInBuffer,
  [in]  DWORD       cbInBufferSize,
  [out] LPVOID      lpOutBuffer,
  [in]  DWORD       cbOutBufferSize,
  [out] LPDWORD     lpBytesReturned
);

Parametri

[in] hCard

Valore di riferimento restituito da SCardConnect.

[in] dwControlCode

Codice di controllo per l'operazione. Questo valore identifica l'operazione specifica da eseguire.

[in] lpInBuffer

Puntatore a un buffer contenente i dati necessari per eseguire l'operazione. Questo parametro può essere NULL se il parametro dwControlCode specifica un'operazione che non richiede dati di input.

[in] cbInBufferSize

Dimensioni, in byte, del buffer a cui punta lpInBuffer.

[out] lpOutBuffer

Puntatore a un buffer che riceve i dati di output dell'operazione. Questo parametro può essere NULL se il parametro dwControlCode specifica un'operazione che non produce dati di output.

[in] cbOutBufferSize

Dimensioni, in byte, del buffer a cui punta lpOutBuffer.

[out] lpBytesReturned

Puntatore a un DWORD che riceve le dimensioni, in byte, dei dati archiviati nel buffer a cui punta lpOutBuffer.

Valore restituito

Questa funzione restituisce valori diversi a seconda che abbia esito positivo o negativo.

Codice restituito Descrizione
Success
SCARD_S_SUCCESS.
Operazioni non riuscite
Codice di errore. Per altre informazioni, vedere Valori restituiti della smart card.

Commenti

La funzione SCardControl è una funzione di accesso diretto alla scheda. Per altre informazioni su altre funzioni di accesso diretto, vedere Funzioni di accesso diretto alle schede.

Esempio

Nell'esempio seguente viene visualizzato un codice di controllo. L'esempio presuppone che hCardHandle sia un handle valido ricevuto da una chiamata precedente a SCardConnect e che dwControlCode sia una variabile di tipo DWORD inizializzata in precedenza in un codice di controllo valido. Questo particolare codice di controllo non richiede dati di input e non prevede dati di output.


lReturn = SCardControl( hCardHandle,
                        dwControlCode,
                        NULL,
                        0,
                        NULL,
                        0,
                        0 );
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardControl\n");

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winscard.h
Libreria Winscard.lib
DLL Winscard.dll

Vedi anche

SCardConnect

SCardDisconnect