Driver Pembaca WDM

Required routines

Rutinitas berikut diperlukan oleh driver pembaca WDM.

DriverEntry

Menginisialisasi objek driver dan tabel pengiriman.

AddDevice

Membuat objek perangkat untuk pembaca kartu pintar. In addition, AddDevice can call any of the following driver library routines:

Unload

Menghapus pengandar dari sistem.

DispatchCreate

-and-

DispatchClose

Supports IRP_MJ_CREATE and IRP_MJ_CLOSE<, respectively. To establish a connection to the reader, the resource manager sends IRP_MJ_CREATE to the reader driver. To sever the connection, the resource manager sends IRP_MJ_CLOSE.

DispatchCleanup

Supports IRP_MJ_CLEANUP, which the resource manager sends to the reader driver to cancel pending I/O requests.

DispatchPnP

Supports IRP_MJ_PNP

DispatchPower

Supports IRP_MJ_POWER.

DispatchDeviceControl

Supports IRP_MJ_DEVICE_CONTROL and is the main entry point for smart card requests. Upon receiving IRP_MJ_DEVICE_CONTROL, DispatchDeviceControl must immediately call SmartcardDeviceControl (WDM), which is the smart card driver library routine that handles device-control requests. Contoh kode berikut menunjukkan cara memanggil rutinitas pustaka ini dari driver WDM:

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

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

If it is unable to handle the particular IOCTL that is indicated in the call, SmartcardDeviceControl will call the driver's callback for unknown IOCTL requests.