From: Pierre Schweitzer Date: Mon, 23 Oct 2017 12:36:18 +0000 (+0200) Subject: [KERNEL32] Fix a FIXME in GetNamedPipeHandleStateW and stub a private function for... X-Git-Tag: 0.4.8-dev~21 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=19cef7806c43e34a00e1eb13dbb9444e722249a8;ds=sidebyside [KERNEL32] Fix a FIXME in GetNamedPipeHandleStateW and stub a private function for a left unimplemented function --- diff --git a/dll/win32/kernel32/client/file/npipe.c b/dll/win32/kernel32/client/file/npipe.c index ee341580c25..3ed0c555e30 100644 --- a/dll/win32/kernel32/client/file/npipe.c +++ b/dll/win32/kernel32/client/file/npipe.c @@ -20,6 +20,20 @@ LONG ProcessPipeId; /* FUNCTIONS ******************************************************************/ +static +BOOL +NpGetUserNamep(HANDLE hNamedPipe, + LPWSTR lpUserName, + DWORD nMaxUserNameSize) +{ + /* FIXME - open the thread token, call ImpersonateNamedPipeClient() and + retrieve the user name with GetUserName(), revert the impersonation + and finally restore the thread token */ + UNIMPLEMENTED; + return TRUE; +} + + /* * @implemented */ @@ -935,18 +949,28 @@ GetNamedPipeHandleStateW(HANDLE hNamedPipe, *lpMaxCollectionCount = RemoteInfo.MaximumCollectionCount; } - if(lpCollectDataTimeout != NULL) + if (lpCollectDataTimeout != NULL) { - /* FIXME */ - *lpCollectDataTimeout = 0; + LARGE_INTEGER CollectDataTime; + + /* Convert time and return it */ + RemoteInfo.CollectDataTime.QuadPart *= -1; + CollectDataTime = RtlExtendedLargeIntegerDivide(RemoteInfo.CollectDataTime, 10000, NULL); + /* In case of overflow, just return MAX - 1 */ + if (CollectDataTime.HighPart != 0) + { + *lpCollectDataTimeout = -2; + } + else + { + *lpCollectDataTimeout = CollectDataTime.LowPart; + } } } if (lpUserName != NULL) { - /* FIXME - open the thread token, call ImpersonateNamedPipeClient() and - retrieve the user name with GetUserName(), revert the impersonation - and finally restore the thread token */ + return NpGetUserNamep(hNamedPipe, lpUserName, nMaxUserNameSize); } return TRUE;