Condividi tramite


Metodo ISCardDatabase::ListCards

[Il metodo ListCards è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Non è disponibile per l'uso in Windows Server 2003 con Service Pack 1 (SP1) e versioni successive, Windows Vista, Windows Server 2008 e versioni successive del sistema operativo. I moduli smart card offrono funzionalità simili.

Il metodo ListCards recupera tutti i nomi delle smart card corrispondenti agli identificatori di interfaccia specificati (GUID), alla stringa ATR specificata o a entrambi.

Sintassi

HRESULT ListCards(
  [in]  LPBYTEBUFFER pAtr,
  [in]  LPSAFEARRAY  pInterfaceGuids,
  [in]  LONG         localeId,
  [out] LPSAFEARRAY  *ppCardNames
);

Parametri

pAtr [in]

Puntatore a una stringa ATR della smart card . La stringa ATR deve essere inserita in un pacchetto IByteBuffer.

pInterfaceGuids [in]

Puntatore a un SAFEARRAY di identificatori di interfaccia COM (GUID) in formato BSTR.

localeId [in]

Identificatore di localizzazione della lingua.

ppCardNames [out]

Puntatore a un SAFEARRAY di route BST che contiene i nomi delle smart card che hanno soddisfatto i parametri di ricerca in caso di esito positivo; NULL se l'operazione non è riuscita.

Valore restituito

Il metodo restituisce uno dei valori possibili seguenti.

Codice restituito Descrizione
S_OK
Operazione completata correttamente.
E_INVALIDARG
Parametro non valido.
E_POINTER
È stato passato un puntatore non valido.
E_OUTOFMEMORY
Memoria insufficiente.

 

Commenti

Per recuperare tutti i lettori o i lettori noti, chiamare rispettivamente ListReaders o ListReaderGroups .

Per recuperare rispettivamente il servizio primario o le interfacce di una scheda specifica GetProviderCardId o ListCardInterfaces .

Per un elenco di tutti i metodi forniti da questa interfaccia, vedere ISCardDatabase.

Oltre ai codici di errore COM elencati in precedenza, questa interfaccia può restituire un codice di errore della smart card se è stata chiamata una funzione smart card per completare la richiesta. Per altre informazioni, vedere Valori restituiti della smart card.

Esempio

Nell'esempio seguente viene illustrato il recupero dei nomi delle smart card corrispondenti alla stringa ATR specificata.

// Define or determine byAtr as needed for your ATR use.
BYTE byAtr[] = {0x3b,0x27,0x00,0x80,0x65,0xa2,0x0c,0x01,0x01,0x37};
LPSAFEARRAY pSafeArray = NULL;
HRESULT          hr;

// pIByteBuff is a pointer to an instance of IByteBuffer.
hr = pIByteBuff->Initialize(sizeof(byAtr), byAtr);

// Call the function for the specified ATR.
hr = pISCDataBase->ListCards(pIByteBuff,
                             NULL,
                             0,
                             &pSafeArray);
if (FAILED(hr))
{
   printf("Failed ListCards\n");
   // Take other error handling action as needed.
}
else
{
   // Use the safe array as needed.
}

Requisiti

Requisito Valore
Client minimo supportato
Windows XP [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Fine del supporto client
Windows XP
Fine del supporto server
Windows Server 2003
Intestazione
Scardmgr.h
Libreria dei tipi
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCardDatabase è definito come 1461AAC8-6810-11D0-918F-00AA00C18068

Vedi anche

GetProviderCardId

ISCardDatabase

ListCardInterfaces

ListReaderGroups

ListReaders