Condividi tramite


Funzione SCardGetReaderIconW (winscard.h)

La funzione SCardGetReaderI con ottiene un'icona del lettore di smart card per il nome di un lettore specificato. 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 del lettore di smart card come letto dal file 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 null e restituisce un codice di operazione riuscita.

[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 convertita da un puntatore a un puntatore a un 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
esito positivo
SCARD_S_SUCCESS.
errore
Codice di errore. Per altre informazioni, vedere valori restituiti della smart card.

Osservazioni

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