WMI for a SCSI Miniport ...

Hi !
I am implementing WMI on a SCSI Miniport and I am facing the following
problem -

As per the docs and the SCSI Miniport sample in the DDK I am doing -

  1. Register as a WMI data provider by setting the flag in
    PPORT_CONFIGURATION_INFORMATION
    ConfigInfo->WmiDataProvider = TRUE; in my FindAdapter routine.
  2. Created the MOF file and compiled it as a binary resource in the
    miniport’s binary image.
  3. Implemented the required HwScsiWmiXxx callback routines.

However when I install and run my driver, I observe that I do not get
any calls to
the StartIO routine with SRB_FUNCTION_WMI. Also, while the SCSIPort is
trying to initialize, it bugchecks.
I guess, SCSIPORT is registering as a WMI data provider and is missing
something while doing so.

I am trying to figure out whats that ? ? ? am I missing something here
? ? ?
Any help would be great !

Thanks
-Girish



*** Fatal System Error: 0x0000007e
(0xC0000005,0xF84894E8,0xF897CAD0,0xF897C7D0)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

************************************************************************
*******
*
*
* Bugcheck Analysis
*
*
*
************************************************************************
*******

Use !analyze -v to get detailed debugging information.

BugCheck 7E, {c0000005, f84894e8, f897cad0, f897c7d0}

*** ERROR: Symbol file could not be found. Defaulted to export symbols
for ntoskrnl.exe -
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for SCSIPORT.SYS -
Probably caused by : SCSIPORT.SYS ( SCSIPORT!ScsiPortInitialize+54ea )

Followup: MachineOwner

nt!DbgBreakPointWithStatus+4:
8050d064 cc int 3
kd> !analyze -v
************************************************************************
*******
*
*
* Bugcheck Analysis
*
*
*
************************************************************************
*******

SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003. This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never
have
hardcoded breakpoints in retail code, but …
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
An exception code of 0x80000002 (STATUS_DATATYPE_MISALIGNMENT) indicates
that an unaligned data reference was encountered. The trap frame will
supply additional information.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: f84894e8, The address that the exception occurred at
Arg3: f897cad0, Exception Record Address
Arg4: f897c7d0, Context Record Address

Debugging Details:

***** Kernel symbols are WRONG. Please fix symbols to do analysis.

EXCEPTION_CODE: c0000005

FAULTING_IP:
SCSIPORT!ScsiPortInitialize+54ea
f84894e8 8b4804 mov ecx,[eax+0x4]

EXCEPTION_PARAMETER1: f897cad0

CONTEXT: f897c7d0 – (.cxr fffffffff897c7d0)
eax=00000000 ebx=822d9790 ecx=00000000 edx=00000000 esi=f897cc94
edi=f897cc20
eip=f84894e8 esp=f897cb98 ebp=f897cc3c iopl=0 nv up ei ng nz ac
po cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010297
SCSIPORT!ScsiPortInitialize+54ea:
f84894e8 8b4804 mov ecx,[eax+0x4]
Resetting default context

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x7E

LAST_CONTROL_TRANSFER: from f84898b5 to f84894e8

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be
wrong.
f897cc3c f84898b5 81fa9a38 00000008 f897cc94
SCSIPORT!ScsiPortInitialize+0x54ea
f897cc78 f8489a88 81fa9a38 0097cc94 822ca760
SCSIPORT!ScsiPortInitialize+0x58b7
f897cca4 f8479450 81fa9af0 81fff008 8204f788
SCSIPORT!ScsiPortInitialize+0x5a8a
f897ccf0 805b3299 81fff008 00000008 822ca703 SCSIPORT+0x450
f897cd1c 805a8b55 00000008 81fa9a38 00000000
nt!RtlWriteRegistryValue+0x79d
f897cd58 805a8bac 822ca760 00000000 805a8d5b nt!IoInitializeTimer+0x1cc
f897cdac 80559026 00000000 00000000 00000000 nt!IoInitializeTimer+0x223
f897cddc 8050f513 804ebc35 00000001 00000000
nt!FsRtlNotifyUninitializeSync+0x193
00000000 00000000 00000000 00000000 00000000
nt!KeProfileInterruptWithSource+0x290

FOLLOWUP_IP:
SCSIPORT!ScsiPortInitialize+54ea
f84894e8 8b4804 mov ecx,[eax+0x4]

FOLLOWUP_NAME: MachineOwner

SYMBOL_NAME: SCSIPORT!ScsiPortInitialize+54ea

MODULE_NAME: SCSIPORT

IMAGE_NAME: SCSIPORT.SYS

DEBUG_FLR_IMAGE_TIMESTAMP: 3b7d83e4

STACK_COMMAND: .cxr fffffffff897c7d0 ; kb

BUCKET_ID: WRONG_SYMBOLS

Followup: MachineOwner

First you need to fix your symbols - set the symbol path to

srv*c:\foo*http://msdl.microsoft.com/download/symbols

And rerun the !analyze - that way you will get a decent stack trace that
folks might have a chance of commenting on.

/simgr

