Freigeben über


WDM-Lesertreiber

Erforderliche Routinen

Die folgenden Routinen sind für einen WDM-Lesertreiber erforderlich.

DriverEntry

Initialisiert das Treiberobjekt und die Dispatchtabelle.

AddDevice

Erstellt ein Geräteobjekt für den Smart Karte Reader. Darüber hinaus kann AddDevice jede der folgenden Treiberbibliotheksroutinen aufrufen:

Entladen

Entfernt den Treiber aus dem System.

DispatchErstellen

- und -

DispatchClose

Unterstützt IRP_MJ_CREATE bzw . IRP_MJ_CLOSE<. Um eine Verbindung mit dem Leser herzustellen, sendet der Ressourcen-Manager IRP_MJ_CREATE an den Lesertreiber. Um die Verbindung zu trennen, sendet der Ressourcen-Manager IRP_MJ_CLOSE.

DispatchCleanup

Unterstützt IRP_MJ_CLEANUP, die der Ressourcen-Manager an den Lesertreiber sendet, um ausstehende E/A-Anforderungen abzubrechen.

DispatchPnP

Unterstützt IRP_MJ_PNP

DispatchPower

Unterstützt IRP_MJ_POWER.

DispatchDeviceControl

Unterstützt IRP_MJ_DEVICE_CONTROL und ist der Standard Einstiegspunkt für Smart Karte-Anforderungen. Beim Empfang IRP_MJ_DEVICE_CONTROL muss DispatchDeviceControl sofort SmartcardDeviceControl (WDM) aufrufen, die smart Karte Treiberbibliotheksroutine, die Gerätesteuerungsanforderungen verarbeitet. Das folgende Codebeispiel zeigt, wie Sie diese Bibliotheksroutine über einen WDM-Treiber aufrufen:

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

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

Wenn die im Anruf angegebene IOCTL nicht verarbeitet werden kann, ruft SmartcardDeviceControl den Rückruf des Fahrers für unbekannte IOCTL-Anforderungen auf.