指定卸載函式
圖說文字驅動程式必須提供卸載函式。 當圖說文字驅動程式從系統卸載時,作業系統會呼叫此函式。 圖說文字驅動程式的卸載函式必須保證圖說文字驅動程式的圖說文字從篩選引擎取消註冊,再從系統記憶體卸載圖說文字驅動程式。 如果沒有提供卸載函式,就無法從系統卸載圖說文字驅動程式。
圖說文字驅動程式如何指定卸載函式,取決於注標驅動程式是以 Windows 驅動程式模型 (WDM) 或 Windows 驅動程式架構 (WDF) 為基礎。
WDM-Based注標驅動程式
如果圖說文字驅動程式是以 WDM 為基礎,它會在其DriverEntry函式中指定Unload函式。 例如:
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注標驅動程式
如果圖說文字驅動程式是以 WDF 為基礎,它會在其DriverEntry函式中指定EvtDriverUnload函式。 例如:
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;
}
如需如何實作圖說文字驅動程式卸載函式的資訊,請參閱 卸載圖說文字驅動程式。