Freigeben über


SCardIntroduceReaderA-Funktion (winscard.h)

Die funktion SCardIntroduceReader führt einen neuen Namen für eine vorhandene SmartcardReaderein.

Hinweis Smartcardleser automatisch in das System eingeführt werden; Das Setupprogramm eines Smartcardlesers kann auch einen Smartcardleser in das System einführen.
 

Syntax

LONG SCardIntroduceReaderA(
  [in] SCARDCONTEXT hContext,
  [in] LPCSTR       szReaderName,
  [in] LPCSTR       szDeviceName
);

Parameter

[in] hContext

Behandeln Sie das Ressourcen-Manager-Kontext. Der Ressourcen-Manager-Kontext wird durch einen vorherigen Aufruf von SCardEstablishContextfestgelegt. Dieser Parameter kann nicht NULL-werden.

[in] szReaderName

Anzeigename, der dem Leser zugewiesen werden soll.

[in] szDeviceName

Systemname des Smartcardlesers, z. B. "MyReader 01".

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

Alle auf dem System installierten Leser werden automatisch mit ihrem Systemnamen eingeführt. In der Regel wird SCardIntroduceReader- nur aufgerufen, um den Namen eines vorhandenen Readers zu ändern.

Die SCardIntroduceReader Funktion ist eine Datenbankverwaltungsfunktion. Weitere Informationen zu anderen Datenbankverwaltungsfunktionen finden Sie unter SmartCard-Datenbankverwaltungsfunktionen.

Um einen Reader zu entfernen, verwenden Sie SCardForgetReader.

Beispiele

Das folgende Beispiel zeigt die Einführung eines Smartcardlesers.

// This example renames the reader name.
// This is a two-step process (first add the new
// name, then forget the old name).
LPBYTE    pbAttr = NULL;
DWORD     cByte = SCARD_AUTOALLOCATE;
LONG      lReturn;

// Step 1: Add the new reader name.
// The device name attribute is a necessary value.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardGetAttrib(hCardHandle,
                         SCARD_ATTR_DEVICE_SYSTEM_NAME,
                         (LPBYTE)&pbAttr,
                         &cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetAttrib\n");
    exit(1);  // Or other error action
}
// Add the reader name.
// hContext was set earlier by SCardEstablishContext.
lReturn = SCardIntroduceReader(hContext,
                               TEXT("My New Reader Name"),
                               (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardIntroduceReader\n");
    exit(1);  // Or other error action
}

// Step 2: Forget the old reader name.
lReturn = SCardForgetReader(hContext,
                            (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardForgetReader\n");
    exit(1);  // Or other error action
}

// Free the memory when done.
lReturn = SCardFreeMemory( hContext, pbAttr );

Anmerkung

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

Siehe auch

SCardEstablishContext-

SCardForgetReader-

SCardIntroduceCardType

SCardIntroduceReaderGroup-