Maybe it's due to you asking too much memory and the requirements. Even though you have 8GB, demanding 128MB to be contigous, available in physical memory and not placed without crossing any 128MB boundary seems too much for your system. If it succeeds "sometimes" it may be due the loading order (if something else memory hungry claims the memory before) or some other program loading and fragmenting the memory so that it can't be continuous.
BTW, I also think that the question is too technical for SF
. Driver programming is one of the most complex things in computing so I would ask at a specialized forum instead. Try at StackOverflow, that forum is dedicated to programming and one of the best sources of info in the topic.