Metode ISCardCmd::get_ApduReply

[Metode get_ApduReply tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini tidak tersedia untuk digunakan di Windows Server 2003 dengan Paket Layanan 1 (SP1) dan yang lebih baru, Windows Vista, Windows Server 2008, dan versi sistem operasi berikutnya. Modul Kartu Pintar menyediakan fungsionalitas serupa.]

Metode get_ApduReply mengambil APDU balasan, menempatkannya dalam buffer byte tertentu. Balasan mungkin NULL jika tidak ada transaksi yang dilakukan pada perintah APDU.

Sintaks

HRESULT get_ApduReply(
  [out] LPBYTEBUFFER *ppReplyApdu
);

Parameter

ppReplyApdu [out]

Arahkan ke buffer byte (dipetakan melalui objek IStream ) yang berisi pesan balasan APDU saat dikembalikan.

Nilai kembali

Metode mengembalikan salah satu nilai yang mungkin berikut ini.

Mengembalikan kode Deskripsi
S_OK
Operasi selesai dengan sukses.
E_INVALIDARG
Parameter ppReplyApdu tidak valid.
E_POINTER
Pointer buruk diteruskan di ppReplyApdu.
E_OUTOFMEMORY
Kehabisan memori.

 

Keterangan

Untuk menentukan panjang balasan APDU, panggil get_ApduReplyLength.

Untuk mengatur APDU balasan baru, panggil put_ApduReply.

Untuk daftar semua metode yang disediakan oleh antarmuka ini, lihat ISCardCmd.

Selain kode kesalahan COM yang tercantum di atas, antarmuka ini dapat mengembalikan kode kesalahan kartu pintar jika fungsi kartu pintar dipanggil untuk menyelesaikan permintaan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar.

Contoh

Contoh berikut menunjukkan cara mengambil data balasan. Contoh mengasumsikan bahwa lLe adalah variabel jenis LONG yang nilainya diatur oleh panggilan sebelumnya ke metode ISCardCmd::get_ApduReplyLength , bahwa pIByteReply adalah penunjuk yang valid ke instans antarmuka IByteBuffer , dan bahwa pISCardCmd adalah penunjuk yang valid ke instans antarmuka ISCardCmd .

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP [khusus aplikasi desktop]
Server minimum yang didukung
Windows Server 2003 [hanya aplikasi desktop]
Akhir dukungan klien
Windows XP
Akhir dukungan server
Windows Server 2003
Header
Scarddat.h
Pustaka jenis
Scarddat.tlb
DLL
Scardssp.dll
IID
IID_ISCardCmd didefinisikan sebagai D5778AE3-43DE-11D0-9171-00AA00C18068

Lihat juga

get_ApduReplyLength

ISCardCmd

put_ApduReply