Hello,

A few notes about using this library.

1. It's kernelmode.  Don't try to use it in usermode.  :-)

2. Requirements:
	a) Before using DigiAllocMem and DigiFreeMem, you must call DigiInitMem.  No cleanup
	   is necessary when unloading, except to DigiFreeMem all alloc'd memory.
		DisplayMemoryLeaks lists all paged and non-paged memory blocks currently 
		allocated.  It can be called at anytime, but is most useful just before unloading
		the driver.
	   
	b) If you want memprint capabilities (shuffling debug prints off to disk) you must 
	   call MemPrintInit().  This starts up a thread which *must* be stopped before
		unloading your driver.  Stop it by calling MemPrintQuit().

	c) DigiRegQuerySz|MultiSz|ExpandSz routines alloc strings from *paged* pool.  These
	   strings must never be accessed from DISPATCH_LEVEL or higher, and must be freed 
	   using DigiRegFreeString.

3. Recommended Usage:
	DriverEntry()
	{
		NTSTATUS Status = STATUS_SUCCESS;
		DigiInitMem();
		MemPrintInitialize();
		...

	Exit:
		if ( NT_ERROR( Status ) )
		{
			MemPrintQuit();
			DisplayMemoryLeaks();
		}
		return Status;
	}

	DriverUnload()
	{
		MemPrintQuit();
		DisplayMemoryLeaks();
	}

4. If you have suggestions, fixes, etc., feel free to make changes or tell me and I'll
   add them.  This lib is here to help all of us!

Thanks,
MikeZ