SCardConnectA-Funktion (winscard.h)
Die SCardConnect-Funktion stellt (mithilfe eines bestimmten Ressourcen-Manager-Kontexts) eine Verbindung zwischen der aufrufenden Anwendung und einer intelligenten Karte her, die von einem bestimmten Reader enthalten ist. Wenn im angegebenen Reader kein 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 Ressourcen-Manager-Kontext identifiziert. Der Ressourcen-Manager-Kontext wird durch einen vorherigen Aufruf von SCardEstablishContext festgelegt.
[in] szReader
Der Name des Readers, der die Ziel-Karte enthält.
[in] dwShareMode
Ein Flag, das angibt, ob andere Anwendungen Verbindungen mit dem Karte herstellen können.
[in] dwPreferredProtocols
Eine Bitmaske akzeptabler Protokolle für die Verbindung. Mögliche Werte können mit dem OR-Vorgang kombiniert werden.
Wert | Bedeutung |
---|---|
|
T=0 ist ein akzeptables Protokoll. |
|
T=1 ist ein akzeptables Protokoll. |
|
Dieser Parameter darf 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-Steuerungsdirektive mit SCardControl gesendet wird. |
[out] phCard
Ein Handle, das die Verbindung mit dem intelligenten Karte im angegebenen Reader identifiziert.
[out] pdwActiveProtocol
Ein Flag, das das festgelegte 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 im Reader keine Karte vorhanden ist. |
Rückgabewert
Diese Funktion gibt unterschiedliche Werte zurück, je nachdem, ob sie erfolgreich ist oder fehlschlägt.
Rückgabecode | BESCHREIBUNG |
---|---|
|
SCARD_S_SUCCESS. |
|
Ein Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte. |
|
Der Reader konnte keine Verbindung mit dem Karte herstellen. |
Hinweise
Die SCardConnect-Funktion ist eine intelligente Karte- und Lesezugriffsfunktion. 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 ist, das von einem vorherigen Aufruf von SCardEstablishContext empfangen 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).
// ...
Hinweis
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 |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winscard.h |
Bibliothek | Winscard.lib |
DLL | Winscard.dll |