please stop using krnl386.exe export when possible (especially for dos emulation which is going out of kernel32/krnl386.exe combo). So, if CreateFile can do, please use it (ditto for any other krnl386 file related functions) this is needed for proper DLL separation
Hmm, and is there a reason to not do it in _lcreat16() instead? Or is _lcreat16() really "clever" enough to handle volume labels "properly" if called directly? Somehow I doubt it... ;) Or in fact you could walk further up the chain and maybe find that even _lcreat() should be the function to have that check instead... (or, for that matter, even CreateFileA and thus CreateFileW...)
So my rough guess is that this should probably be prevented in CreateFileW instead even.