Bagikan melalui


Penelusuran Kesalahan Driver Kartu Pintar

Catatan

Build yang diperiksa tersedia pada versi Windows yang lebih lama, sebelum Windows 10 versi 1803. Gunakan alat seperti Driver Verifier dan GFlags untuk memeriksa kode driver di versi Windows yang lebih baru.

Pustaka driver kartu pintar mendukung beberapa fitur penelusuran kesalahan. Setiap fitur penelusuran kesalahan diwakili oleh salah satu konstanta berikut, yang didefinisikan dalam file header Smclib.h :

DEBUG_IOCTL
DEBUG_ATR
DEBUG_PROTOCOL
DEBUG_DRIVER
DEBUG_TRACE
DEBUG_ERROR
DEBUG_BREAK
DEBUG_ALL

Kumpulan gabungan fitur penelusuran kesalahan yang diaktifkan diwakili oleh nilai yang disebut tingkat penelusuran kesalahan. Anda dapat menghitung nilai ini dengan mengambil bitwise ATAU konstanta yang sesuai dengan fitur yang ingin Anda aktifkan.

Ada dua cara untuk mengatur tingkat penelusuran kesalahan. Pertama, Anda dapat menggunakan program uji driver kartu pintar, Scdrvtst, yang dilengkapi dengan Windows Driver Kit (WDK). Yang kedua adalah menggunakan rutinitas pustaka driver kartu pintar SmartcardSetDebugLevel .

Dalam kedua kasus, Anda harus meneruskan nilai untuk tingkat penelusuran kesalahan yang Anda inginkan ke program atau rutinitas yang mengatur tingkat penelusuran kesalahan. Misalnya, untuk mengatur tingkat penelusuran kesalahan dari driver dengan menggunakan rutinitas pustaka kartu pintar, lakukan panggilan berikut:

SmartcardSetDebugLevel(DebugLevel);

Untuk menulis pesan penelusuran kesalahan dari driver pembaca, driver harus memanggil rutinitas berikut:

SmartcardDebug(
 ULONG DebugLevel,
 PCHAR Message
);

Penting

Anda harus menginstal versi sistem operasi yang diperiksa dan versi driver yang diperiksa untuk mendapatkan pesan penelusuran kesalahan.

Rutinitas ini juga dapat digunakan untuk menulis pesan ke debugger jarak jauh dengan cara berikut.

  • Untuk menulis pesan kesalahan, gunakan konstanta DEBUG_ERROR untuk DebugLevel.

  • Untuk menulis pesan driver standar, gunakan konstanta DEBUG_DRIVER.

  • Untuk menulis pesan pelacakan yang menunjukkan kapan driver pembaca memasuki atau keluar dari rutinitas, gunakan DEBUG_TRACE sebagai DebugLevel.

Saat mengembangkan driver, gunakan versi yang diperiksa dari pustaka driver kartu pintar dan atur tingkat debugging ke maksimum dengan menggunakan SmartcardSetDebugLevel(DEBUG_ALL) dalam rutinitas DriverEntry Anda.

Untuk informasi tentang menyiapkan sesi penelusuran kesalahan jarak jauh, lihat Penelusuran Kesalahan Windows.