Freigeben über


SCardGetReaderDeviceInstanceIdA-Funktion (winscard.h)

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

Syntax

LONG SCardGetReaderDeviceInstanceIdA(
  [in]            SCARDCONTEXT hContext,
  [in]            LPCSTR       szReaderName,
  [out, optional] LPSTR        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 Lesers empfängt. Wenn dieser Wert NULL ist, ignoriert die Funktion die Pufferlänge, die im Parameter cchDeviceInstanceId angegeben wird, schreibt die Länge des Puffers, die 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 Puffers "szDeviceInstanceId " in Zeichen, einschließlich des NULL-Abschlusszeichens . Wenn die Pufferlänge als SCARD_AUTOALLOCATE angegeben wird, wird der szDeviceInstanceId-Parameter 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 zugeordnet 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. Beim Aufrufen der SCardGetReaderDeviceInstanceId-Funktion innerhalb einer Remotedesktopsitzung schlägt der SCARD_E_READER_UNAVAILABLE Fehlercode fehl.

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 nicht codierungsneutralem Code 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 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winscard.h