Freigeben über


SCardListInterfacesA-Funktion (winscard.h)

Die SCardListInterfaces--Funktion stellt eine Liste der Schnittstellen bereit, die von einer bestimmten Karte bereitgestellt werden.

Der Aufrufer stellt den Namen einer Smartcard bereit, die zuvor im Subsystem eingeführt wurde, und empfängt die Liste der Schnittstellen, die von der Karte unterstützt werden.

Syntax

LONG SCardListInterfacesA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szCard,
  [out]     LPGUID       pguidInterfaces,
  [in, out] LPDWORD      pcguidInterfaces
);

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. Dieser Parameter kann nicht NULL-werden.

[in] szCard

Name der Smartcard, die bereits im Smartcard-Subsystemeingeführt wurde.

[out] pguidInterfaces

Array von Schnittstellenbezeichnern (GUIDs), die die von der Smartcard unterstützten Schnittstellen angeben. Wenn dieser Wert NULL-ist, ignoriert SCardListInterfaces die arraylänge, die in pcguidInterfacesangegeben wird, und gibt die Größe des Arrays zurück, das zurückgegeben wurde, wenn dieser Parameter nicht NULL-pcguidInterfaces und einen Erfolgscode zurückgegeben wurde.

[in, out] pcguidInterfaces

Größe der pcguidInterfaces Arrays und empfängt die tatsächliche Größe des zurückgegebenen Arrays. Wenn die Arraygröße als SCARD_AUTOALLOCATE angegeben wird, wird pcguidInterfaces in einen Zeiger auf einen GUID-Zeiger konvertiert und empfängt die Adresse eines Speicherblocks, der das Array 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.

Rückgabecode Beschreibung
Erfolg
SCARD_S_SUCCESS.
Fehler
Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.

Bemerkungen

Diese Funktion wird nicht umgeleitet, aber das Aufrufen der Funktion beim Versuch einer Remotedesktopsitzung führt nicht zu einem Fehler. Dies bedeutet nur, dass das Ergebnis vom Remotecomputer statt vom lokalen Computer stammt.

Die SCardListInterfaces Funktion ist eine Datenbankabfragefunktion. Weitere Informationen zu anderen Datenbankabfragefunktionen finden Sie unter SmartCard-Datenbankabfragefunktionen.

Beispiele

Das folgende Beispiel zeigt das Auflisten der Schnittstellen für eine Smartcard.

LPGUID          pGuids = NULL;
LONG            lReturn;
DWORD           cGuid = SCARD_AUTOALLOCATE;

// Retrieve the list of interfaces.
lReturn = SCardListInterfaces(NULL,
                              (LPCSTR) "MyCard",
                              (LPGUID)&pGuids,
                              &cGuid );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardListInterfaces\n");
    exit(1);   // Or other appropriate action
}

if ( 0 != cGuid )
{
    // Do something with the array of Guids.
    // Remember to free pGuids when done (by SCardFreeMemory).
    // ...
}

Anmerkung

Der winscard.h-Header definiert SCardListInterfaces als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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

Siehe auch

SCardEstablishContext-

SCardFreeMemory-

SCardGetProviderId-

SCardListCards-

SCardListReaderGroups

SCardListReaders-