Funzione SCardGetReaderDeviceInstanceIdA (winscard.h)
La funzione SCardGetReaderDeviceInstanceId ottiene l'identificatore dell'istanza del dispositivo del lettore di schede per il nome lettore specificato. Questa funzione non influisce sullo stato del lettore.
Sintassi
LONG SCardGetReaderDeviceInstanceIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReaderName,
[out, optional] LPSTR szDeviceInstanceId,
[in, out] LPDWORD pcchDeviceInstanceId
);
Parametri
[in] hContext
Handle che identifica il contesto di Resource Manager per la query. È possibile impostare il contesto di Resource Manager tramite una chiamata precedente alla funzione SCardEstablishContext . Questo parametro non può essere NULL.
[in] szReaderName
Nome lettore. È possibile ottenere questo valore chiamando la funzione SCardListReaders .
[out, optional] szDeviceInstanceId
Buffer che riceve l'ID istanza del dispositivo del lettore. Se questo valore è NULL, la funzione ignora la lunghezza del buffer fornita nel parametro cchDeviceInstanceId , scrive la lunghezza del buffer restituito se questo parametro non era stato NULL a cchDeviceInstanceId e restituisce un codice di esito positivo.
[in, out] pcchDeviceInstanceId
Lunghezza, in caratteri, del buffer szDeviceInstanceId , incluso il terminatore NULL . Se la lunghezza del buffer viene specificata come SCARD_AUTOALLOCATE, il parametro szDeviceInstanceId viene convertito in un puntatore a un puntatore a un puntatore di byte e riceve l'indirizzo di un blocco di memoria contenente l'ID istanza. Questo blocco di memoria deve essere deallocato con la funzione SCardFreeMemory .
Valore restituito
Questa funzione restituisce valori diversi a seconda che abbia esito positivo o negativo.
Codice restituito | Descrizione |
---|---|
|
SCARD_S_SUCCESS. |
|
Codice di errore. Per altre informazioni, vedere Valori restituiti smart card. |
Commenti
Questa funzione non viene reindirizzata. La chiamata alla funzione SCardGetReaderDeviceInstanceId quando all'interno di una sessione desktop remoto non riesce con il codice di errore SCARD_E_READER_UNAVAILABLE.
Esempi
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.
}
Nota
L'intestazione winscard.h definisce SCardGetReaderDeviceInstanceId come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winscard.h |