Freigeben über


SCardGetReaderIconA-Funktion (winscard.h)

Die funktion SCardGetReaderIcon erhält ein Symbol des Smartcardlesers für den Namen eines bestimmten Lesers. Diese Funktion wirkt sich nicht auf den Zustand des Kartenlesers aus.

Syntax

LONG SCardGetReaderIconA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szReaderName,
  [out]     LPBYTE       pbIcon,
  [in, out] LPDWORD      pcbIcon
);

Parameter

[in] hContext

Behandeln Sie dies, um den Ressourcen-Manager-Kontext für die Abfrage zu identifizieren. Sie können den Ressourcen-Manager-Kontext durch einen vorherigen Aufruf der SCardEstablishContext-Funktion festlegen. Dieser Parameter kann nicht NULL-werden.

[in] szReaderName

Lesename. Sie können diesen Wert abrufen, indem Sie die funktion SCardListReaders aufrufen.

[out] pbIcon

Zeigen Sie auf einen Puffer, der ein BLOB des Smartcardlesersymbols enthält, wie aus der Symboldatei gelesen. Wenn dieser Wert NULL-ist, ignoriert die Funktion die pufferlänge, die im parameter pcbIcon angegeben ist, schreibt die Länge des Puffers, der an pcbIcon zurückgegeben würde, wenn dieser Parameter nicht NULL war, und gibt einen Erfolgscode zurück.

[in, out] pcbIcon

Länge des pbIcon Puffers in Zeichen. Dieser Parameter empfängt die tatsächliche Länge des empfangenen Attributs. Wenn die Pufferlänge als SCARD_AUTOALLOCATE angegeben wird, wird pbIcon von einem Zeiger in einen Bytezeiger konvertiert und empfängt die Adresse eines Speicherblocks, der das Attribut enthält. Dieser Speicherblock muss mit der SCardFreeMemory-funktion 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

Das Symbol sollte 256 × 256 Pixel ohne Alphakanal sein.

Beispiele

PBYTE    pbIcon = NULL;
DWORD    cbIcon = SCARD_AUTOALLOCATE;
DWORD    i;
LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";

// Retrieve the reader's icon.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderIcon(hContext,
                         szReaderName,
                         (PBYTE)&pbIcon,
                         &cbIcon);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderIcon - %x\n", lReturn);
    // Take appropriate action.
}
else
{
    // Free the memory when done. 
    lReturn = SCardFreeMemory(hContext, pbIcon);
}

Anmerkung

Der winscard.h-Header definiert SCardGetReaderIcon 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 8 [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2012 [nur Desktop-Apps]
Zielplattform- Fenster
Header- winscard.h