與智慧卡驅動程式程式庫的互動
下圖顯示讀取器驅動程式如何與智慧卡驅動程式程式庫互動,以處理從資源管理員接收的 IOCTL 要求:
下列數位會對應至上圖中的數位。 從數位 1 開始,此圖顯示讀取器驅動程式必須與系統提供的驅動程式程式庫一起完成 (的步驟,) 來處理 IOCTL 要求:
讀取器驅動程式會將所有 IOCTL 要求傳遞給 SmartcardDeviceControl (WDM) 驅動程式程式庫常式。
如果讀取器驅動程式傳遞至 SmartcardDeviceControl 的參數不正確, SmartcardDeviceControl 會傳回錯誤訊息。 SmartcardDeviceControl 會在未完成 IOCTL 要求的情況下傳回。 在此情況下,讀取器驅動程式必須完成 IOCTL 要求。
如果參數有效, SmartcardDeviceControl 會在可以時處理 IOCTL 要求。
SmartcardDeviceControl 會檢查讀取器驅動程式是否有針對其正在處理的 IOCTL 要求所定義的回呼常式。 如果回呼存在, SmartcardDeviceControl 會 呼叫它。
回呼常式會呼叫完成 IOCTL 要求處理所需的所有驅動程式程式庫常式。
處理 IOCTL 要求之後,回呼常式會返回 SmartcardDeviceControl。
SmartcardDeviceControl 會完成攜帶 IOCTL 的 IRP。
SmartcardDeviceControl 會將控制權傳回給讀取器驅動程式分派常式。
智慧卡程式庫會同步存取讀取器驅動程式。 不會同時呼叫兩個回呼函式。 不過,卡片插入和移除的事件處理必須以非同步方式處理。