Funzione SCardConnectW (winscard.h)
La funzione di SCardConnect
Sintassi
LONG SCardConnectW(
[in] SCARDCONTEXT hContext,
[in] LPCWSTR szReader,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[out] LPSCARDHANDLE phCard,
[out] LPDWORD pdwActiveProtocol
);
Parametri
[in] hContext
Handle che identifica il contesto di gestione risorse . Il contesto di Resource Manager viene impostato da una chiamata precedente a SCardEstablishContext.
[in] szReader
Nome del lettore che contiene la scheda di destinazione.
[in] dwShareMode
Flag che indica se altre applicazioni possono formare connessioni alla scheda.
[in] dwPreferredProtocols
Maschera di bit di protocolli accettabili per la connessione. I valori possibili possono essere combinati con l'operazione di OR.
Valore | Significato |
---|---|
|
T=0 è un protocollo accettabile. |
|
T=1 è un protocollo accettabile. |
|
Questo parametro può essere zero solo se dwShareMode è impostato su SCARD_SHARE_DIRECT. In questo caso, nessuna negoziazione del protocollo verrà eseguita dai driver finché non viene inviata una direttiva di controllo IOCTL_SMARTCARD_SET_PROTOCOL con SCardControl. |
[out] phCard
Handle che identifica la connessione al smart card nel lettore designato.
[out] pdwActiveProtocol
Flag che indica il protocollo attivo stabilito.
Valore | Significato |
---|---|
|
T=0 è il protocollo attivo. |
|
T=1 è il protocollo attivo. |
|
SCARD_SHARE_DIRECT è stato specificato, in modo che non si sia verificata alcuna negoziazione del protocollo. È possibile che non vi sia alcuna scheda nel lettore. |
Valore restituito
Questa funzione restituisce valori diversi a seconda che abbia esito positivo o negativo.
Codice restituito | Descrizione |
---|---|
|
SCARD_S_SUCCESS. |
|
Codice di errore. Per altre informazioni, vedere valori restituiti della smart card. |
|
Il lettore non è riuscito a connettersi alla scheda. |
Osservazioni
La funzione SCardConnect
Esempi
Nell'esempio seguente viene creata una connessione a un lettore. Nell'esempio si presuppone che hContext sia un handle di tipo valido SCARDCONTEXT ricevuto da una chiamata precedente a 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
L'intestazione winscard.h definisce SCardConnect come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winscard.h |
libreria |
Winscard.lib |
dll | Winscard.dll |