智慧卡驅動程式偵錯
注意
已檢查的組建可在舊版 Windows 上取得,Windows 10 1803 版之前。 使用驅動程式驗證器和 GFlags 之類的工具,在更新版本的 Windows 中檢查驅動程式程式碼。
智慧卡驅動程式程式庫支援數個偵錯功能。 每個偵錯功能都會以下列其中一個常數表示,這些常數定義于 Smclib.h 標頭檔中:
DEBUG_IOCTL
DEBUG_ATR
DEBUG_PROTOCOL
DEBUG_DRIVER
DEBUG_TRACE
DEBUG_ERROR
DEBUG_BREAK
DEBUG_ALL
啟用的偵錯功能組合集是由稱為 偵錯層級的值來表示。 您可以藉由取得對應至您想要啟用之功能的常數位 OR 來計算此值。
有兩種方式可以設定偵錯層級。 首先,您可以使用 Windows 驅動程式套件隨附的智慧卡驅動程式測試程式 Scdrvtst (WDK) 。 第二個是使用 SmartcardSetDebugLevel 智慧卡驅動程式程式庫常式。
在這兩種情況下,您必須將您要偵錯層級的值傳遞至設定偵錯層級的程式或常式。 例如,若要使用智慧卡程式庫常式從驅動程式設定偵錯層級,請進行下列呼叫:
SmartcardSetDebugLevel(DebugLevel);
若要從讀取器驅動程式撰寫偵錯訊息,驅動程式必須呼叫下列常式:
SmartcardDebug(
ULONG DebugLevel,
PCHAR Message
);
重要
您必須安裝已檢查的作業系統版本和已檢查的驅動程式版本,才能取得偵錯訊息。
此常式也可用來以下列方式將訊息寫入遠端偵錯程式。
若要寫入錯誤訊息,請使用 DebugLevel的 DEBUG_ERROR 常數。
若要撰寫標準驅動程式訊息,請使用 DEBUG_DRIVER 常數。
若要撰寫追蹤訊息,指出讀取器驅動程式何時進入或結束常式,請使用 DEBUG_TRACE 作為 DebugLevel。
開發驅動程式時,請使用已核取的智慧卡驅動程式程式庫版本,並使用DriverEntry常式中的SmartcardSetDebugLevel (DEBUG_ALL) ,將偵錯層級設定為最大值。
如需設定遠端偵錯會話的相關資訊,請參閱 Windows 偵錯。