Hi Alex,
On 06/10/2010 17:53, Alex Carp wrote:
In general the FLT_GENERATE_FILE_NAME function should generate a name for
the file as it should appear above that minifilter.
I don’t understand what this means :S.
I’m not clear about what exactly is going on in your case. When you say
“”\Device\HarddiskVolume2\foo\bar\XXXX", where XXXX are 4 non-printable
characters. The 1st byte of these non printable characters is foo\bar’s
parent file ID "
What do you mean the first byte is the file ID ? the file id is at least 8
bytes.
The file ID is 8 bytes, but I print all 8 bytes separately. Since this
test is done on an almost empty test volume, file IDs are expected to be
small. Actually I wasn’t totally correct: the 1st byte matches the file
ID, the last but one is 3, and the rest of them are 0.
Also, when you say “foo\bar’s parent” , do you mean the volume ? I thought
that foo\bar is at the root of the volume ?
The file ID printed is foo’s file ID (bar’s parent). foo\bar is inside a
directory called “lala”, which is at the root of the volume (full path
is “D:\lala\foo\bar”).
Could you please explain what your filters does ? Also, could you please
show what the related file object looks like (!fileobj) and what the actual
file object looks like, and what the callback data shows ? (!fltkd.cbd)…
My filter doesn’t do anything complex, I’m only trying to understand
what name provider callbacks should do.
The related file object is NULL.
Target file object:
\lala\foo
Device Object: 0x90e66030 \Driver\volmgr
Vpb is NULL
Flags: 0x2
Synchronous IO
CurrentByteOffset: 0
Callback data:
IRP_CTRL: 909695f8 CREATE (0) [00000009] Irp SystemBuffer
Flags : [1000000c] DontCopyParms Synchronize FixedAlloc
Irp : a6ef6e28
DeviceObject : 910e3408 “\Device\HarddiskVolume2”
FileObject : 917a4558
CompletionNodeStack : 909696b0 Size=2 Next=1
SyncEvent : (90969608)
InitiatingInstance : 00000000
Icc : 995a3a3c
CreateIrp.NameCacheCtrl : 9163ba78
CreateIrp.SavedFsContext : 00000000
CallbackData : (90969658)
Flags : [00000009] Irp SystemBuffer
Thread : 91019918
Iopb : 90969684
RequestorMode : [01] UserMode
IoStatus.Status : 0xffffffff
IoStatus.Information : 00000000
TagData : 00000000
FilterContext[0] : 00000000
FilterContext[1] : 00000000
FilterContext[2] : 00000000
FilterContext[3] : 00000000
Cmd IrpFl OpFl CmpFl Instance FileObjt Completion-Context
Node Adr
[0,0] 00000000 00 0000 00000000 00000000 00000000-00000000
909696f8
Args: 00000000 00000000 00000000 00000000 00000000 0000000000000000
[0,0] 40000884 00 0000 8d485530 917a4558 8b6d4760-00000000
909696b0
(“ABCD”,“ABCD Instance”) ABCD!ABCDPostCreate (verified)
Args: 995a3ac4 01000060 00030000 00000000 00000000 0000000000000000
Working IOPB:
>[0,0] 40000884 00 8d485530 917a4558
90969684
(“ABCD”,“ABCD Instance”)
Args: 995a3ac4 01000060 00030000 00000000 00000000 0000000000000000
Thanks
Thanks,
Alex.
NTFSD is sponsored by OSR
For our schedule of debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
–
Thanos Makatos
Junior Engineer
Storage Systems Research Group - Computer Science Department
Barcelona Supercomputing Center - Centro Nacional de Supercomputación
http://www.bsc.es/StorageSystems
WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain
information which is privileged, confidential, proprietary, or exempt
from disclosure under applicable law. If you are not the intended
recipient or the person responsible for delivering the message to the
intended recipient, you are strictly prohibited from disclosing,
distributing, copying, or in any way using this message. If you have
received this communication in error, please notify the sender and
destroy and delete any copies you may have received.
http://www.bsc.es/disclaimer.htm