共用方式為


智慧卡驅動程式偵錯

注意

已檢查的組建可在舊版 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 偵錯