Sdílet prostřednictvím


Ovladač čtečky WDM

Required routines

Ovladač čtečky WDM vyžaduje následující rutiny.

DriverEntry

Inicializuje objekt ovladače a tabulku dispatch.

AddDevice

Vytvoří objekt zařízení pro čtečku čipových karet. In addition, AddDevice can call any of the following driver library routines:

Unload

Odebere ovladač ze systému.

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. Následující příklad kódu ukazuje, jak volat tuto rutinu knihovny z ovladače 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.