Hello
AFAIK, IRP_MJ_SET/GET_INFORMATION are issued w/o an IRP_MJ_CREATE preceeding
them?
What else?
Do the presented cases have exceptions (sometimes they are issued after a
CREATE was issued)?
They don’t need CLEANUP if no CREATE was issued, right?
–
Elias
> AFAIK, IRP_MJ_SET/GET_INFORMATION are issued
w/o an IRP_MJ_CREATE preceeding them?
No, definitely not.
No file operation can be performed without preceding
successful create.
L.
“Ladislav Zezula” wrote in message news:xxxxx@ntfsd…
>> AFAIK, IRP_MJ_SET/GET_INFORMATION are issued
>> w/o an IRP_MJ_CREATE preceeding them?
>
> No, definitely not.
> No file operation can be performed without preceding
> successful create.
>
> L.
>
I do GetFileAttributes() and notice that only IRP_MJ_QUERY_INFORMATION is
issued w/o CREATE/CLEANUP.
–
Elias
This is weird. At least because
IRP_MJ_SET_INFORMATION
has to be done against a file object that must be open.
Maybe you missed something. Try to do a testprogram
with GetFileAttributes in WinMain and watch the
requests by filemon.
L.
I did that.
On NTFS , only QUERY is received.
On FAT32, CREATE / QUERY / CLEANUP.
Yes, SET_INFORMATION needs CREATE as I observed.
–
Elias
“Ladislav Zezula” wrote in message news:xxxxx@ntfsd…
> This is weird. At least because
> IRP_MJ_SET_INFORMATION
> has to be done against a file object that must be open.
>
> Maybe you missed something. Try to do a testprogram
> with GetFileAttributes in WinMain and watch the
> requests by filemon.
>
> L.
> On NTFS , only QUERY is received.
On FAT32, CREATE / QUERY / CLEANUP.
Yes, SET_INFORMATION needs CREATE as I observed.
This is my observation on NTFS. The testprogram called
int WINAPI WinMain(…)
{
GetFileAttributes(_T(“E:\Huhulinator.dat”));
}
Filemon with name filter says:
1 0.00000615 FASTIO_QUERY_OPEN E:\Huhulinator.dat FAILURE
2 0.00020533 IRP_MJ_CREATE E:\Huhulinator.dat SUCCESS Options: Open
Access: All
3 0.00000419 FASTIO_QUERY_BASIC_INFO E:\Huhulinator.dat FAILURE
4 0.00003576 IRP_MJ_QUERY_INFORMATION E:\Huhulinator.dat SUCCESS
FileBasicInformation
6 0.00001983 IRP_MJ_CLEANUP E:\Huhulinator.dat SUCCESS
8 0.00001592 IRP_MJ_CLOSE E:\Huhulinator.dat SUCCESS
Fastio fails because the filter I work on denies all FASTIO requests.
Then the I/O manager sends the request using normal IRP way.
L.
This is due to FastIoQueryOpen path. It replaces CREATE for query-only
operations.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “lallous”
Newsgroups: ntfsd
To: “Windows File Systems Devs Interest List”
Sent: Wednesday, September 15, 2004 4:10 PM
Subject: Re:[ntfsd] Re:What MJs pass w/o CREATE first?
> I did that.
>
> On NTFS , only QUERY is received.
>
> On FAT32, CREATE / QUERY / CLEANUP.
>
> Yes, SET_INFORMATION needs CREATE as I observed.
>
> –
> Elias
> “Ladislav Zezula” wrote in message news:xxxxx@ntfsd…
> > This is weird. At least because
> > IRP_MJ_SET_INFORMATION
> > has to be done against a file object that must be open.
> >
> > Maybe you missed something. Try to do a testprogram
> > with GetFileAttributes in WinMain and watch the
> > requests by filemon.
> >
> > L.
>
>
>
> —
> Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
So now I can safely assume that all non-fast IOs need to have first an
IRP_MJ_CREATE, OPERATION, IRP_MJ_CLEANUP? (include MJ_GET_INFO/MJ_SET_INFO?)
Thanks,
Elias
“Maxim S. Shatskih” wrote in message
news:xxxxx@ntfsd…
> This is due to FastIoQueryOpen path. It replaces CREATE for query-only
> operations.
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
> ----- Original Message -----
> From: “lallous”
> Newsgroups: ntfsd
> To: “Windows File Systems Devs Interest List”
> Sent: Wednesday, September 15, 2004 4:10 PM
> Subject: Re:[ntfsd] Re:What MJs pass w/o CREATE first?
>
>
>> I did that.
>>
>> On NTFS , only QUERY is received.
>>
>> On FAT32, CREATE / QUERY / CLEANUP.
>>
>> Yes, SET_INFORMATION needs CREATE as I observed.
>>
>> –
>> Elias
>> “Ladislav Zezula” wrote in message news:xxxxx@ntfsd…
>> > This is weird. At least because
>> > IRP_MJ_SET_INFORMATION
>> > has to be done against a file object that must be open.
>> >
>> > Maybe you missed something. Try to do a testprogram
>> > with GetFileAttributes in WinMain and watch the
>> > requests by filemon.
>> >
>> > L.
ALL file operations must be preceded with an open request. Notice that even
the FastIoQueryOpen is an IRP based request.
Pete
xxxxx@KernelDrivers.com
www.KernelDrivers.com
1-866-263-9295
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-187470-
xxxxx@lists.osr.com] On Behalf Of lallous
Sent: Wednesday, September 15, 2004 7:00 AM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] Re:Re:What MJs pass w/o CREATE first?
So now I can safely assume that all non-fast IOs need to have first an
IRP_MJ_CREATE, OPERATION, IRP_MJ_CLEANUP? (include
MJ_GET_INFO/MJ_SET_INFO?)
Thanks,
Elias
“Maxim S. Shatskih” wrote in message
> news:xxxxx@ntfsd…
> > This is due to FastIoQueryOpen path. It replaces CREATE for query-
> only
> > operations.
> >
> > Maxim Shatskih, Windows DDK MVP
> > StorageCraft Corporation
> > xxxxx@storagecraft.com
> > http://www.storagecraft.com
> >
> > ----- Original Message -----
> > From: “lallous”
> > Newsgroups: ntfsd
> > To: “Windows File Systems Devs Interest List”
> > Sent: Wednesday, September 15, 2004 4:10 PM
> > Subject: Re:[ntfsd] Re:What MJs pass w/o CREATE first?
> >
> >
> >> I did that.
> >>
> >> On NTFS , only QUERY is received.
> >>
> >> On FAT32, CREATE / QUERY / CLEANUP.
> >>
> >> Yes, SET_INFORMATION needs CREATE as I observed.
> >>
> >> –
> >> Elias
> >> “Ladislav Zezula” wrote in message
> news:xxxxx@ntfsd…
> >> > This is weird. At least because
> >> > IRP_MJ_SET_INFORMATION
> >> > has to be done against a file object that must be open.
> >> >
> >> > Maybe you missed something. Try to do a testprogram
> >> > with GetFileAttributes in WinMain and watch the
> >> > requests by filemon.
> >> >
> >> > L.
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@kerneldrivers.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
Try running your test on a file that has not been referenced during your
current boot session, so that you avoid the effect of cached open file
references.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of lallous
Sent: Wednesday, September 15, 2004 5:10 AM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] Re:What MJs pass w/o CREATE first?
I did that.
On NTFS , only QUERY is received.
On FAT32, CREATE / QUERY / CLEANUP.
Yes, SET_INFORMATION needs CREATE as I observed.
–
Elias
“Ladislav Zezula” wrote in message news:xxxxx@ntfsd…
> This is weird. At least because
> IRP_MJ_SET_INFORMATION
> has to be done against a file object that must be open.
>
> Maybe you missed something. Try to do a testprogram
> with GetFileAttributes in WinMain and watch the
> requests by filemon.
>
> L.
—
Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@cox.net
To unsubscribe send a blank email to xxxxx@lists.osr.com
Some QUERY_INFO are serviced in FastIoQueryXxxInfo.
Some of them are even skip the CREATE path with FastIoQueryOpen.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “lallous”
Newsgroups: ntfsd
To: “Windows File Systems Devs Interest List”
Sent: Wednesday, September 15, 2004 4:59 PM
Subject: Re:[ntfsd] Re:Re:What MJs pass w/o CREATE first?
> So now I can safely assume that all non-fast IOs need to have first an
> IRP_MJ_CREATE, OPERATION, IRP_MJ_CLEANUP? (include MJ_GET_INFO/MJ_SET_INFO?)
>
> Thanks,
> Elias
> “Maxim S. Shatskih” wrote in message
> news:xxxxx@ntfsd…
> > This is due to FastIoQueryOpen path. It replaces CREATE for query-only
> > operations.
> >
> > Maxim Shatskih, Windows DDK MVP
> > StorageCraft Corporation
> > xxxxx@storagecraft.com
> > http://www.storagecraft.com
> >
> > ----- Original Message -----
> > From: “lallous”
> > Newsgroups: ntfsd
> > To: “Windows File Systems Devs Interest List”
> > Sent: Wednesday, September 15, 2004 4:10 PM
> > Subject: Re:[ntfsd] Re:What MJs pass w/o CREATE first?
> >
> >
> >> I did that.
> >>
> >> On NTFS , only QUERY is received.
> >>
> >> On FAT32, CREATE / QUERY / CLEANUP.
> >>
> >> Yes, SET_INFORMATION needs CREATE as I observed.
> >>
> >> –
> >> Elias
> >> “Ladislav Zezula” wrote in message news:xxxxx@ntfsd…
> >> > This is weird. At least because
> >> > IRP_MJ_SET_INFORMATION
> >> > has to be done against a file object that must be open.
> >> >
> >> > Maybe you missed something. Try to do a testprogram
> >> > with GetFileAttributes in WinMain and watch the
> >> > requests by filemon.
> >> >
> >> > L.
>
>
>
> —
> Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
> ALL file operations must be preceded with an open request. Notice that even
the FastIoQueryOpen is an IRP based request.
The IRP is figures there, but it cannot be pended, and IoCompleteRequest is
never called for it. So, consider this IRP just like some “parameter holder”
structure, which was chosen to be an IRP for convinience.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com