Newbie question: corrupt executive memory pool


I am writing a TDI client. In one of the functions, I created 1 or more
connection endpoints and queued them to be used later by another module. I
have tested the code and it works fine. I have also verified using OSR’s
PoolTag utility that the driver was releasing all the memory it had

However, after I unload the driver, I get an error 0xc5 and the memory
accessed is 0x00000000. WinDbg identifies that the PEB address is NULL! I
have no clue as to how the client might be corrupting the executive memory
pool. Can anyone help?


I don’t see, from your description, how you arrived at the conclusion
that memory was corrupted. There are other explanations.

Have you eliminated the possibility that you’ve unloaded I/O completion
routines or event handlers that the transport still expects to use? You
can check this by looking at the stack at the point of failure: If you
see names like ‘callback’ or ‘connupdate’ or such – these are from
memory of my own debugging of a TDI client – you are probably seeing a
failed call to a completion routine or event handler.

If replying by e-mail, please remove “nospam.” from the address.

James Antognini