WinDriver implements malloc() and free() in its Kernel PlugIn library (kp_nt.lib ; previously also kp_95.lib), to which your Kernel PlugIn code is linked. These functions are implemented to allocate locked memory when called from the kernel mode, so you can use that memory in your interrupt handler as well.