You need to send an FSCTL to the named pipe file system driver.
// defined in ntifs.h
#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,
EventHandle,
NULL,
NULL,
&IoStatusBlock,
FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE,
(PVOID)AttributeName,
sizeof(AttributeName),
NameBuffer,
NameBufferLength);
Obviously this has to be implemented in ournpfs as well. :)
Regards,
Timo
Am 10.10.2016 um 13:21 schrieb Colin Finck:
Hi all,
For implementing the RpcBindingServerFromClient rpcrt4.dll API function
needed by my Printing Stack, I need to know how to retrieve the computer
name of a named pipe client.
Vista and later implement GetNamedPipeClientComputerName in kernel32.dll
which does exactly this, but this is neither supported under Windows
Server 2003 nor implemented in ReactOS and WINE.
Determining client information is a basic feature of network
communication, so it should be possible under Windows 2003 as well.
Additionally, RpcBindingServerFromClient returns the proper computer
name of the client, when using named pipes over the ncacn_np transport.
It must have got it somehow.
Hoping for some ideas from your side!
Colin
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev