Condividi tramite


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 in parametro cchDeviceInstanceId, scrive la lunghezza del buffer che sarebbe stato restituito se questo parametro non fosse stato NULL in cchDeviceInstanceIde restituisce un codice di operazione riuscita.

[in, out] pcchDeviceInstanceId

Lunghezza, in caratteri, del buffer szDeviceInstanceId , incluso il carattere di terminazione null . Se la lunghezza del buffer viene specificata come SCARD_AUTOALLOCATE, il parametro szDeviceInstanceId viene convertito in un puntatore a un puntatore a un byte e riceve l'indirizzo di un blocco di memoria contenente l'ID istanza. Questo blocco di memoria deve essere deallocato con la funzione di SCardFreeMemory .

Valore restituito

Questa funzione restituisce valori diversi a seconda che abbia esito positivo o negativo.

Codice restituito Descrizione
esito positivo
SCARD_S_SUCCESS.
errore
Codice di errore. Per altre informazioni, vedere valori restituiti della smart card.

Osservazioni

Questa funzione non viene reindirizzata. La chiamata alla funzione SCardGetReaderDeviceInstanceId quando all'interno di una sessione di Desktop remoto si verifica un errore 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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8 [solo app desktop]
server minimo supportato Windows Server 2012 [solo app desktop]
piattaforma di destinazione Finestre
intestazione winscard.h