Hello,
During DriverUnload, should a minifilter deallocate lookaside
lists, call ExDeleteResourceLite and cancel worker items (how do we
cancel all worker items initiated via FltQueue APIs?) or should the
filter do this during some other callback?
I’m getting an 0xD4 bugcheck (system scan detected improper
driver unload) for a minifilter that does nothing but call
FltCloseCommunicationPort. The driver has no lookasides at this time for
testing purposes, has a few ERESOURCEs and it calls
FltQueueGenericWorkItem during IRP_MJ_CREATE (to get the user name) and
FltDoProcessingWhenSafe from Read/Write/Directory completion routines.
SwapBuffers sample design suggests FltDoProcessingWhenSafe
requires no attention during DriverUnload, I would assume
FltQueueGenericWorkItem is handled by the FltMgr - what am I missing?
–
Kind regards, Dejan M.
http://www.alfasp.com E-mail: xxxxx@alfasp.com
Alfa Transparent File Encryptor - Transparent file encryption services.
Alfa File Protector - File protection and hiding library for Win32
developers.
Alfa File Monitor - File monitoring library for Win32 developers.
You must assume that FltMgr does nothing for you. You are responsible for
releasing all resources yourself, including memory, threads, events, timers,
etc.
The minifilter cannot unload until all context references are released. So
hold a reference to a context (typically volume or stream handle context)
and release it at the end your thread.
Ken
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dejan Maksimovic
Sent: Monday, November 28, 2005 12:20 AM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] Unloading a minifilter
Hello,
During DriverUnload, should a minifilter deallocate lookaside
lists, call ExDeleteResourceLite and cancel worker items (how do we
cancel all worker items initiated via FltQueue APIs?) or should the
filter do this during some other callback?
I’m getting an 0xD4 bugcheck (system scan detected improper
driver unload) for a minifilter that does nothing but call
FltCloseCommunicationPort. The driver has no lookasides at this time for
testing purposes, has a few ERESOURCEs and it calls
FltQueueGenericWorkItem during IRP_MJ_CREATE (to get the user name) and
FltDoProcessingWhenSafe from Read/Write/Directory completion routines.
SwapBuffers sample design suggests FltDoProcessingWhenSafe
requires no attention during DriverUnload, I would assume
FltQueueGenericWorkItem is handled by the FltMgr - what am I missing?
–
Kind regards, Dejan M.
http://www.alfasp.com E-mail: xxxxx@alfasp.com
Alfa Transparent File Encryptor - Transparent file encryption services.
Alfa File Protector - File protection and hiding library for Win32
developers.
Alfa File Monitor - File monitoring library for Win32 developers.
Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@comcast.net
To unsubscribe send a blank email to xxxxx@lists.osr.com
Hmm, interesting idea, I’ll make sure each work item has a reference to
something.
The minifilter cannot unload until all context references are released. So
hold a reference to a context (typically volume or stream handle context)
and release it at the end your thread.
–
Kind regards, Dejan M.
http://www.alfasp.com E-mail: xxxxx@alfasp.com
Alfa Transparent File Encryptor - Transparent file encryption services.
Alfa File Protector - File protection and hiding library for Win32 developers.
Alfa File Monitor - File monitoring library for Win32 developers.