Am 10.10.2016 um 23:22 schrieb Timo Kreuzer:
#define FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
static const char AttributeName[] = "ClientComputerName";
Status = NtFsControlFile(NamedPipeHandle,
Are you sure this is the right way of doing it under Windows 2003?
While 2003's rpcrt4.dll imports NtFsControlFile, running GNU strings on
it doesn't output any "ClientComputerName" string.
Furthermore, our NPFS driver only implements the FSCTL_PIPE_* control
codes up to FSCTL_PIPE_QUERY_CLIENT_PROCESS (#9). #10 to #16 (with
FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE being #12) are not processed. Same
goes for the free ntifs.h from
https://www.acc.umu.se/~bosse/ntifs.h, it
lacks all FSCTL_PIPE_* codes after #9. I'm getting the impression, #10
to #16 were only introduced with NT 6.0.
If I had the ntifs.h from Windows 2003, I could confirm my theory, but
this file was never public and only part of the commercial IFS Kit.
So, talking to the NPFS driver probably goes into the right direction,
but I assume we have to find an alternative to
FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE.
- Colin