Freigeben über


SCardGetReaderDeviceInstanceIdW-Funktion (winscard.h)

Die Funktion SCardGetReaderDeviceInstanceId ruft das Gerät instance Bezeichner des Karte-Readers für den angegebenen Readernamen ab. Diese Funktion wirkt sich nicht auf den Zustand des Readers aus.

Syntax

LONG SCardGetReaderDeviceInstanceIdW(
  [in]            SCARDCONTEXT hContext,
  [in]            LPCWSTR      szReaderName,
  [out, optional] LPWSTR       szDeviceInstanceId,
  [in, out]       LPDWORD      pcchDeviceInstanceId
);

Parameter

[in] hContext

Handle, das den Ressourcen-Manager-Kontext für die Abfrage identifiziert. Sie können den Ressourcen-Manager-Kontext durch einen vorherigen Aufruf der SCardEstablishContext-Funktion festlegen. Dieser Parameter darf nicht NULL sein.

[in] szReaderName

Lesername. Sie können diesen Wert abrufen, indem Sie die SCardListReaders-Funktion aufrufen.

[out, optional] szDeviceInstanceId

Puffer, der das Gerät instance ID des Readers empfängt. Wenn dieser Wert NULL ist, ignoriert die Funktion die im cchDeviceInstanceId-Parameter angegebene Pufferlänge, schreibt die Länge des Puffers, der zurückgegeben worden wäre, wenn dieser Parameter nicht NULL gewesen wäre, in cchDeviceInstanceId und gibt einen Erfolgscode zurück.

[in, out] pcchDeviceInstanceId

Länge des szDeviceInstanceId-Puffers in Zeichen, einschließlich des NULL-Abschlusszeichens . Wenn die Pufferlänge als SCARD_AUTOALLOCATE angegeben ist, wird der parameter szDeviceInstanceId in einen Zeiger auf einen Bytezeiger konvertiert und empfängt die Adresse eines Speicherblocks, der die instance ID enthält. Dieser Speicherblock muss mit der SCardFreeMemory-Funktion 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. Das Aufrufen der SCardGetReaderDeviceInstanceId-Funktion , wenn innerhalb einer Remotedesktopsitzung mit dem SCARD_E_READER_UNAVAILABLE Fehlercode fehlschlägt.

Beispiele


LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";
WCHAR    szDeviceInstanceId[256];
DWORD    cchDeviceInstanceId = 256;

// Retrieve the reader's device instance ID.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderDeviceInstanceId (hContext,
                         szReaderName,
                         szDeviceInstanceId,
                         &cchDeviceInstanceId);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderDeviceInstanceId - %x\n", lReturn);
    // Take appropriate action.
}



Hinweis

Der winscard.h-Header definiert SCardGetReaderDeviceInstanceId 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
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winscard.h