OPENCARD_SEARCH_CRITERIAA Struktur (winscard.h)
Die OPENCARD_SEARCH_CRITERIA Struktur wird von der funktion SCardUIDlgSelectCard verwendet, um Karten zu erkennen, die den vom Aufrufer festgelegten Anforderungen entsprechen. Sie können jedoch SCardUIDlgSelectCard- aufrufen, ohne diese Struktur zu verwenden.
Syntax
typedef struct {
DWORD dwStructSize;
LPSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPSTR lpstrCardNames;
DWORD nMaxCardNames;
LPOCNCHKPROC lpfnCheck;
LPOCNCONNPROCA lpfnConnect;
LPOCNDSCPROC lpfnDisconnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
} OPENCARD_SEARCH_CRITERIAA, *POPENCARD_SEARCH_CRITERIAA, *LPOPENCARD_SEARCH_CRITERIAA;
Angehörige
dwStructSize
Die Länge der Struktur in Byte. Darf nicht NULL-sein.
lpstrGroupNames
Ein Zeiger auf einen Puffer, der Zeichenfolgen für den Namen der Null-beendeten Gruppe enthält. Die letzte Zeichenfolge im Puffer muss durch zwei NULL-Zeichen beendet werden. Jede Zeichenfolge ist der Name einer Gruppe von Karten, die in die Suche einbezogen werden soll. Wenn lpstrGroupNamesNULL-ist, wird die Standardgruppe (Scard$DefaultReaders) durchsucht.
nMaxGroupNames
Die maximale Anzahl von Bytes (ANSI-Version) oder Zeichen (Unicode- Version) in der lpstrGroupNames- Zeichenfolge.
rgguidInterfaces
Reserviert für die zukünftige Verwendung. Ein Array von GUIDs, das die erforderlichen Schnittstellen identifiziert. Legen Sie dieses Element auf NULL-fest.
cguidInterfaces
Reserviert für die zukünftige Verwendung. Die Anzahl der Schnittstellen in der rgguidInterfaces Arrays. Legen Sie dieses Element auf NULL-fest.
lpstrCardNames
Ein Zeiger auf einen Puffer, der Null-beendete Kartennamenzeichenfolgen enthält. Die letzte Zeichenfolge im Puffer muss durch zwei NULL-Zeichen beendet werden. Jede Zeichenfolge ist der Name einer Karte, die sich befindet.
nMaxCardNames
Die maximale Anzahl von Bytes (ANSI-Version) oder Zeichen (Unicode-Version) in der lpstrGroupNames Zeichenfolge.
lpfnCheck
Ein Zeiger auf die Kartenüberprüfungsroutine des Anrufers. Wenn keine spezielle Kartenüberprüfung erforderlich ist, ist dieser Zeiger NULL-. Wenn die Karte von der Überprüfungsroutine abgelehnt wird, wird FALSE zurückgegeben, und die Karte wird getrennt. Wenn die Karte von der Überprüfungsroutine akzeptiert wird, wird TRUE zurückgegeben.
Der Prototyp für die Prüfroutine lautet wie folgt.
Boolean Check(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
lpfnConnect
Ein Zeiger auf die Kartenverbindungsroutine des Anrufers. Wenn der Aufrufer eine zusätzliche Verarbeitung durchführen muss, um eine Verbindung mit der Karte herzustellen, wird dieser Funktionszeiger auf die Verbindungsfunktion des Benutzers festgelegt. Wenn die Verbindungsfunktion erfolgreich ist, bleibt die Karte verbunden und initialisiert, und der Kartenziehpunkt wird zurückgegeben.
Der Prototyp für die Verbindungsroutine lautet wie folgt.
Connect(
hSCardContext, // the card context passed in the parameter block
szReader, // the name of the reader
mszCards, // multiple string that contains
// the possible card names in the reader
pvUserData // pointer to user data passed in parameter block
);
lpfnDisconnect
Ein Zeiger auf die Kartentrennroutine des Anrufers.
Der Prototyp für die Disconnect-Routine lautet wie folgt.
Disconnect(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
pvUserData
Ungültiger Zeiger auf Benutzerdaten. Dieser Zeiger wird an den Anrufer in den Routinen "Verbinden", "Überprüfen" und "Trennen" übergeben.
dwShareMode
Wenn lpfnConnect- nicht NULL-ist, werden die dwShareMode- und dwPreferredProtocols-Member ignoriert. Wenn lpfnConnect-NULL- ist und dwShareMode- ungleich Null ist, wird ein interner Aufruf an SCardConnect- ausgeführt, die dwShareMode- und dwPreferredProtocols als Parameter verwendet.
dwPreferredProtocols
Wird für die interne Verbindung verwendet, wie in dwShareModebeschrieben.
Bemerkungen
Anmerkung
Der winscard.h-Header definiert OPENCARD_SEARCH_CRITERIA 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] |
Header- | winscard.h |