Freigeben über


ISCardCmd::BuildCmd-Methode

[Die BuildCmd-Methode ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Es ist nicht für die Verwendung in Windows Server 2003 mit Service Pack 1 (SP1) und höher, Windows Vista, Windows Server 2008 und nachfolgenden Versionen des Betriebssystems verfügbar. Die Smartcardmodule bieten ähnliche Funktionen.]

Die BuildCmd-Methode erstellt eine gültige APDU (Application Protocol Data Unit) für die Übertragung an eine intelligente Karte.

Syntax

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

Parameter

byClassId [in]

Befehlsklassenbezeichner.

byInsId [in]

Befehlsanweisungsbezeichner.

byP1 [in]

Der erste Parameter des Befehls.

byP2 [in]

Der zweite Parameter des Befehls.

pbyData [in]

Zeiger auf den Datenteil des Befehls.

p1Le [in]

Zeiger auf eine long-Ganzzahl, die die erwartete Länge der zurückgegebenen Daten enthält.

Rückgabewert

Die -Methode gibt einen der folgenden möglichen Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Operation erfolgreich abgeschlossen.
E_INVALIDARG
Einer der Parameter ist ungültig.
E_POINTER
Ein ungültiger Zeiger wurde übergeben.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher.

 

Bemerkungen

Um den Befehl in einen anderen Befehl zu kapseln, rufen Sie Encapsulate auf.

Eine Liste aller Methoden, die von dieser Schnittstelle bereitgestellt werden, finden Sie unter ISCardCmd.

Zusätzlich zu den oben aufgeführten COM-Fehlercodes gibt diese Schnittstelle möglicherweise einen Fehlercode für intelligente Karte zurück, wenn eine intelligente Karte-Funktion aufgerufen wurde, um die Anforderung abzuschließen. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.

Beispiele

Das folgende Beispiel zeigt, wie Sie eine Befehls-APDU erstellen. Im Beispiel wird davon ausgegangen, dass pISCardCmd ein gültiger Zeiger auf eine instance der ISCardCmd-Schnittstelle ist und dass pIByteRequest ein gültiger Zeiger auf eine instance der IByteBuffer-Schnittstelle ist, die mit einem vorherigen Aufruf der IByteBuffer::Initialize-Methode initialisiert wurde.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Ende des Supports (Client)
Windows XP
Ende des Supports (Server)
Windows Server 2003
Header
Scarddat.h
Typbibliothek
Scarddat.tlb
DLL
Scardssp.dll
IID
IID_ISCardCmd ist definiert als D5778AE3-43DE-11D0-9171-00AA00C18068

Siehe auch

Kapseln

ISCardCmd