On 10/10/22 10:12, Jin-oh Kang wrote:
- is \Device\NamedPipe any different from a normal pipe?
Yes, it is. It's a device object.
Well, yes and no; there is a device object that exists in the object tree at \Device\NamedPipe (it has an object type of "Device"), but I mean the file object that you get when you open that exact path (which has an object type of "File"). Is that different from a normal pipe, and if so, how?
- is \Device\NamedPipe\ any different from a normal pipe?
Yes, it is. It's a directory of a filesystem, named NPFS. This is the only directory of NPFS. There does not exist a directory with any other pathname for NPFS.
What does this mean in practice, though? We don't have tests for trying to do anything with the \Device\NamedPipe\ file, other than calling FSCTL_PIPE_WAIT on it. (And we don't have tests for FSCTL_PIPE_WAIT on "normal" pipes either.)
Also, as far as I can find, we don't have tests for using a RootDirectory other than \Device\NamedPipe or \Device\NamedPipe.
- is "\Device\NamedPipe\foo" a different object than
"\Device\NamedPipe\foo", and, if so, does it behave any differently?
Yes, it is. They are both normal named pipes, each with a unique, different name. Two pathnames you have mentioned are both valid. They are not aliases to each other.
Do we have tests for this anywhere?