-----Original Message-----
From: Girish Kulkarni (kulkis) [mailto:xxxxx@cisco.com]
Sent: Thursday, December 19, 2002 10:43 AM
To: NT Developers Interest List
Subject: [ntdev] WMI for a SCSI Miniport …

Hi !
I am implementing WMI on a SCSI Miniport and I am facing the following
problem -

As per the docs and the SCSI Miniport sample in the DDK I am doing -

  1. Register as a WMI data provider by setting the flag in
    PPORT_CONFIGURATION_INFORMATION
    ConfigInfo->WmiDataProvider = TRUE; in my FindAdapter routine.
  2. Created the MOF file and compiled it as a binary resource in the
    miniport’s binary image.
  3. Implemented the required HwScsiWmiXxx callback routines.

However when I install and run my driver, I observe that I do not get
any calls to
the StartIO routine with SRB_FUNCTION_WMI. Also, while the SCSIPort is
trying to initialize, it bugchecks.
I guess, SCSIPORT is registering as a WMI data provider and is missing
something while doing so.

I am trying to figure out whats that ? ? ? am I missing something here
? ? ?
Any help would be great !

Thanks
-Girish



*** Fatal System Error: 0x0000007e
(0xC0000005,0xF84894E8,0xF897CAD0,0xF897C7D0)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

************************************************************************
*******
*
*
* Bugcheck Analysis
*
*
*
************************************************************************
*******

Use !analyze -v to get detailed debugging information.

BugCheck 7E, {c0000005, f84894e8, f897cad0, f897c7d0}

*** ERROR: Symbol file could not be found. Defaulted to export symbols
for ntoskrnl.exe -
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for SCSIPORT.SYS -
Probably caused by : SCSIPORT.SYS ( SCSIPORT!ScsiPortInitialize+54ea )

Followup: MachineOwner

nt!DbgBreakPointWithStatus+4:
8050d064 cc int 3
kd> !analyze -v
************************************************************************
*******
*
*
* Bugcheck Analysis
*
*
*
************************************************************************
*******

SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003. This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never
have
hardcoded breakpoints in retail code, but …
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
An exception code of 0x80000002 (STATUS_DATATYPE_MISALIGNMENT) indicates
that an unaligned data reference was encountered. The trap frame will
supply additional information.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: f84894e8, The address that the exception occurred at
Arg3: f897cad0, Exception Record Address
Arg4: f897c7d0, Context Record Address

Debugging Details:

***** Kernel symbols are WRONG. Please fix symbols to do analysis.

EXCEPTION_CODE: c0000005

FAULTING_IP:
SCSIPORT!ScsiPortInitialize+54ea
f84894e8 8b4804 mov ecx,[eax+0x4]

EXCEPTION_PARAMETER1: f897cad0

CONTEXT: f897c7d0 – (.cxr fffffffff897c7d0)
eax=00000000 ebx=822d9790 ecx=00000000 edx=00000000 esi=f897cc94
edi=f897cc20
eip=f84894e8 esp=f897cb98 ebp=f897cc3c iopl=0 nv up ei ng nz ac
po cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010297
SCSIPORT!ScsiPortInitialize+54ea:
f84894e8 8b4804 mov ecx,[eax+0x4]
Resetting default context

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x7E

LAST_CONTROL_TRANSFER: from f84898b5 to f84894e8

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be
wrong.
f897cc3c f84898b5 81fa9a38 00000008 f897cc94
SCSIPORT!ScsiPortInitialize+0x54ea
f897cc78 f8489a88 81fa9a38 0097cc94 822ca760
SCSIPORT!ScsiPortInitialize+0x58b7
f897cca4 f8479450 81fa9af0 81fff008 8204f788
SCSIPORT!ScsiPortInitialize+0x5a8a
f897ccf0 805b3299 81fff008 00000008 822ca703 SCSIPORT+0x450
f897cd1c 805a8b55 00000008 81fa9a38 00000000
nt!RtlWriteRegistryValue+0x79d
f897cd58 805a8bac 822ca760 00000000 805a8d5b nt!IoInitializeTimer+0x1cc
f897cdac 80559026 00000000 00000000 00000000 nt!IoInitializeTimer+0x223
f897cddc 8050f513 804ebc35 00000001 00000000
nt!FsRtlNotifyUninitializeSync+0x193
00000000 00000000 00000000 00000000 00000000
nt!KeProfileInterruptWithSource+0x290

FOLLOWUP_IP:
SCSIPORT!ScsiPortInitialize+54ea
f84894e8 8b4804 mov ecx,[eax+0x4]

FOLLOWUP_NAME: MachineOwner

SYMBOL_NAME: SCSIPORT!ScsiPortInitialize+54ea

MODULE_NAME: SCSIPORT

IMAGE_NAME: SCSIPORT.SYS

DEBUG_FLR_IMAGE_TIMESTAMP: 3b7d83e4

STACK_COMMAND: .cxr fffffffff897c7d0 ; kb

BUCKET_ID: WRONG_SYMBOLS

Followup: MachineOwner


You are currently subscribed to ntdev as: xxxxx@stratus.com
To unsubscribe send a blank email to %%email.unsub%%