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 |
|---|---|
|
Operation erfolgreich abgeschlossen. |
|
Einer der Parameter ist ungültig. |
|
Ein ungültiger Zeiger wurde übergeben. |
|
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 |
|
| Typbibliothek |
|
| DLL |
|
| IID |
IID _ ISCardCmd ist als D5778AE3-43DE-11D0-9171-00AA00C18068 definiert. |