Freigeben über


Angeben einer Entladefunktion

Ein Legendentreiber muss eine Entladefunktion bereitstellen. Das Betriebssystem ruft diese Funktion auf, wenn der Legendentreiber aus dem System entladen wird. Die Entladefunktion eines Legendentreibers muss sicherstellen, dass die Legenden des Legendentreibers bei der Filter-Engine nicht registriert werden, bevor der Legendentreiber aus dem Systemspeicher entladen wird. Ein Legendentreiber kann nicht aus dem System entladen werden, wenn er keine Entladefunktion bereitstellt.

Wie ein Legendentreiber eine Entladefunktion angibt, hängt davon ab, ob der Legendentreiber auf dem Windows-Treibermodell (WDM) oder den Windows Driver Frameworks (WDF) basiert.

WDM-Based-Beschriftungstreiber

Wenn ein Legendentreiber auf WDM basiert, gibt er eine Unload-Funktion in seiner DriverEntry-Funktion an. Beispiel:

VOID
 Unload(
    IN PDRIVER_OBJECT DriverObject
    );

NTSTATUS
 DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )
{
  ...

  // Specify the callout driver's Unload function
 DriverObject->DriverUnload = Unload;

  ...
}

WDF-Based-Beschriftungstreiber

Wenn ein Legendentreiber auf WDF basiert, gibt er eine EvtDriverUnload-Funktion in seiner DriverEntry-Funktion an. Beispiel:

VOID
 Unload(
    IN WDFDRIVER Driver
    );

NTSTATUS
 DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )
{
  NTSTATUS status;
  WDF_DRIVER_CONFIG config;
  WDFDRIVER driver;

  ...

  // Initialize the driver config structure
  WDF_DRIVER_CONFIG_INIT(&config, NULL);

  // Indicate that this is a non-PNP driver
 config.DriverInitFlags = WdfDriverInitNonPnpDriver;

  // Specify the callout driver's Unload function
 config.EvtDriverUnload = Unload;

  // Create a WDFDRIVER object
 status =
 WdfDriverCreate(
 DriverObject,
 RegistryPath,
      NULL,
      &config,
      &driver
      );

  ...

 return status;
}

Informationen zum Implementieren der Entladefunktion eines Legendentreibers finden Sie unter Entladen eines Legendentreibers.