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:
- SmartcardInitialize (WDM) per completare l'inizializzazione del driver. La chiamata a questa routine in AddDevice è obbligatoria.
- SmartcardLogError (WDM) per registrare un errore. I driver devono chiamare questa routine in AddDevice se SmartcardInitialize (WDM) ha esito negativo.
- SmartcardCreateLink (WDM) per creare un collegamento simbolico per il dispositivo lettore nel Registro di sistema.
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 -> DeviceExtension;
return SmartcardDeviceControl(
&(deviceExtension->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.