共用方式為


WDM 讀取器驅動程式

必要的例程

WDM 讀取器驅動程式需要下列例程。

DriverEntry

初始化驅動程式物件和分派數據表。

AddDevice

建立智慧卡閱讀機的裝置物件。 此外, AddDevice 可以呼叫下列任一驅動程序連結庫例程:

卸載

從系統移除驅動程式。

DispatchCreate

-和-

DispatchClose

分別支援 IRP_MJ_CREATEIRP_MJ_CLOSE<。 若要建立與讀取器的連線,資源管理員會將 IRP_MJ_CREATE 傳送給讀取器驅動程式。 若要進行連線,資源管理員會傳送 IRP_MJ_CLOSE

DispatchCleanup

支援 IRP_MJ_CLEANUP,資源管理員會傳送至讀取器驅動程式以取消擱置的 I/O 要求。

DispatchPnP

支援 IRP_MJ_PNP

DispatchPower

支援 IRP_MJ_POWER

DispatchDeviceControl

支援 IRP_MJ_DEVICE_CONTROL ,而且是智慧卡要求的主要進入點。 收到IRP_MJ_DEVICE_CONTROL時, DispatchDeviceControl 必須立即呼叫 SmartcardDeviceControl (WDM) ,這是處理裝置控制要求的智慧卡驅動程序連結庫例程。 下列程式代碼範例示範如何從 WDM 驅動程式呼叫此連結庫例程:

NTSTATUS
DriverDeviceControl(
    PDEVICE_OBJECT DeviceObject,
    PIRP Irp
    )
{
    PDEVICE_EXTENSION deviceExtension = DeviceObject -&gt; DeviceExtension;

    return SmartcardDeviceControl(
        &(deviceExtension-&gt;SmartcardExtension),
        Irp
        );

如果無法處理呼叫中所指出的特定 IOCTL,SmartcardDeviceControl 會呼叫驅動程式的回呼,以取得未知的 IOCTL 要求。