No if you are calling them at driver entry you should be ok. The kernel
ddis generally do not directly check IRQL on invocation (except in the
checked build and if verifier is enabled in either build.) That doesn’t
make windows dumb, it is just a policy decision. Consequently
IRQL_NOT_LESS_OR_EQUAL is typically a result of an indirect failure -
for example a page fault at >= DISPATCH_LEVEL, rather than explicit IRQL
checking on ddi invocation. The point being that just because it seems
to work doesn’t mean that the code is correct.
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Pritam
Sent: Tuesday, December 06, 2005 7:22 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] MDL creation problem
I am calling these routines at my DriverEntry, which gets called at
<=DISPATCH_LEVEL even for a hiber_(drivername).sys
If that would not have been the case, i would have got a
IRQL_NOT_LESS_OR_EQUAL error anyway. So is there a problem there???
Or is Windows so dumb???
On 12/6/05, Mark Roddy wrote:
If you are continuing to call these routines at > DISPATCH_LEVEL your
code is broken and will eventually crash the system. See my other post
about preallocating your buffers and mdls.
=====================
Mark Roddy DDK MVP
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com http:</http:>
From: xxxxx@lists.osr.com [mailto:
xxxxx@lists.osr.com
mailto:xxxxx] On Behalf Of Pritam
Sent: Tuesday, December 06, 2005 5:23 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] MDL creation problem
I was able to write my own buffer to the slave drive and what i
found was if i allocate the MDL in IoAllocateMDl() in PAGE_SIZE
boundaries, then there’s no hang, and its all writing exactly what and
where to the Slave Drive, i intend to!!! One problem solved
Wonder why though, if this is any sort of restriction or the PIO
model itself works that way…
On 12/6/05, Pritam wrote:
Well i am precreating a MDL at DriverEntry (hoping and being
almost sure), that it gets called at <=DISPATCH_LEVEL when my
hiber_(mydriver).sys gets reloaded during hibernate, and then
fill up the Buffer for the MDL at the Hibernate CrashDumpWrite routine.
Doing this makes the code wait forever for the device to
interrupt (i am doing PIO) and thats it. I am hoping to find out the
difference between the system MDL and my created MDL, if that leads to a
anything…
As of nw, in a fix for sure!
On 12/4/05, Mark Roddy wrote:
Hmm… well having thought about it perhaps the answer is to
precreate an SRB that your other device can use and reuse as you see
fit.
=====================
Mark Roddy DDK MVP
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com http:</http:>
From: xxxxx@lists.osr.com [mailto:
xxxxx@lists.osr.com
mailto:xxxxx] On Behalf Of Mark Roddy
Sent: Saturday, December 03, 2005 3:30 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] MDL creation problem
I assumed that you simply wanted to write the same dump
data to both sides of a mirrored disk. It seems instead that you want to
write some other different data to whatever this ‘slave’ device is.
Quite frankly I don’t know how you are going to do that. Sorry.
=====================
Mark Roddy DDK MVP
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com http:</http:>
________________________________
From: xxxxx@lists.osr.com [mailto:
xxxxx@lists.osr.com
mailto:xxxxx] On Behalf Of Pritam
Sent: Saturday, December 03, 2005 2:41 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] MDL creation problem
Any comments from people in MS Windows, or MVPs,
or OSR people…??? It would do me good to find a way out!! Expecting
something from the Guru’s here…
It may look a hack, but this is not for a
product or anthing…
On 12/2/05, Pritam wrote:
I am creating the SRB for the master disk in the
CrashDumpWrite routine itself, so whatever MDL is passed to me by the OS
there, i allocate it to the SRB that i created. The code looks like
this:
// need to pull the DB field directly out
of the MDL; and it had better be mapped!
srb.DataBuffer = Mdl->MappedSystemVa;
srb.DataTransferLength =
MmGetMdlByteCount(Mdl);
Every 5th crash dump write i want to write
something to the slave disk. So how i can reuse the SRB, since the
Srb->DataBuffer has to point to an Mdl->MappedSystemVa, since
METHOD_DIRECT method is used in ScsiPort drivers (if i am not worng).
Can i change the Mdl->MappedSystemVa to point to
my data to write or can i change the data pointed to by it??
Both may not be possible as the Mdl pages maybe
pinned down and locked. But any suggestions?
On a different track, will an SMI generation at
this point work and the modifying the BIOS code to write to the HDD??
On 12/2/05, Developer
wrote:
as suggested by someone else in this thread,
can’t you reuse the SRB instead?
— Questions? First check the Kernel Driver FAQ
at http://www.osronline.com/article.cfm?id=256 You are currently
subscribed to ntdev as: unknown lmsubst tag argument: ‘’ To unsubscribe
send a blank email to xxxxx@lists.osr.com
— Questions? First check the Kernel Driver FAQ
at http://www.osronline.com/article.cfm?id=256 You are currently
subscribed to ntdev as: unknown lmsubst tag argument: ‘’ To unsubscribe
send a blank email to xxxxx@lists.osr.com
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown
lmsubst tag argument: ‘’
To unsubscribe send a blank email to
xxxxx@lists.osr.com
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag
argument: ‘’
To unsubscribe send a blank email to
xxxxx@lists.osr.com
— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 You are currently subscribed
to ntdev as: unknown lmsubst tag argument: ‘’ To unsubscribe send a
blank email to xxxxx@lists.osr.com
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 You are currently subscribed
to ntdev as: unknown lmsubst tag argument: ‘’ To unsubscribe send a
blank email to xxxxx@lists.osr.com</mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>