Condividi tramite


Metodo ISCard::get_Atr

[Il metodo get_Atr è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. I moduli smart card offrono funzionalità simili.

Il metodo get_Atr recupera una stringa ATR della smart card.

Sintassi

HRESULT get_Atr(
  [out] LPBYTEBUFFER *ppAtr
);

Parametri

ppAtr [out]

Puntatore a un buffer di byte sotto forma di IStream che conterrà la stringa ATR al momento della restituzione.

Valore restituito

Il metodo restituisce uno dei valori possibili seguenti.

Codice restituito Descrizione
S_OK
Operazione completata correttamente.
E_INVALIDARG
Il parametro ppAtr non è valido.
E_POINTER
Un puntatore non valido è stato passato in ppAtr.
E_OUTOFMEMORY
Memoria per soddisfare la richiesta non disponibile.

 

Commenti

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 della stringa ATR dalla smart card.

// Retrieve the ATR.
// pISCard is a pointer to a previously instantiated ISCard.
// pAtr is a pointer to a previously instantiated IByteBuffer.
hr = pISCard->get_Atr(&pAtr);
if (FAILED(hr))
{
    printf("Failed get_Atr\n");
    // Take other error handling action.
}
// Success, you can now use IByteBuffer::Read to access ATR bytes.
BYTE  byAtr[32];
   long  lBytesRead, i;
   // Read the ATR string into a byte array.
   hr = pAtr->Read(byAtr, 32, &lBytesRead);
   // Use the ATR value. (This example merely displays the bytes.)
   for ( i = 0; i < lBytesRead; i++)
       printf("%c", *(byAtr + i));
   printf("\n");

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_ISCard è definito come 1461AAC3-6810-11D0-918F-00AA00C18068

Vedi anche

get_CardHandle

get_Context

get_Protocol

get_Status

ISCard

IByteBuffer::Read