Condividi tramite


Metodo ISCardCmd::BuildCmd

[Il metodo BuildCmd è 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 BuildCmd costruisce un'unità dati APDU (Command Application Protocol Data Unit) valida per la trasmissione a una smart card.

Sintassi

HRESULT BuildCmd(
  [in] BYTE         byClassId,
  [in] BYTE         byInsId,
  [in] BYTE         byP1,
  [in] BYTE         byP2,
  [in] LPBYTEBUFFER pbyData,
  [in] LONG         *p1Le
);

Parametri

byClassId [in]

Identificatore della classe di comando.

byInsId [in]

Identificatore dell'istruzione del comando.

byP1 [in]

Primo parametro del comando.

byP2 [in]

Secondo parametro del comando.

pbyData [in]

Puntatore alla parte dati del comando.

p1Le [in]

Puntatore a un intero LONG contenente la lunghezza prevista dei dati restituiti.

Valore restituito

Il metodo restituisce uno dei valori possibili seguenti.

Codice restituito Descrizione
S_OK
Operazione completata correttamente.
E_INVALIDARG
Uno dei parametri non è valido.
E_POINTER
Un puntatore non valido è stato passato.
E_OUTOFMEMORY
Memoria insufficiente.

 

Commenti

Per incapsulare il comando in un altro comando, chiamare Encapsulate.

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

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 smart card.

Esempio

Nell'esempio seguente viene illustrato come costruire un'API di comando. L'esempio presuppone che pISCardCmd sia un puntatore valido a un'istanza dell'interfaccia ISCardCmd e che pIByteRequest sia un puntatore valido a un'istanza dell'interfaccia IByteBuffer inizializzata con una chiamata precedente al metodo IByteBuffer::Initialize .

LONG       lLe = 0;
HRESULT    hr;

hr = pISCardCmd->BuildCmd(0x00,   // Some cards prefer 0xC0
                          0xa4,   // 'Select File'
                          0x00,
                          0x00,
                          pIByteRequest,
                          &lLe);
if (FAILED(hr))
{
    printf("Failed ISCardCmd::BuildCmd\n");
    // Take other error handling action 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
Scarddat.h
Libreria dei tipi
Scarddat.tlb
DLL
Scardssp.dll
IID
IID_ISCardCmd è definito come D5778AE3-43DE-11D0-9171-00AA0C18068

Vedi anche

Incapsulare

ISCardCmd