SCardListInterfacesA-Funktion (winscard.h)

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

Der Aufrufer gibt den Namen einer intelligenten Karte an, die zuvor in das Subsystem eingeführt wurde, und empfängt die Liste der Schnittstellen, die vom Karte unterstützt werden.

Syntax

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

Parameter

[in] hContext

Handle, das den Ressourcen-Manager-Kontext für die Abfrage identifiziert. Der Resource Manager-Kontext kann durch einen vorherigen Aufruf von SCardEstablishContext festgelegt werden. Dieser Parameter darf nicht NULL sein.

[in] szCard

Name der smart Karte, die bereits in das Smart Karte-Subsystem eingeführt wurde.

[out] pguidInterfaces

Array von Schnittstellenbezeichnern (GUIDs), die die vom intelligenten Karte unterstützten Schnittstellen angeben. Wenn dieser Wert NULL ist, ignoriert SCardListInterfaces die in pcguidInterfaces angegebene Arraylänge und gibt die Größe des Arrays zurück, das zurückgegeben worden wäre, wenn dieser Parameter nicht NULL für pcguidInterfaces und einen Erfolgscode gewesen wäre.

[in, out] pcguidInterfaces

Größe des 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 aufgehoben werden.

Rückgabewert

Diese Funktion gibt unterschiedliche Werte zurück, je nachdem, ob sie erfolgreich ist oder fehlschlägt.

Rückgabecode BESCHREIBUNG
Erfolgreich
SCARD_S_SUCCESS.
Fehler
Ein Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.

Hinweise

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 nicht vom lokalen Computer, sondern vom Remotecomputer stammt.

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

Beispiele

Das folgende Beispiel zeigt die Auflistung der Schnittstellen für eine intelligente Karte.

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).
    // ...
}

Hinweis

Der winscard.h-Header definiert SCardListInterfaces 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

   
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

Weitere Informationen

SCardEstablishContext

SCardFreeMemory

SCardGetProviderId

SCardListCards

SCardListReaderGroups

SCardListReaders