Condividi tramite


Driver lettore WDM

Routine obbligatorie

Le routine seguenti sono richieste da un driver lettore WDM.

DriverEntry

Inizializza l'oggetto driver e la tabella dispatch.

AddDevice

Crea un oggetto dispositivo per il lettore di smart card. Inoltre, AddDevice può chiamare una delle routine della libreria driver seguenti:

Scaricare

Rimuove il driver dal sistema.

DispatchCreate

-e-

DispatchClose

Supporta rispettivamente IRP_MJ_CREATE e IRP_MJ_CLOSE<. Per stabilire una connessione al lettore, gestione risorse invia IRP_MJ_CREATE al driver lettore. Per eseguire la connessione, gestione risorse invia IRP_MJ_CLOSE.

DispatchCleanup

Supporta IRP_MJ_CLEANUP, che gestione risorse invia al driver di lettura per annullare le richieste di I/O in sospeso.

DispatchPnP

Supporta IRP_MJ_PNP

DispatchPower

Supporta IRP_MJ_POWER.

DispatchDeviceControl

Supporta IRP_MJ_DEVICE_CONTROL ed è il punto di ingresso principale per le richieste di smart card. Quando si riceve IRP_MJ_DEVICE_CONTROL, DispatchDeviceControl deve chiamare immediatamente SmartcardDeviceControl (WDM), ovvero la routine della libreria di driver di smart card che gestisce le richieste di controllo del dispositivo. Nell'esempio di codice seguente viene illustrato come chiamare questa routine di libreria da un driver WDM:

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

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

Se non è in grado di gestire la specifica IOCTL indicata nella chiamata, SmartcardDeviceControl chiamerà il callback del driver per le richieste IOCTL sconosciute.