Geeks With Blogs
Thinking Kernel Mode ExAllocatePoolWithTag(KMScrapPad, sizeof(KMSCRAP), TAG_TKM); October 2005 Entries
Writing a virtual audio driver
New Page 1 { Not invented here } Unless I scribble this down somewhere, I will forget. So let me dump my memory . . Kernel Streaming is a fairly complicated topic. And to study this, the available resources are the DDK help documentation and the samples. AFAIK, there are no books written on this topic. And what is present online is also meager. The Streaming Devices (Video & Audio) subsection of the DDK help, has everything documented. Now, in order to emulate a virtual audio hardware, we have ......

Posted On Wednesday, October 26, 2005 9:41 AM

Allocating a synchronization primitive
New Page 1 Never allocate a dispatcher object from PagedPool. Which means, don't even think about doing a KSPIN_LOCK SpinLock; within your PAGED_CODE. If a dispatcher object is allocated from PagedPool, the driver might work peacefully, but occasionally the system will bugcheck saying that it tried to access paged memory from higher IRQL. So, Allocate them explicitly from NonPagedPool . PKSPIN_LOCK pSpinLock = ExAllocatePool(NonPagedPool, sizeof(struct KSPIN_LOCK)); Or declare them globally. (All ......

Posted On Thursday, October 20, 2005 1:11 PM

Entry Point
New Page 1 The best way to describe this space is : scrap paper - loose sheets of paper, often already partly used, for writing notes on. For many reasons I feel the current timeslot to be a highly active one. A lot of things are happening. Applications are moving away from the PC to the internet. Computing is becoming more and more pervasive. The size of information we used to manage is getting bigger and bigger. There was a period when I used to wonder why the chip makers always try to make the ......

Posted On Wednesday, October 19, 2005 1:48 PM

Copyright © Sreejith S | Powered by: GeeksWithBlogs.net