1
0
mirror of https://github.com/UzixLS/KernelEx.git synced 2025-07-19 07:21:20 +03:00
Files
KernelEx/auxiliary/wtsapi32/wtsapi32.c
2018-11-03 16:23:17 +03:00

354 lines
9.3 KiB
C
Executable File

/* Copyright 2007 Xeno86
* Copyright 2005 Ulrich Czekalla
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
//#include "config.h"
#include <stdarg.h>
#include <stdlib.h>
#include <windows.h>
/*#include "windef.h"
#include "winbase.h"*/
#include "wtsapi32.h"
//#include "wine/debug.h"
#include <stdio.h>
#ifdef _MSC_VER
#pragma warning(disable:4002)
#define TRACE()
#define FIXME()
#else
#define TRACE(x,args...) debug_output(__func__,x,args)
#define FIXME(x,args...) TRACE("FIXME: "x,args)
#endif
//WINE_DEFAULT_DEBUG_CHANNEL(wtsapi);
static const char* debugstr_a(const char* a)
{
return a;
}
static const char* debugstr_w(const wchar_t* w)
{
static char a[256];
WideCharToMultiByte(CP_ACP, 0, w, -1, a, sizeof(a), NULL, NULL);
return a;
}
static void debug_output(const char* func, const char* fmt, ...)
{
va_list args;
char buf[200];
va_start(args, fmt);
strcpy(buf, func);
strcat(buf, ": ");
vsprintf(buf + strlen(buf), fmt, args);
va_end(args);
OutputDebugStringA(buf);
}
static HMODULE WTSAPI32_hModule = 0;
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
TRACE("%p,%lx,%p\n", hinstDLL, fdwReason, lpvReserved);
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
{
OSVERSIONINFO osv;
osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osv);
if (osv.dwMajorVersion < 5)
return FALSE;
DisableThreadLibraryCalls(hinstDLL);
WTSAPI32_hModule = hinstDLL;
break;
}
case DLL_PROCESS_DETACH:
{
break;
}
}
return TRUE;
}
/************************************************************
* WTSCloseServer (WTSAPI32.@)
*/
void WINAPI WTSCloseServer(HANDLE hServer)
{
FIXME("Stub %p\n", hServer);
}
/************************************************************
* WTSDisconnectSession (WTSAPI32.@)
*/
BOOL WINAPI WTSDisconnectSession(HANDLE hServer, DWORD SessionId, BOOL bWait)
{
FIXME("Stub %p 0x%08lx %d\n", hServer, SessionId, bWait);
return TRUE;
}
/************************************************************
* WTSEnumerateProcessesA (WTSAPI32.@)
*/
BOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer, DWORD Reserved, DWORD Version,
PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount)
{
FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
ppProcessInfo, pCount);
if (!ppProcessInfo || !pCount) return FALSE;
*pCount = 0;
*ppProcessInfo = NULL;
return TRUE;
}
/************************************************************
* WTSEnumerateProcessesW (WTSAPI32.@)
*/
BOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer, DWORD Reserved, DWORD Version,
PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount)
{
FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
ppProcessInfo, pCount);
if (!ppProcessInfo || !pCount) return FALSE;
*pCount = 0;
*ppProcessInfo = NULL;
return TRUE;
}
/************************************************************
* WTSEnumerateServersA (WTSAPI32.@)
*/
BOOL WINAPI WTSEnumerateServersA(LPSTR pDomainName, DWORD Reserved, DWORD Version,
PWTS_SERVER_INFOA* ppServerInfo, DWORD* pCount)
{
FIXME("Stub %s 0x%08lx 0x%08lx %p %p\n", debugstr_a(pDomainName), Reserved, Version,
ppServerInfo, pCount);
if (!ppServerInfo || !pCount) return FALSE;
*pCount = 0;
*ppServerInfo = NULL;
return TRUE;
}
/************************************************************
* WTSEnumerateServersW (WTSAPI32.@)
*/
BOOL WINAPI WTSEnumerateServersW(LPWSTR pDomainName, DWORD Reserved, DWORD Version,
PWTS_SERVER_INFOW* ppServerInfo, DWORD* pCount)
{
FIXME("Stub %s 0x%08lx 0x%08lx %p %p\n", debugstr_w(pDomainName), Reserved, Version,
ppServerInfo, pCount);
if (!ppServerInfo || !pCount) return FALSE;
*pCount = 0;
*ppServerInfo = NULL;
return TRUE;
}
/************************************************************
* WTSEnumerateEnumerateSessionsA (WTSAPI32.@)
*/
BOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version,
PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount)
{
FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
ppSessionInfo, pCount);
if (!ppSessionInfo || !pCount) return FALSE;
*pCount = 0;
*ppSessionInfo = NULL;
return TRUE;
}
/************************************************************
* WTSEnumerateEnumerateSessionsW (WTSAPI32.@)
*/
BOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version,
PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount)
{
FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
ppSessionInfo, pCount);
if (!ppSessionInfo || !pCount) return FALSE;
*pCount = 0;
*ppSessionInfo = NULL;
return TRUE;
}
/************************************************************
* WTSFreeMemory (WTSAPI32.@)
*/
void WINAPI WTSFreeMemory(PVOID pMemory)
{
FIXME("Stub %p\n", pMemory);
return;
}
/************************************************************
* WTSOpenServerA (WTSAPI32.@)
*/
HANDLE WINAPI WTSOpenServerA(LPSTR pServerName)
{
FIXME("(%s) stub\n", debugstr_a(pServerName));
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return NULL;
}
/************************************************************
* WTSOpenServerW (WTSAPI32.@)
*/
HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName)
{
FIXME("(%s) stub\n", debugstr_w(pServerName));
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return NULL;
}
/************************************************************
* WTSQuerySessionInformationA (WTSAPI32.@)
*/
BOOL WINAPI WTSQuerySessionInformationA(
HANDLE hServer,
DWORD SessionId,
WTS_INFO_CLASS WTSInfoClass,
LPSTR* Buffer,
DWORD* BytesReturned)
{
/* FIXME: Forward request to winsta.dll::WinStationQueryInformationA */
FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass,
Buffer, BytesReturned);
return FALSE;
}
/************************************************************
* WTSQuerySessionInformationW (WTSAPI32.@)
*/
BOOL WINAPI WTSQuerySessionInformationW(
HANDLE hServer,
DWORD SessionId,
WTS_INFO_CLASS WTSInfoClass,
LPWSTR* Buffer,
DWORD* BytesReturned)
{
/* FIXME: Forward request to winsta.dll::WinStationQueryInformationW */
FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass,
Buffer, BytesReturned);
return FALSE;
}
/************************************************************
* WTSQueryUserConfigA (WTSAPI32.@)
*/
BOOL WINAPI WTSQueryUserConfigA(
LPSTR pServerName,
LPSTR pUserName,
WTS_CONFIG_CLASS WTSConfigClass,
LPSTR* ppBuffer,
DWORD* pBytesReturned)
{
FIXME("Stub %s %s 0x%08lx %p %p\n", debugstr_a(pServerName), debugstr_a(pUserName),
WTSConfigClass, ppBuffer, pBytesReturned);
return FALSE;
}
/************************************************************
* WTSQueryUserConfigW (WTSAPI32.@)
*/
BOOL WINAPI WTSQueryUserConfigW(
LPWSTR pServerName,
LPWSTR pUserName,
WTS_CONFIG_CLASS WTSConfigClass,
LPWSTR* ppBuffer,
DWORD* pBytesReturned)
{
FIXME("Stub %s %s 0x%08lx %p %p\n", debugstr_w(pServerName), debugstr_w(pUserName),
WTSConfigClass, ppBuffer, pBytesReturned);
return FALSE;
}
/************************************************************
* WTSQueryUserToken (WTSAPI32.@)
*/
BOOL WINAPI WTSQueryUserToken(ULONG SessionId, PHANDLE phToken)
{
SetLastError(ERROR_NO_TOKEN);
return FALSE;
}
/************************************************************
* WTSRegisterSessionNotification (WTSAPI32.@)
*/
BOOL WINAPI WTSRegisterSessionNotification(HWND hWnd, DWORD dwFlags)
{
FIXME("Stub %p 0x%08x\n", hWnd, dwFlags);
return TRUE;
}
/************************************************************
* WTSTerminateProcess (WTSAPI32.@)
*/
BOOL WINAPI WTSTerminateProcess(HANDLE hServer, DWORD ProcessId, DWORD ExitCode)
{
FIXME("Stub %p 0x%08x 0x%08x\n", hServer, ProcessId, ExitCode);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/************************************************************
* WTSUnRegisterSessionNotification (WTSAPI32.@)
*/
BOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd)
{
FIXME("Stub %p\n", hWnd);
return TRUE;
}
/************************************************************
* WTSWaitSystemEvent (WTSAPI32.@)
*/
BOOL WINAPI WTSWaitSystemEvent(HANDLE hServer, DWORD Mask, DWORD* Flags)
{
/* FIXME: Forward request to winsta.dll::WinStationWaitSystemEvent */
FIXME("Stub %p 0x%08lx %p\n", hServer, Mask, Flags);
return FALSE;
}