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