My scenario is the following: the process that creates the named pipe object with CreateNamedPipe()
has administrator privileges, but the client process \"connectin
Here's your problem:
ea[0].grfAccessPermissions = STANDARD_RIGHTS_ALL;
STANDARD_RIGHTS_ALL
is not all rights, only all standard rights, i.e., delete, read control, synchronize, write DAC, and write owner. In particular it does not grant FILE_READ_DATA
or FILE_WRITE_DATA
, which a client needs in order to read and/or write data to the pipe.
I'd recommend
ea[0].grfAccessPermissions = GENERIC_READ | FILE_WRITE_DATA;
and have the client request the same access rights when opening the pipe. (Obviously, you can leave out the FILE_WRITE_DATA
right if this is an outbound pipe, although in that case the default permissions should be OK.)