Does anybody have a good reference (or possibly just explain) how a library base is constructed for a "non-shared" scenario? I'm thinking something like bsdsocket.library where you're supposed to open the library per-task/process.
Is it a case of constructing the "root" library base as normal, which is presumably the one that gets added to the system list; then in the LibOpen() function construct a task-specific base using CreateLibrary (v50+) or MakeLibrary (v36+) with, maybe, a pointer back to "root" for internal purposes? LibClose() would then deallocate the per-task base while expunging would remove the "root", perhaps?
It makes sense that the base returned from LibOpen() is the one the task will use but I'm a little unclear how to construct it all and any help would be appreciated.