W2k3 ddk - ServerAvilability problems.

Hi All,

After lots of reading I am trying to take the first
steps into Windows driver programming. Since I like
programming small graphic lcd's I looked at the w2k3
server ddk and to my suprise found out there was
a little support for them in the form of Server
Appliance High Availability Devices. After looking
through the sample code, I decided to take a go at it
Installed W2k3 server 3790 checked build, build the
serveravailability samples and tried to run them.

while installing the driver and booting the system
I get the following error in the debugger:

*** Assertion failed: Tag != 0
*** Source File: d:\srv03rtm\base\ntos\ex\pool.c, line 1809

With the following stack trace :

ChildEBP RetAddr Args to Child

WARNING: Stack unwind information not available. Following frames may be
wrong.
00 fc91aa20 80b0b2ff 80b0adf2 80b0add2 00000711 nt!DbgBreakPoint
01 fc91aa84 80a2cd12 00000000 00000018 00000000
nt!ExAllocatePoolWithTag+0x27
02 fc91aaa4 fc0c4da9 81140118 81175690 fc0c4c54
nt!IoAcquireRemoveLockEx+0x74
03 fc91aad0 80a2675c 81140038 81175690 81175748
SAPORT!SaPortDebugPrint+0x712d
04 fc91aaec 80c95e00 00000003 812487f0 0000030f nt!IofCallDriver+0x62
05 fc91ab1c 80a2e40b 00000000 fc91ab38 fc91ab80
nt!IoReportResourceUsage+0xf4e2
06 fc91ab5c 80c99327 00000003 81248948 00000001
nt!IoReportTargetDeviceChangeAsynchronous+0xe39
07 fc91ab84 80c9a914 00000000 00000000 00000001
nt!IoReportResourceUsage+0x12a09
08 fc91abb0 80caa64d 81248948 00000000 fc91ac20
nt!IoReportResourceUsage+0x13ff6
09 fc91ac34 80cab17e fc91ad78 e1582620 80a03598
nt!IoReportResourceUsage+0x23d2f
0a fc91ac50 80cab84f fc91ad78 81271da0 80bf5cbc
nt!IoReportResourceUsage+0x24860
0b fc91ad80 80af2aed 8111a4e0 00000000 81271da0
nt!IoReportResourceUsage+0x24f31
0c fc91adac 80d391d0 8111a4e0 00000000 00000000 nt!ExQueueWorkItem+0x28f
0d fc91addc 80b00c92 80af29de 00000001 00000000
nt!PsRemoveCreateThreadNotifyRoutine+0x38c
0e 00000000 00000000 00000000 00000000 00000000
nt!KiDispatchInterrupt+0x632

After placing some strategic KdPrints I found out that
the DriverEntry proc is getting called and all is well,
SaPortInitialize returns a STATUS_SUCCESS and the
function exits returning that same status code.

But somewhere between there and the HwInitialize
function all hell breaks lose. Other examples from the
ddk run fine so my build enviroment should be ok.

All the samples (keypad/display/nvram) experiance the
same problem. Can anybody point me in the right direction
into solving this? Am I doing something wrong? Is the
sample broken? Is the SaPort driver broken? or is there
something else but very obvious that I am overlooking?

--Ray