Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Die get_ApduReply-Methode ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt "Anforderungen" angegeben sind. 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 get_ApduReply-Methode ruft die Antwort-APDU ab und platziert sie in einem bestimmten Bytepuffer. Die Antwort kann NULL sein, wenn keine Transaktion für den Befehl APDU ausgeführt wurde.
Syntax
HRESULT get_ApduReply(
[out] LPBYTEBUFFER *ppReplyApdu
);
Parameter
-
ppReplyApdu [out]
-
Zeiger auf den Bytepuffer (zugeordnet über ein IStream-Objekt ), der die APDU-Antwortnachricht bei der Rückgabe enthält.
Rückgabewert
Die -Methode gibt einen der folgenden möglichen Werte zurück.
| Rückgabecode | BESCHREIBUNG |
|---|---|
|
Operation erfolgreich abgeschlossen. |
|
Der ppReplyApdu-Parameter ist ungültig. |
|
Ein fehlerhafter Zeiger wurde in ppReplyApdu übergeben. |
|
Nicht genügend Arbeitsspeicher. |
Bemerkungen
Um die Länge der APDU-Antwort zu bestimmen, rufen Sie get_ApduReplyLength auf.
Um eine neue Antwort-APDU festzulegen, rufen Sie put_ApduReply 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 Intelligenten Karte Fehlercode zurück, wenn eine Smart Karte-Funktion aufgerufen wurde, um die Anforderung abzuschließen. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.
Beispiele
Das folgende Beispiel zeigt, wie Antwortdaten abgerufen werden. Im Beispiel wird davon ausgegangen, dass lLe eine Variable vom Typ LONG ist, deren Wert durch einen vorherigen Aufruf der ISCardCmd::get_ApduReplyLength-Methode festgelegt wurde, dass pIByteReply ein gültiger Zeiger auf einen instance der IByteBuffer-Schnittstelle ist und dass pISCardCmd ein gültiger Zeiger auf eine instance der ISCardCmd-Schnittstelle ist.
HRESULT hr;
if (lLe > 0)
{
// Get reply data if available.
hr = pISCardCmd->get_ApduReply(&pIByteReply);
if (FAILED(hr))
{
printf("Failed ISCardCmd::get_ApduReply.\n");
// Take other error handling action as needed.
}
else
{
BYTE byReplyBytes[256];
LONG lBytesRead;
hr = pIByteReply->Read(byReplyBytes, lLe, &lBytesRead);
if (FAILED(hr))
{
printf("Failed IByteBuffer::Read.\n");
// Take other error handling action as needed.
}
// Use the bytes in byReplyBytes 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 |
|
| Typbibliothek |
|
| DLL |
|
| IID |
IID_ISCardCmd ist definiert als D5778AE3-43DE-11D0-9171-00AA00C18068 |
Weitere Informationen