SCardConnectA-Funktion (winscard.h)
Die -Funktion SCardConnect stellt eine Verbindung (mithilfe eines bestimmten Ressourcen-Manager-Kontexts) zwischen der aufrufenden Anwendung und einer Smartcard ein, die von einem bestimmten Reader enthalten sind. Wenn im angegebenen Reader keine Karte vorhanden ist, wird ein Fehler zurückgegeben.
Syntax
LONG SCardConnectA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReader,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[out] LPSCARDHANDLE phCard,
[out] LPDWORD pdwActiveProtocol
);
Parameter
[in] hContext
Ein Handle, das den Kontext des Ressourcen-Managersidentifiziert. Der Ressourcen-Manager-Kontext wird durch einen vorherigen Aufruf von SCardEstablishContextfestgelegt.
[in] szReader
Der Name des Lesers, der die Zielkarte enthält.
[in] dwShareMode
Ein Kennzeichen, das angibt, ob andere Anwendungen Verbindungen mit der Karte bilden können.
[in] dwPreferredProtocols
Eine Bitmaske von akzeptablen Protokollen für die Verbindung. Mögliche Werte können mit dem ODER--Vorgang kombiniert werden.
Wert | Bedeutung |
---|---|
|
T=0 ist ein akzeptables Protokoll. |
|
T=1 ist ein akzeptables Protokoll. |
|
Dieser Parameter kann nur null sein, wenn dwShareMode- auf SCARD_SHARE_DIRECT festgelegt ist. In diesem Fall wird keine Protokollverhandlung von den Treibern ausgeführt, bis eine IOCTL_SMARTCARD_SET_PROTOCOL-Steuerelementdirektive mit SCardControl-gesendet wird. |
[out] phCard
Ein Handle, mit dem die Verbindung mit der Smartcard- im angegebenen Lesegerät identifiziert wird.
[out] pdwActiveProtocol
Ein Flag, das das etablierte aktive Protokoll angibt.
Wert | Bedeutung |
---|---|
|
T=0 ist das aktive Protokoll. |
|
T=1 ist das aktive Protokoll. |
|
SCARD_SHARE_DIRECT wurde angegeben, sodass keine Protokollverhandlung stattgefunden hat. Es ist möglich, dass es keine Karte im Lesegerät gibt. |
Rückgabewert
Diese Funktion gibt unterschiedliche Werte zurück, je nachdem, ob sie erfolgreich ist oder fehlschlägt.
Rückgabecode | Beschreibung |
---|---|
|
SCARD_S_SUCCESS. |
|
Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte. |
|
Der Leser konnte keine Verbindung mit der Karte herstellen. |
Bemerkungen
Die SCardConnect--Funktion ist eine Smartcard- und Lesefunktion Zugriffsfunktion. Weitere Informationen zu anderen Zugriffsfunktionen finden Sie unter Smartcard- und Lesezugriffsfunktionen.
Beispiele
Im folgenden Beispiel wird eine Verbindung mit einem Reader erstellt. Im Beispiel wird davon ausgegangen, dass hContext- ein gültiges Handle vom Typ SCARDCONTEXT, das von einem vorherigen Aufruf an SCardEstablishContextempfangen wurde.
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).
// ...
Anmerkung
Der winscard.h-Header definiert SCardConnect als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winscard.h |
Library | Winscard.lib |
DLL- | Winscard.dll |