On Wed Nov 22 00:22:36 2023 +0000, Zebediah Figura wrote:
presumably using OBJ_OPENIF to distinguish the two.
I'm not sure about that.
- Interposing different semantics to `attr` is in-band signaling.
- Note that native ignores `OBJ_OPENIF` entirely IIRC (you can't
create a file normally there). If we want to use it for internal purposes, we would want to *special case* NPFS and then filter that flag out. I misremember, it's not OBJ_OPENIF that does this exactly, it's FILE_CREATE / FILE_OPEN_IF. That'd have to be plumbed.
- Also, `open_file` doesn't accept `attr`. Or perhaps, did you mean
for me to extend it? Combining lookup_name() and open_file() would imply passing attr, yes.
I still don't get what `FILE_CREATE` vs `FILE_OPEN_IF` solves. Am I supposed to distinguish between the presence and absense of trailing `` with them? Note that you cannot "create" a named pipe via `NtCreateFile`.