Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SCardGetReaderDeviceInstanceId Funktion ruft den Geräteinstanzbezeichner des Kartenlesers für den angegebenen Lesernamen ab. Diese Funktion wirkt sich nicht auf den Status des Readers aus.
Syntax
LONG SCardGetReaderDeviceInstanceIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReaderName,
[out, optional] LPSTR szDeviceInstanceId,
[in, out] LPDWORD pcchDeviceInstanceId
);
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, optional] szDeviceInstanceId
Puffer, der die Geräteinstanz-ID des Readers empfängt. Wenn dieser Wert NULL-ist, ignoriert die Funktion die pufferlänge, die in cchDeviceInstanceId Parameter angegeben wird, schreibt die Länge des Puffers, der zurückgegeben wurde, wenn dieser Parameter nicht NULLcchDeviceInstanceIdwurde und einen Erfolgscode zurückgibt.
[in, out] pcchDeviceInstanceId
Länge des szDeviceInstanceId- Puffers in Zeichen, einschließlich des NULL Terminator. 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 Instanz-ID 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 |
|---|---|
|
SCARD_S_SUCCESS. |
|
Fehlercode. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte. |
Bemerkungen
Diese Funktion wird nicht umgeleitet. Beim Aufrufen der SCardGetReaderDeviceInstanceId- Funktion in einer Remotedesktopsitzung tritt ein Fehler mit dem SCARD_E_READER_UNAVAILABLE Fehlercode auf.
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.
}
Anmerkung
Der winscard.h-Header definiert SCardGetReaderDeviceInstanceId 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 8 [nur Desktop-Apps] |
| mindestens unterstützte Server- | Windows Server 2012 [nur Desktop-Apps] |
| Zielplattform- | Fenster |
| Header- | winscard.h |