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 |
---|---|
|
SCARD_S_SUCCESS. |
|
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 |