SCardListReadersA-Funktion (winscard.h)
Die SCardListReaders--Funktion stellt die Liste der Leser innerhalb einer Gruppe benannter Lesergruppenbereit, wodurch Duplikate eliminiert werden.
Der Anrufer liefert eine Liste der Lesergruppen und empfängt die Liste der Leser innerhalb der benannten Gruppen. Nicht erkannte Gruppennamen werden ignoriert. Diese Funktion gibt nur Leser innerhalb der benannten Gruppen zurück, die derzeit an das System angefügt sind und zur Verwendung verfügbar sind.
Syntax
LONG SCardListReadersA(
[in] SCARDCONTEXT hContext,
[in, optional] LPCSTR mszGroups,
[out] LPSTR mszReaders,
[in, out] LPDWORD pcchReaders
);
Parameter
[in] hContext
Behandeln Sie die Ressourcen-Manager-Kontext für die Abfrage. Der Ressourcen-Manager-Kontext kann durch einen vorherigen Aufruf von SCardEstablishContextfestgelegt werden.
Wenn dieser Parameter auf NULL-festgelegt ist, ist die Suche nach Lesern nicht auf einen Kontext beschränkt.
[in, optional] mszGroups
Namen der Lesergruppen, die für das System definiert sind, als Multizeichenfolge. Verwenden Sie einen NULL- Wert, um alle Leser im System auflisten (d. a. die Gruppe "SCard$AllReaders").
[out] mszReaders
Mehrere Zeichenfolgen, die die Kartenleser innerhalb der bereitgestellten Lesergruppen auflisten. Wenn dieser Wert NULL-ist, ignoriert SCardListReaders die in pcchReadersbereitgestellte Pufferlänge ignoriert, schreibt die Länge des Puffers, der zurückgegeben wurde, wenn dieser Parameter nicht NULL-pcchReaderswurde und einen Erfolgscode zurückgibt.
[in, out] pcchReaders
Länge des mszReaders Puffer in Zeichen. Dieser Parameter empfängt die tatsächliche Länge der Mehrzeichenfolgenstruktur, einschließlich aller nachfolgenden NULL- Zeichen. Wenn die Pufferlänge als SCARD_AUTOALLOCATE angegeben wird, wird mszReaders in einen Zeiger in einen Bytezeiger konvertiert und empfängt die Adresse eines Speicherblocks, der die Mehrzeichenfolgenstruktur enthält. Dieser Speicherblock muss mit SCardFreeMemory-behandelt werden.
Rückgabewert
Diese Funktion gibt unterschiedliche Werte zurück, je nachdem, ob sie erfolgreich ist oder fehlschlägt.
Zurückgeben von Code/Wert | Beschreibung |
---|---|
|
SCARD_S_SUCCESS |
|
SCARD_E_NO_READERS_AVAILABLE |
|
SCARD_E_READER_UNAVAILABLE |
|
Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte. |
Bemerkungen
Die SCardListReaders Funktion ist eine Datenbankabfragefunktion. Weitere Informationen zu anderen Datenbankabfragefunktionen finden Sie unter SmartCard-Datenbankabfragefunktionen.
Beispiele
Das folgende Beispiel zeigt, wie die Leser aufgelistet werden.
LPTSTR pmszReaders = NULL;
LPTSTR pReader;
LONG lReturn, lReturn2;
DWORD cch = SCARD_AUTOALLOCATE;
// Retrieve the list the readers.
// hSC was set by a previous call to SCardEstablishContext.
lReturn = SCardListReaders(hSC,
NULL,
(LPTSTR)&pmszReaders,
&cch );
switch( lReturn )
{
case SCARD_E_NO_READERS_AVAILABLE:
printf("Reader is not in groups.\n");
// Take appropriate action.
// ...
break;
case SCARD_S_SUCCESS:
// Do something with the multi string of readers.
// Output the values.
// A double-null terminates the list of values.
pReader = pmszReaders;
while ( '\0' != *pReader )
{
// Display the value.
printf("Reader: %S\n", pReader );
// Advance to the next value.
pReader = pReader + wcslen((wchar_t *)pReader) + 1;
}
// Free the memory.
lReturn2 = SCardFreeMemory( hSC,
pmszReaders );
if ( SCARD_S_SUCCESS != lReturn2 )
printf("Failed SCardFreeMemory\n");
break;
default:
printf("Failed SCardListReaders\n");
// Take appropriate action.
// ...
break;
}
Anmerkung
Der winscard.h-Header definiert SCardListReaders 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 |