Я не могу понять, почему я получаю код ошибки ERROR_NOT_FOUND
/ 1168 (0x490). Если я заменю GetNamedPipeClientProcessId
на GetNamedPipeServerProcessId
, я успешно получу идентификатор процесса сервера.
Код:
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern bool GetNamedPipeClientProcessId(IntPtr Pipe, out int ClientProcessId);
int GetNamedPipeClientProcessId(NamedPipeServerStream pipeServer)
{
var hPipe = pipeServer.SafePipeHandle.DangerousGetHandle();
if (GetNamedPipeClientProcessId(hPipe, out var clientProcessId))
{
return clientProcessId;
}
else
{
var error = Marshal.GetLastWin32Error();
return 0;
}
}