Reactos
1
2#include "k32_vista.h"
3
4#define FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
5
6static inline BOOL set_ntstatus( NTSTATUS status )
7{
8 if (status) SetLastError( RtlNtStatusToDosError( status ));
9 return !status;
10}
11
12/***********************************************************************
13 * GetNamedPipeClientProcessId (KERNEL32.@)
14 */
15BOOL WINAPI GetNamedPipeClientProcessId( HANDLE pipe, ULONG *id )
16{
17 IO_STATUS_BLOCK iosb;
18
19 return set_ntstatus( NtFsControlFile( pipe, NULL, NULL, NULL, &iosb,
20 FSCTL_PIPE_GET_CONNECTION_ATTRIBUTE, (void *)"ClientProcessId",
21 sizeof("ClientProcessId"), id, sizeof(*id) ));
22}