On Fri, Jan 8, 2010 at 6:41 AM, Dan Kegel dank@kegel.com wrote:
Maybe what we want is a safe implementation of RtlGetNtGlobalFlags(), one that returns zero if it's not safe to call NtCurrentTeb(). We could store the global flags in a plain old global variable, and copy it in to the peb but never reference it there, I suppose. Would that be clean enough for you? Or is that still too kludgy?
Or would you prefer Joris' approach:
couldn't you place the RtlCreateHeap implementation with an internal function, that takes an extra argument (boolean or flags) to indicate whether to do this initialization step or not ? Then, call the internal function from virtual_init() with the boolean set, and have RtlCreateHeap just calling it, without the boolean set. I've seen something like this being done elsewhere (but for different reasons)
?