1 ////////////////////////////////////////////////////////////////////
2 // Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
4 // This file was released under the GPLv2 on June 2015.
5 ////////////////////////////////////////////////////////////////////
11 IN PDRIVER_OBJECT DriverObject
14 // UNICODE_STRING uniWin32NameString;
18 // All *THIS* driver needs to do is to delete the device object and the
19 // symbolic link between our device name and the Win32 visible name.
21 // Almost every other driver ever written would need to do a
22 // significant amount of work here deallocating stuff.
25 UDFPrint( ("UDF: Unloading!!\n") );
27 // prevent mount oparations
28 UDFGlobalData
.UDFFlags
|= UDF_DATA_FLAGS_BEING_UNLOADED
;
30 // wait for all volumes to be dismounted
31 delay
.QuadPart
= 10*1000*1000*10;
33 UDFPrint(("Poll...\n"));
34 KeDelayExecutionThread(KernelMode
, FALSE
, &delay
);
37 // Create counted string version of our Win32 device name.
40 // RtlInitUnicodeString( &uniWin32NameString, DOS_DEVICE_NAME );
43 // Delete the link from our device name to a name in the Win32 namespace.
46 // IoDeleteSymbolicLink( &uniWin32NameString );
49 // Finally delete our device object
52 // IoDeleteDevice( DriverObject->DeviceObject );