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 Befehlsanwendungsprotokoll-Dateneinheit (COMMAND Application Data Unit, APDU) für die Übertragung an eine Smartcard.

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]

Befehlsanweisungs-ID.

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 von dieser Schnittstelle bereitgestellten Methoden finden Sie unter ISCardCmd.

Zusätzlich zu den oben aufgeführten COM-Fehlercodes gibt diese Schnittstelle möglicherweise einen Smartcardfehlercode zurück, wenn eine Smartcardfunktion 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 Instanz der ISCardCmd-Schnittstelle und pIByteRequest ein gültiger Zeiger auf eine Instanz 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.
}

Requirements (Anforderungen)

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

Weitere Informationen

Kapseln

ISCardCmd