Funzione SCardGetReaderIconW (winscard.h)

La funzione SCardGetReaderIcon ottiene un'icona del lettore smart card per il nome di un determinato lettore. Questa funzione non influisce sullo stato del lettore di schede.

Sintassi

LONG SCardGetReaderIconW(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCWSTR      szReaderName,
  [out]     LPBYTE       pbIcon,
  [in, out] LPDWORD      pcbIcon
);

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] pbIcon

Puntatore a un buffer che contiene un BLOB dell'icona di lettura smart card come lettore di smart card come letto dal file dell'icona. Se questo valore è NULL, la funzione ignora la lunghezza del buffer fornita nel parametro pcbIcon , scrive la lunghezza del buffer che sarebbe stato restituito a pcbIcon se questo parametro non fosse stato NULL e restituisce un codice riuscito.

[in, out] pcbIcon

Lunghezza, in caratteri, del buffer pbIcon . Questo parametro riceve la lunghezza effettiva dell'attributo ricevuto. Se la lunghezza del buffer viene specificata come SCARD_AUTOALLOCATE, pbIcon viene convertito da un puntatore a un puntatore a un puntatore di byte e riceve l'indirizzo di un blocco di memoria contenente l'attributo. 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
Success
SCARD_S_SUCCESS.
Operazioni non riuscite
Codice di errore. Per altre informazioni, vedere Valori restituiti smart card.

Commenti

L'icona deve essere 256 × 256 pixel senza canale alfa.

Esempi

PBYTE    pbIcon = NULL;
DWORD    cbIcon = SCARD_AUTOALLOCATE;
DWORD    i;
LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";

// Retrieve the reader's icon.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderIcon(hContext,
                         szReaderName,
                         (PBYTE)&pbIcon,
                         &cbIcon);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderIcon - %x\n", lReturn);
    // Take appropriate action.
}
else
{
    // Free the memory when done. 
    lReturn = SCardFreeMemory(hContext, pbIcon);
}

Nota

L'intestazione winscard.h definisce SCardGetReaderIcon 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