Mark,
Okay, I got to the point where my DriverEntry is being called for my
SCSIPORT driver during the hibernate sequence. I got a question for you
since I’m a little confused on what the OS is trying to do here. Am I going
to see my SCSIPORT driver go through AddDevice, StartDevice, and then alot
of READ/WRITE Irps to store the hibernate file? If not, then what do I
expect to see happen during this phase of hibernation.
Joe
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Roddy, Mark
Sent: Thursday, January 31, 2002 11:58 AM
To: NT Developers Interest List
Subject: [ntdev] RE: Can you hibernate a Win2k, WinXp system that does
n’t use MS SCSIPORT driver.If you were using a miniport model instead you wouldn’t be having these
problemsThe first driver is probably a confused scsiport ‘dump driver’. The second
one is A COPY OF your driver, which I suspect the system is confused into
thinking is a miniport. You need to set IOCTL_SCSI_GET_DUMP_POINTERS
DumpPointers.DeviceObject to your device object, as this is the
clue to the
dump path support that you are NOT a scsi-miniport. The rest of that
undocumented mess is up to you.> -----Original Message-----
> From: Joe Moriarty [mailto:xxxxx@east.sun.com]
> Sent: Thursday, January 31, 2002 11:22 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: Can you hibernate a Win2k, WinXp system
> that doesn’t use MS SCSIPORT driver.
>
>
> Thanks for the reply Mark,
>
> I have noticed in the debugger that the OS thinks there is a
> driver named hiber_ and a driver named
> > dump_. Unfortunately, the driver’s have a
> > different starting and end address when viewing them with a
> > ‘lm’ command under windbg. I set a breakpoint in my
> > DriverEntry routine but do not get called with my DriverEntry
> > during a hibernate sequence. Is it because I cannot debug
> > the driver at this point? Or is it because I do not have
> > something connected correctly?
> >
> > Also, this is pertaining to IOCTL_SCSI_GET_DUMP_POINTERS
> > IOCTL. The DUMP_POINTERS structure passed back for this
> > IOCTL. I am using a virtual SCSIPORT driver. I don’t have a
> > physical HAB adapter in my system. So what do I fill in for
> > these values? Alot of these values pertain to physical
> > adapter hardware things like the variable MappedRegisterBase.
> >
> > typedef struct _DUMP_POINTERS {
> > struct _ADAPTER_OBJECT *AdapterObject;
> > PVOID MappedRegisterBase;
> > PVOID DumpData;
> > PVOID CommonBufferVa;
> > LARGE_INTEGER CommonBufferPa;
> > ULONG CommonBufferSize;
> > BOOLEAN AllocateCommonBuffers;
> > BOOLEAN UseDiskDump;
> > UCHAR Spare1[2];
> > PVOID DeviceObject;
> > } DUMP_POINTERS, *PDUMP_POINTERS;
> >
> > Thanks,
> > Joe
> >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com]On Behalf Of Mark Roddy
> > > Sent: Wednesday, January 30, 2002 7:28 PM
> > > To: NT Developers Interest List
> > > Subject: [ntdev] RE: Can you hibernate a Win2k, WinXp system that
> > > doesn’t use MS SCSIPORT driver.
> > >
> > >
> > > I think that if your driver is the boot disk driver then
> > your driver
> > > ought to also be the hiber_diskdump.sys driver. I don’t
> > know if this
> > > is especially documented anywhere, but if your driverentry
> > is called
> > > with a NULL DriverObject, AND you think you are a dump device, THEN
> > > your driverentry routine is being invoked in the context of
> > a dump or
> > > hibernate operation.
> > >
> > > Bugcheck D1 is: DRIVER_IRQL_NOT_LESS_OR_EQUAL, and I think
> > your driver
> > > entry routine is walking off the end of a NULL pointer with
> > the usual
> > > results.
> > >
> > > Of course I could be completely wrong too, but I’m sure
> > somebody will
> > > step up to correct me if I am.
> > >
> > > You also have to support IOCTL_SCSI_GET_DUMP_POINTERS.
> > >
> > > =====================
> > > Mark Roddy
> > > Windows XP/2000/NT Consulting
> > > Hollis Technology Solutions 603-321-1032
> > > www.hollistech.com
> > > xxxxx@hollistech.com
> > > For Windows Device Driver Training: see www.azius.com
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com] On Behalf Of Joe Moriarty
> > > Sent: Wednesday, January 30, 2002 2:32 PM
> > > To: NT Developers Interest List
> > > Subject: [ntdev] Can you hibernate a Win2k, WinXp system
> > that doesn’t
> > > use MS SCSIPORT driver.
> > >
> > >
> > > I am trying to get hibernation to work on our system. I
> > have run into
> > > a BSOD that I cannot debug because I do not have MS source.
> > We do not
> > > use the MS SCSIPORT driver. I have a feeling the BSOD is
> > related to
> > > the OS trying to get sole access to the HAB directly instead of
> > > through the Port driver. Here’s my BSOD dump. Is my assumption
> > > correct or wrong?
> > >
> > >
> > ********************************************************************
> > >
> > > *
> > >
> > > *
> > > *
> > > * Bugcheck Analysis
> > > *
> > > *
> > > *
> > >
> > ****************************************************
> >
> > > *
> > >
> > >
> > > Use !analyzebugcheck -v to get more information.
> > >
> > > BugCheck D1, {0, 2, 1, f3cdc08c}
> > > Fault occurred in driver hiber_diskdump.sys (
> > > hiber_diskdump!DriverEntry+0x20 )
> > > f3cdc08c f3ab rep stosd
> > > Followup : MachineOwner
> > >
> > > ntoskrnl!RtlpBreakWithStatusInstruction:
> > > 8050d064 cc int 3
> > > WARNING: Stack unwind information not available. Following
> > frames may
> > > be wrong.
> > > kd> kv
> > > ChildEBP RetAddr Args to Child
> > > f8d7ef64 805226a5 00000003 00000000 000000d1
> > > ntoskrnl!RtlpBreakWithStatusInstruction (FPO: [1,0,0]) f8d7efb0
> > > 80522dea 00000003 00000000 f3cdc08c
> > ntoskrnl!KiBugCheckDebugBreak+0x19
> > > (FPO:
> > > [Non-Fpo]) f8d7f378 804fc1bb 000000d1 00000000 00000002
> > > ntoskrnl!KeBugCheck2+0x43c
> > > (FPO: [Non-Fpo])
> > > f8d7f398 804d7c50 0000000a 00000000 00000002
> > ntoskrnl!KeBugCheckEx+0x19
> > > (FPO: [Non-Fpo])
> > > f8d7f398 f3cdc08c 0000000a 00000000 00000002 ntoskrnl!KiTrap0E+0x2ad
> > > (FPO: [0,0] TrapFrame @ f8d7f3b4) f8d7f430 80520734
> > 00000000 80e4ca18
> > > 89176a45 hiber_diskdump!DriverEntry+0x20
> > > (FPO: [EBP 0xf8d7f474] [2,0,4])
> > > f8d7f448 806385dd 80e4ca18 00000000 00000000
> > > ntoskrnl!IoInitializeDumpStack+0x1e (FPO: [2,0,3]) f8d7f4e8 806bd99f
> > > 8069fed8 f8d7f57c f8d7f5b8 ntoskrnl!PopSaveHiberContext+0x13d (FPO:
> > > [1,33,3]) f8d7f4fc 80639eb3 00000003 806384a0 ff9ca9f8
> > > hal!HaliLegacyPowerStateChange+0x21 (FPO: [Non-Fpo])
> > f8d7f524 80639f59
> > > f8d7f5b8 f8d7f57c 00000001 ntoskrnl!PopHandleNextState+0xbb (FPO:
> > > [Non-Fpo]) f8d7f53c 8063a135 f8d7f5dc f8d7f57c 00000005
> > > ntoskrnl!PopIssueNextState+0x33
> > > (FPO: [Non-Fpo])
> > > f8d7f5f8 8063a3c8 00000003 ff9ca9f8 f8d7f6e0
> > > ntoskrnl!PopInvokeSystemStateHandler+0x1cb (FPO: [2,39,3]) f8d7f608
> > > 80638cb0 00000005 ff9ca9f8 f8d7f6f4 ntoskrnl!PopSleepSystem+0x3b
> > > (FPO: [Non-Fpo])
> > > f8d7f6e0 804d4e91 00000002 00000005 20000003
> > > ntoskrnl!NtSetSystemPowerState+0x564
> > > f8d7f6e0 8050c14b 00000002 00000005 20000003
> > > ntoskrnl!KiSystemService+0xc4
> > > (FPO: [0,0] TrapFrame @ f8d7f6f4)
> > > f8d7f764 806387a2 00000002 00000005 20000003
> > > ntoskrnl!ZwSetSystemPowerState+0x11 (FPO: [3,0,0]) f8d7f840 804d4e91
> > > 00000002 00000005 20000003 ntoskrnl!NtSetSystemPowerState+0x57 (FPO:
> > > [Non-Fpo]) f8d7f840 7ffe0304 00000002 00000005 20000003
> > > ntoskrnl!KiSystemService+0xc4
> > > (FPO: [0,0] TrapFrame @ f8d7f854)
> > > 0006f3c8 77f7f2cf 0101efc4 00000002 00000005
> > > SharedUserData!SystemCallStub+0x4 (FPO: [0,0,0])
> > > WARNING: Stack unwind information not available. Following
> > frames may be
> > > wrong. 0006f4e0 01020490 00079868 00010024 0006fd1c ntdll+0x2f2cf
> > >
> > > Thanks In Advance,
> > > Joe
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@hollistech.com To
> > > unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as:
> > xxxxx@east.sun.com To
> > > unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> >
> >
> > —
> > You are currently subscribed to ntdev as:
> > xxxxx@stratus.com To unsubscribe send a blank email to
> > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
>
> —
> You are currently subscribed to ntdev as: xxxxx@east.sun.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com