Is there some problem with this code?

The function MmAllocateContiguousMemorySpecifyCache always returns NULL. The size being only 12K. I tried loading the driver at boot time, making it demand start etc. Is it the correct way to get buffer within 64k range?

lowaddr.LowPart = 0;
lowaddr.HighPart = 0;
highaddr.LowPart = 0xffffefff;
highaddr.HighPart = 0;
boundaddr.LowPart = 0x0000ffff;
boundaddr.HighPart = 0;

va = MmAllocateContiguousMemorySpecifyCache(size,
lowaddr,
highaddr,
boundaddr,
MmNonCached);

Thanks,
Giri.