From 222e577a94edb6c6db3ad6032a984cb69dfc5861 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Fri, 22 Jul 2011 02:13:57 +0000 Subject: [PATCH] [KERNEL32]: Remove stubs.c and instead distribute stubs in their appropriate files. [KERNEL32]: Create vdm.c and appcache.c since no files existed for these kinds of APIs. svn path=/trunk/; revision=52770 --- reactos/dll/win32/kernel32/CMakeLists.txt | 3 +- reactos/dll/win32/kernel32/client/appcache.c | 126 ++ reactos/dll/win32/kernel32/client/compname.c | 73 + reactos/dll/win32/kernel32/client/except.c | 13 + .../dll/win32/kernel32/client/file/console.c | 139 ++ reactos/dll/win32/kernel32/client/file/file.c | 139 ++ .../dll/win32/kernel32/client/file/iocompl.c | 32 +- .../dll/win32/kernel32/client/file/volume.c | 225 +++ reactos/dll/win32/kernel32/client/handle.c | 27 + reactos/dll/win32/kernel32/client/job.c | 14 + reactos/dll/win32/kernel32/client/loader.c | 29 + .../dll/win32/kernel32/client/misc/stubs.c | 1381 ----------------- reactos/dll/win32/kernel32/client/misc/time.c | 12 + reactos/dll/win32/kernel32/client/proc.c | 23 + reactos/dll/win32/kernel32/client/synch.c | 148 ++ reactos/dll/win32/kernel32/client/sysinfo.c | 157 ++ reactos/dll/win32/kernel32/client/thread.c | 157 +- reactos/dll/win32/kernel32/client/utils.c | 36 + reactos/dll/win32/kernel32/client/vdm.c | 245 +++ reactos/dll/win32/kernel32/k32.h | 4 + reactos/dll/win32/kernel32/kernel32.pspec | 6 - reactos/dll/win32/kernel32/kernel32.rbuild | 3 +- reactos/dll/win32/kernel32/kernel32.spec | 6 - .../dll/win32/kernel32/winnls/string/nls.c | 67 + 24 files changed, 1507 insertions(+), 1558 deletions(-) create mode 100644 reactos/dll/win32/kernel32/client/appcache.c delete mode 100644 reactos/dll/win32/kernel32/client/misc/stubs.c create mode 100644 reactos/dll/win32/kernel32/client/vdm.c diff --git a/reactos/dll/win32/kernel32/CMakeLists.txt b/reactos/dll/win32/kernel32/CMakeLists.txt index e1e46e7bffa..5a787faccbc 100644 --- a/reactos/dll/win32/kernel32/CMakeLists.txt +++ b/reactos/dll/win32/kernel32/CMakeLists.txt @@ -8,6 +8,7 @@ set_rc_compiler() spec2def(kernel32.dll kernel32.spec) list(APPEND SOURCE + client/appcache.c client/atom.c client/compname.c client/debugger.c @@ -29,6 +30,7 @@ list(APPEND SOURCE client/timerqueue.c client/utils.c client/thread.c + client/vdm.c client/version.c client/virtmem.c client/vista.c @@ -63,7 +65,6 @@ list(APPEND SOURCE client/misc/muldiv.c client/misc/profile.c client/misc/res.c - client/misc/stubs.c client/misc/time.c client/misc/toolhelp.c winnls/string/casemap.c diff --git a/reactos/dll/win32/kernel32/client/appcache.c b/reactos/dll/win32/kernel32/client/appcache.c new file mode 100644 index 00000000000..d517bd38d7e --- /dev/null +++ b/reactos/dll/win32/kernel32/client/appcache.c @@ -0,0 +1,126 @@ +/* + * PROJECT: ReactOS Win32 Base API + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/kernel32/client/appcache.c + * PURPOSE: Application Compatibility Cache + * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) + */ + +/* INCLUDES *******************************************************************/ + +#include + +#define NDEBUG +#include + +/* TYPES **********************************************************************/ + +/* FUNCTIONS ******************************************************************/ + +/* + * @unimplemented + */ +VOID +WINAPI +BaseDumpAppcompatCache(VOID) +{ + STUB; +} + +/* + * @unimplemented + */ +VOID +WINAPI +BaseFlushAppcompatCache(VOID) +{ + STUB; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +BaseCheckAppcompatCache(ULONG Unknown1, + ULONG Unknown2, + ULONG Unknown3, + PULONG Unknown4) +{ + STUB; + if (Unknown4) *Unknown4 = 0; + return TRUE; +} + +/* + * @unimplemented + */ +VOID +WINAPI +BaseUpdateAppcompatCache(ULONG Unknown1, + ULONG Unknown2, + ULONG Unknown3) +{ + STUB; +} + +NTSTATUS +WINAPI +BaseCleanupAppcompatCache(VOID) +{ + STUB; + return STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS +WINAPI +BaseCleanupAppcompatCacheSupport(PVOID pUnknown) +{ + STUB; + return STATUS_NOT_IMPLEMENTED; +} + +BOOL +WINAPI +BaseInitAppcompatCache(VOID) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +BaseInitAppcompatCacheSupport(VOID) +{ + STUB; + return FALSE; +} + +PVOID +WINAPI +GetComPlusPackageInstallStatus(VOID) +{ + STUB; + return NULL; +} + +/* + * @unimplemented + */ +VOID +WINAPI +SetTermsrvAppInstallMode(IN BOOL bInstallMode) +{ + STUB; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +TermsrvAppInstallMode(VOID) +{ + STUB; + return FALSE; +} diff --git a/reactos/dll/win32/kernel32/client/compname.c b/reactos/dll/win32/kernel32/client/compname.c index d04172d6a6a..e3ff2775305 100644 --- a/reactos/dll/win32/kernel32/client/compname.c +++ b/reactos/dll/win32/kernel32/client/compname.c @@ -558,4 +558,77 @@ DnsHostnameToComputerNameW(LPCWSTR hostname, return TRUE; } +DWORD +WINAPI +AddLocalAlternateComputerNameA(LPSTR lpName, PNTSTATUS Status) +{ + STUB; + return 0; +} + +DWORD +WINAPI +AddLocalAlternateComputerNameW(LPWSTR lpName, PNTSTATUS Status) +{ + STUB; + return 0; +} + +DWORD +WINAPI +EnumerateLocalComputerNamesA(PVOID pUnknown, DWORD Size, LPSTR lpBuffer, LPDWORD lpnSize) +{ + STUB; + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD +WINAPI +EnumerateLocalComputerNamesW(PVOID pUnknown, DWORD Size, LPWSTR lpBuffer, LPDWORD lpnSize) +{ + STUB; + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD +WINAPI +RemoveLocalAlternateComputerNameA(LPSTR lpName, DWORD Unknown) +{ + STUB; + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD +WINAPI +RemoveLocalAlternateComputerNameW(LPWSTR lpName, DWORD Unknown) +{ + STUB; + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetLocalPrimaryComputerNameA(IN DWORD Unknown1, + IN DWORD Unknown2) +{ + STUB; + return FALSE; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetLocalPrimaryComputerNameW(IN DWORD Unknown1, + IN DWORD Unknown2) +{ + STUB; + return FALSE; +} + + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/except.c b/reactos/dll/win32/kernel32/client/except.c index 9dad13e292a..9f290d3e174 100644 --- a/reactos/dll/win32/kernel32/client/except.c +++ b/reactos/dll/win32/kernel32/client/except.c @@ -697,4 +697,17 @@ GetLastError() return NtCurrentTeb()->LastErrorValue; } +/* + * @unimplemented + */ +VOID +WINAPI +RestoreLastError( + DWORD dwErrCode + ) +{ + STUB; +} + + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/file/console.c b/reactos/dll/win32/kernel32/client/file/console.c index bccbe58b8a1..915304e2149 100644 --- a/reactos/dll/win32/kernel32/client/file/console.c +++ b/reactos/dll/win32/kernel32/client/file/console.c @@ -4195,4 +4195,143 @@ GetConsoleInputExeNameA(DWORD nBufferLength, LPSTR lpBuffer) return Ret; } +BOOL +WINAPI +GetConsoleCharType(HANDLE hConsole, COORD Coord, PDWORD Type) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode) +{ + STUB; + return FALSE; +} + + +BOOL +WINAPI +ReadConsoleInputExA(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +ReadConsoleInputExW(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +RegisterConsoleIME(HWND hWnd, LPDWORD ThreadId) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +RegisterConsoleOS2(BOOL bUnknown) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +SetConsoleOS2OemFormat(BOOL bUnknown) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +UnregisterConsoleIME(VOID) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +BOOL WINAPI GetConsoleKeyboardLayoutNameA(LPSTR name) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL WINAPI GetConsoleKeyboardLayoutNameW(LPWSTR name) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetLastConsoleEventActive(VOID) +{ + STUB; + return FALSE; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetConsoleCommandHistoryMode(IN DWORD dwMode) +{ + STUB; + return FALSE; +} + + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/file/file.c b/reactos/dll/win32/kernel32/client/file/file.c index 68ed91093b0..21643552627 100644 --- a/reactos/dll/win32/kernel32/client/file/file.c +++ b/reactos/dll/win32/kernel32/client/file/file.c @@ -2020,4 +2020,143 @@ Cleanup: return Ret; } +/* + * @implemented + */ +BOOL +WINAPI +ReadFileScatter(HANDLE hFile, + FILE_SEGMENT_ELEMENT aSegmentArray[], + DWORD nNumberOfBytesToRead, + LPDWORD lpReserved, + LPOVERLAPPED lpOverlapped) +{ + PIO_STATUS_BLOCK pIOStatus; + LARGE_INTEGER Offset; + NTSTATUS Status; + + DPRINT("(%p %p %u %p)\n", hFile, aSegmentArray, nNumberOfBytesToRead, lpOverlapped); + + Offset.LowPart = lpOverlapped->Offset; + Offset.HighPart = lpOverlapped->OffsetHigh; + pIOStatus = (PIO_STATUS_BLOCK) lpOverlapped; + pIOStatus->Status = STATUS_PENDING; + pIOStatus->Information = 0; + + Status = NtReadFileScatter(hFile, + NULL, + NULL, + NULL, + pIOStatus, + aSegmentArray, + nNumberOfBytesToRead, + &Offset, + NULL); + + if (!NT_SUCCESS(Status)) + { + SetLastError(RtlNtStatusToDosError(Status)); + return FALSE; + } + + return TRUE; +} + +/* + * @implemented + */ +BOOL +WINAPI +WriteFileGather(HANDLE hFile, + FILE_SEGMENT_ELEMENT aSegmentArray[], + DWORD nNumberOfBytesToWrite, + LPDWORD lpReserved, + LPOVERLAPPED lpOverlapped) +{ + PIO_STATUS_BLOCK IOStatus; + LARGE_INTEGER Offset; + NTSTATUS Status; + + DPRINT("%p %p %u %p\n", hFile, aSegmentArray, nNumberOfBytesToWrite, lpOverlapped); + + Offset.LowPart = lpOverlapped->Offset; + Offset.HighPart = lpOverlapped->OffsetHigh; + IOStatus = (PIO_STATUS_BLOCK) lpOverlapped; + IOStatus->Status = STATUS_PENDING; + IOStatus->Information = 0; + + Status = NtWriteFileGather(hFile, + NULL, + NULL, + NULL, + IOStatus, + aSegmentArray, + nNumberOfBytesToWrite, + &Offset, + NULL); + + if (!NT_SUCCESS(Status)) + { + SetLastError(RtlNtStatusToDosError(Status)); + return FALSE; + } + + return TRUE; +} + +BOOL +WINAPI +OpenDataFile(HANDLE hFile, DWORD dwUnused) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +PrivMoveFileIdentityW(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3) +{ + STUB; + return FALSE; +} + +/* + * @unimplemented + */ +HANDLE +WINAPI +ReOpenFile(IN HANDLE hOriginalFile, + IN DWORD dwDesiredAccess, + IN DWORD dwShareMode, + IN DWORD dwFlags) +{ + STUB; + return INVALID_HANDLE_VALUE; +} + +BOOLEAN +WINAPI +Wow64EnableWow64FsRedirection (BOOLEAN Wow64EnableWow64FsRedirection) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +Wow64DisableWow64FsRedirection (VOID ** pv) +{ + STUB; + return FALSE; +} + +BOOL +WINAPI +Wow64RevertWow64FsRedirection (VOID * pv) +{ + STUB; + return FALSE; +} + + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/file/iocompl.c b/reactos/dll/win32/kernel32/client/file/iocompl.c index 56eef2c0ad8..c1f5f2a3963 100644 --- a/reactos/dll/win32/kernel32/client/file/iocompl.c +++ b/reactos/dll/win32/kernel32/client/file/iocompl.c @@ -192,27 +192,29 @@ CancelIo(HANDLE hFile) /* - * @unimplemented + * @implemented */ BOOL WINAPI -CancelIoEx(IN HANDLE hFile, - IN LPOVERLAPPED lpOverlapped) +BindIoCompletionCallback(HANDLE FileHandle, + LPOVERLAPPED_COMPLETION_ROUTINE Function, + ULONG Flags) { - UNIMPLEMENTED; - return FALSE; -} + NTSTATUS Status = 0; + DPRINT("(%p, %p, %d)\n", FileHandle, Function, Flags); -/* - * @unimplemented - */ -BOOL -WINAPI -CancelSynchronousIo(IN HANDLE hThread) -{ - UNIMPLEMENTED; - return FALSE; + Status = RtlSetIoCompletionCallback(FileHandle, + (PIO_APC_ROUTINE)Function, + Flags); + + if (!NT_SUCCESS(Status)) + { + SetLastError(RtlNtStatusToDosError(Status)); + return FALSE; + } + + return TRUE; } /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/file/volume.c b/reactos/dll/win32/kernel32/client/file/volume.c index 0e336661a6b..fd1ae4638bd 100644 --- a/reactos/dll/win32/kernel32/client/file/volume.c +++ b/reactos/dll/win32/kernel32/client/file/volume.c @@ -1330,4 +1330,229 @@ Cleanup2: return Result; } + +/* + * @unimplemented + */ +BOOL +WINAPI +SetVolumeMountPointW( + LPCWSTR lpszVolumeMountPoint, + LPCWSTR lpszVolumeName + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +DeleteVolumeMountPointA( + LPCSTR lpszVolumeMountPoint + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +HANDLE +WINAPI +FindFirstVolumeMountPointA( + LPCSTR lpszRootPathName, + LPSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ) +{ + STUB; + return 0; +} + +/* + * @implemented + */ +BOOL +WINAPI +FindNextVolumeA(HANDLE handle, + LPSTR volume, + DWORD len) +{ + WCHAR *buffer = RtlAllocateHeap(RtlGetProcessHeap(), 0, len * sizeof(WCHAR)); + BOOL ret; + + if (!buffer) + { + SetLastError(ERROR_NOT_ENOUGH_MEMORY); + return FALSE; + } + + if ((ret = FindNextVolumeW( handle, buffer, len ))) + { + if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, volume, len, NULL, NULL )) ret = FALSE; + } + + HeapFree( GetProcessHeap(), 0, buffer ); + return ret; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +FindNextVolumeMountPointA( + HANDLE hFindVolumeMountPoint, + LPSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +GetVolumePathNamesForVolumeNameA( + LPCSTR lpszVolumeName, + LPSTR lpszVolumePathNames, + DWORD cchBufferLength, + PDWORD lpcchReturnLength + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetVolumeMountPointA( + LPCSTR lpszVolumeMountPoint, + LPCSTR lpszVolumeName + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +FindVolumeMountPointClose( + HANDLE hFindVolumeMountPoint + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +DeleteVolumeMountPointW( + LPCWSTR lpszVolumeMountPoint + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +HANDLE +WINAPI +FindFirstVolumeMountPointW( + LPCWSTR lpszRootPathName, + LPWSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ) +{ + STUB; + return 0; +} + +/* + * @implemented + */ +BOOL +WINAPI +FindNextVolumeW( + HANDLE handle, + LPWSTR volume, + DWORD len + ) +{ + MOUNTMGR_MOUNT_POINTS *data = handle; + + while (data->Size < data->NumberOfMountPoints) + { + static const WCHAR volumeW[] = {'\\','?','?','\\','V','o','l','u','m','e','{',}; + WCHAR *link = (WCHAR *)((char *)data + data->MountPoints[data->Size].SymbolicLinkNameOffset); + DWORD size = data->MountPoints[data->Size].SymbolicLinkNameLength; + data->Size++; + /* skip non-volumes */ + if (size < sizeof(volumeW) || memcmp( link, volumeW, sizeof(volumeW) )) continue; + if (size + sizeof(WCHAR) >= len * sizeof(WCHAR)) + { + SetLastError( ERROR_FILENAME_EXCED_RANGE ); + return FALSE; + } + memcpy( volume, link, size ); + volume[1] = '\\'; /* map \??\ to \\?\ */ + volume[size / sizeof(WCHAR)] = '\\'; /* Windows appends a backslash */ + volume[size / sizeof(WCHAR) + 1] = 0; + DPRINT( "returning entry %u %s\n", data->Size - 1, volume ); + return TRUE; + } + SetLastError( ERROR_NO_MORE_FILES ); + return FALSE; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +FindNextVolumeMountPointW( + HANDLE hFindVolumeMountPoint, + LPWSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +GetVolumePathNamesForVolumeNameW( + LPCWSTR lpszVolumeName, + LPWSTR lpszVolumePathNames, + DWORD cchBufferLength, + PDWORD lpcchReturnLength + ) +{ + STUB; + return 0; +} + + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/handle.c b/reactos/dll/win32/kernel32/client/handle.c index 7f02e2aa4fa..ef2dbd5c3b2 100644 --- a/reactos/dll/win32/kernel32/client/handle.c +++ b/reactos/dll/win32/kernel32/client/handle.c @@ -215,4 +215,31 @@ UINT WINAPI SetHandleCount(UINT nCount) return(nCount); } +/* + * @unimplemented + */ +DWORD WINAPI GetHandleContext(HANDLE hnd) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +HANDLE WINAPI CreateSocketHandle(VOID) +{ + STUB; + return INVALID_HANDLE_VALUE; +} + +/* + * @unimplemented + */ +BOOL WINAPI SetHandleContext(HANDLE hnd,DWORD context) +{ + STUB; + return 0; +} + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/job.c b/reactos/dll/win32/kernel32/client/job.c index 43a77c905f9..bc7dcb5ee9e 100644 --- a/reactos/dll/win32/kernel32/client/job.c +++ b/reactos/dll/win32/kernel32/client/job.c @@ -431,4 +431,18 @@ TerminateJobObject(HANDLE hJob, return TRUE; } +/* + * @unimplemented + */ +BOOL +WINAPI +CreateJobSet ( + ULONG NumJob, + PJOB_SET_ARRAY UserJobSet, + ULONG Flags) +{ + STUB; + return 0; +} + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/loader.c b/reactos/dll/win32/kernel32/client/loader.c index 2f5e0ac9356..c3265f34a02 100644 --- a/reactos/dll/win32/kernel32/client/loader.c +++ b/reactos/dll/win32/kernel32/client/loader.c @@ -1168,4 +1168,33 @@ LoadModule(LPCSTR lpModuleName, return GetLastError(); } +/* + * @unimplemented + */ +FARPROC WINAPI DelayLoadFailureHook(LPCSTR pszDllName, LPCSTR pszProcName) +{ + STUB; + return NULL; +} + +/* + * @unimplemented + */ +BOOL WINAPI UTRegister( HMODULE hModule, LPSTR lpsz16BITDLL, + LPSTR lpszInitName, LPSTR lpszProcName, + FARPROC *ppfn32Thunk, FARPROC pfnUT32CallBack, + LPVOID lpBuff ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +VOID WINAPI UTUnRegister( HMODULE hModule ) +{ + STUB; +} + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/misc/stubs.c b/reactos/dll/win32/kernel32/client/misc/stubs.c deleted file mode 100644 index 030f07c30d6..00000000000 --- a/reactos/dll/win32/kernel32/client/misc/stubs.c +++ /dev/null @@ -1,1381 +0,0 @@ -/* - * KERNEL32.DLL stubs (STUB functions) - * Remove from this file, if you implement them. - */ - -#include - -#define NDEBUG -#include - -#define STUB \ - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); \ - DPRINT1("%s() is UNIMPLEMENTED!\n", __FUNCTION__) - -/* - * @unimplemented - */ -BOOL -WINAPI -BaseAttachCompleteThunk (VOID) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -VOID WINAPI -BaseDumpAppcompatCache(VOID) -{ - STUB; -} - -/* - * @unimplemented - */ -VOID WINAPI -BaseFlushAppcompatCache(VOID) -{ - STUB; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -BaseCheckAppcompatCache(ULONG Unknown1, - ULONG Unknown2, - ULONG Unknown3, - PULONG Unknown4) -{ - STUB; - if (Unknown4) *Unknown4 = 0; - return TRUE; -} - -/* - * @unimplemented - */ -VOID WINAPI -BaseUpdateAppcompatCache(ULONG Unknown1, ULONG Unknown2, ULONG Unknown3) -{ - STUB; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -CmdBatNotification ( - DWORD Unknown - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -CreateVirtualBuffer ( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2 - ) -{ - STUB; - return 0; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -ExitVDM ( - DWORD Unknown0, - DWORD Unknown1 - ) -{ - STUB; - return 0; -} - - -/* - * @unimplemented - */ -BOOL -WINAPI -ExtendVirtualBuffer ( - DWORD Unknown0, - DWORD Unknown1 - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -BOOL -WINAPI -FreeVirtualBuffer ( - HANDLE hVirtualBuffer - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -GetNextVDMCommand ( - DWORD Unknown0 - ) -{ - STUB; - return 0; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -GetVDMCurrentDirectories ( - DWORD Unknown0, - DWORD Unknown1 - ) -{ - STUB; - return 0; -} - - -/* - * @unimplemented - */ -BOOL -WINAPI -RegisterConsoleVDM ( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2, - DWORD Unknown3, - DWORD Unknown4, - DWORD Unknown5, - DWORD Unknown6, - DWORD Unknown7, - DWORD Unknown8, - DWORD Unknown9, - DWORD Unknown10 - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -BOOL -WINAPI -RegisterWowBaseHandlers ( - DWORD Unknown0 - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -BOOL -WINAPI -RegisterWowExec ( - DWORD Unknown0 - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -BOOL -WINAPI -SetVDMCurrentDirectories ( - DWORD Unknown0, - DWORD Unknown1 - ) -{ - STUB; - return FALSE; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -TrimVirtualBuffer ( - DWORD Unknown0 - ) -{ - STUB; - return 0; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -VDMConsoleOperation ( - DWORD Unknown0, - DWORD Unknown1 - ) -{ - STUB; - return 0; -} - - -/* - * @unimplemented - */ -DWORD -WINAPI -VDMOperationStarted ( - DWORD Unknown0 - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -DWORD -WINAPI -VirtualBufferExceptionHandler ( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2 - ) -{ - STUB; - return 0; -} - -/* - * @implemented - */ -BOOL -WINAPI -BindIoCompletionCallback(HANDLE FileHandle, - LPOVERLAPPED_COMPLETION_ROUTINE Function, - ULONG Flags) -{ - NTSTATUS Status = 0; - - DPRINT("(%p, %p, %d)\n", FileHandle, Function, Flags); - - Status = RtlSetIoCompletionCallback(FileHandle, - (PIO_APC_ROUTINE)Function, - Flags); - - if (!NT_SUCCESS(Status)) - { - SetLastError(RtlNtStatusToDosError(Status)); - return FALSE; - } - - return TRUE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -CreateJobSet ( - ULONG NumJob, - PJOB_SET_ARRAY UserJobSet, - ULONG Flags) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -FindVolumeMountPointClose( - HANDLE hFindVolumeMountPoint - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -GetNumaHighestNodeNumber( - PULONG HighestNodeNumber - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -GetNumaNodeProcessorMask( - UCHAR Node, - PULONGLONG ProcessorMask - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -GetNumaProcessorNode( - UCHAR Processor, - PUCHAR NodeNumber - ) -{ - STUB; - return 0; -} - -/* - * @implemented - */ -BOOL -WINAPI -ReadFileScatter(HANDLE hFile, - FILE_SEGMENT_ELEMENT aSegmentArray[], - DWORD nNumberOfBytesToRead, - LPDWORD lpReserved, - LPOVERLAPPED lpOverlapped) -{ - PIO_STATUS_BLOCK pIOStatus; - LARGE_INTEGER Offset; - NTSTATUS Status; - - DPRINT("(%p %p %u %p)\n", hFile, aSegmentArray, nNumberOfBytesToRead, lpOverlapped); - - Offset.LowPart = lpOverlapped->Offset; - Offset.HighPart = lpOverlapped->OffsetHigh; - pIOStatus = (PIO_STATUS_BLOCK) lpOverlapped; - pIOStatus->Status = STATUS_PENDING; - pIOStatus->Information = 0; - - Status = NtReadFileScatter(hFile, - NULL, - NULL, - NULL, - pIOStatus, - aSegmentArray, - nNumberOfBytesToRead, - &Offset, - NULL); - - if (!NT_SUCCESS(Status)) - { - SetLastError(RtlNtStatusToDosError(Status)); - return FALSE; - } - - return TRUE; -} - -/* - * @unimplemented - */ -VOID -WINAPI -RestoreLastError( - DWORD dwErrCode - ) -{ - STUB; -} - -/* - * @implemented - */ -BOOL -WINAPI -WriteFileGather(HANDLE hFile, - FILE_SEGMENT_ELEMENT aSegmentArray[], - DWORD nNumberOfBytesToWrite, - LPDWORD lpReserved, - LPOVERLAPPED lpOverlapped) -{ - PIO_STATUS_BLOCK IOStatus; - LARGE_INTEGER Offset; - NTSTATUS Status; - - DPRINT("%p %p %u %p\n", hFile, aSegmentArray, nNumberOfBytesToWrite, lpOverlapped); - - Offset.LowPart = lpOverlapped->Offset; - Offset.HighPart = lpOverlapped->OffsetHigh; - IOStatus = (PIO_STATUS_BLOCK) lpOverlapped; - IOStatus->Status = STATUS_PENDING; - IOStatus->Information = 0; - - Status = NtWriteFileGather(hFile, - NULL, - NULL, - NULL, - IOStatus, - aSegmentArray, - nNumberOfBytesToWrite, - &Offset, - NULL); - - if (!NT_SUCCESS(Status)) - { - SetLastError(RtlNtStatusToDosError(Status)); - return FALSE; - } - - return TRUE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -DeleteVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -HANDLE -WINAPI -FindFirstVolumeMountPointW( - LPCWSTR lpszRootPathName, - LPWSTR lpszVolumeMountPoint, - DWORD cchBufferLength - ) -{ - STUB; - return 0; -} - -/* - * @implemented - */ -BOOL -WINAPI -FindNextVolumeW( - HANDLE handle, - LPWSTR volume, - DWORD len - ) -{ - MOUNTMGR_MOUNT_POINTS *data = handle; - - while (data->Size < data->NumberOfMountPoints) - { - static const WCHAR volumeW[] = {'\\','?','?','\\','V','o','l','u','m','e','{',}; - WCHAR *link = (WCHAR *)((char *)data + data->MountPoints[data->Size].SymbolicLinkNameOffset); - DWORD size = data->MountPoints[data->Size].SymbolicLinkNameLength; - data->Size++; - /* skip non-volumes */ - if (size < sizeof(volumeW) || memcmp( link, volumeW, sizeof(volumeW) )) continue; - if (size + sizeof(WCHAR) >= len * sizeof(WCHAR)) - { - SetLastError( ERROR_FILENAME_EXCED_RANGE ); - return FALSE; - } - memcpy( volume, link, size ); - volume[1] = '\\'; /* map \??\ to \\?\ */ - volume[size / sizeof(WCHAR)] = '\\'; /* Windows appends a backslash */ - volume[size / sizeof(WCHAR) + 1] = 0; - DPRINT( "returning entry %u %s\n", data->Size - 1, volume ); - return TRUE; - } - SetLastError( ERROR_NO_MORE_FILES ); - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -FindNextVolumeMountPointW( - HANDLE hFindVolumeMountPoint, - LPWSTR lpszVolumeMountPoint, - DWORD cchBufferLength - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -DWORD -WINAPI -GetFirmwareEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpGuid, - PVOID pBuffer, - DWORD nSize - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -GetVolumePathNamesForVolumeNameW( - LPCWSTR lpszVolumeName, - LPWSTR lpszVolumePathNames, - DWORD cchBufferLength, - PDWORD lpcchReturnLength - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetFirmwareEnvironmentVariableW( - LPCWSTR lpName, - LPCWSTR lpGuid, - PVOID pValue, - DWORD nSize - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetVolumeMountPointW( - LPCWSTR lpszVolumeMountPoint, - LPCWSTR lpszVolumeName - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -DeleteVolumeMountPointA( - LPCSTR lpszVolumeMountPoint - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -HANDLE -WINAPI -FindFirstVolumeMountPointA( - LPCSTR lpszRootPathName, - LPSTR lpszVolumeMountPoint, - DWORD cchBufferLength - ) -{ - STUB; - return 0; -} - -/* - * @implemented - */ -BOOL -WINAPI -FindNextVolumeA(HANDLE handle, - LPSTR volume, - DWORD len) -{ - WCHAR *buffer = RtlAllocateHeap(RtlGetProcessHeap(), 0, len * sizeof(WCHAR)); - BOOL ret; - - if (!buffer) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return FALSE; - } - - if ((ret = FindNextVolumeW( handle, buffer, len ))) - { - if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, volume, len, NULL, NULL )) ret = FALSE; - } - - HeapFree( GetProcessHeap(), 0, buffer ); - return ret; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -FindNextVolumeMountPointA( - HANDLE hFindVolumeMountPoint, - LPSTR lpszVolumeMountPoint, - DWORD cchBufferLength - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -DWORD -WINAPI -GetFirmwareEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpGuid, - PVOID pBuffer, - DWORD nSize - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -GetVolumePathNamesForVolumeNameA( - LPCSTR lpszVolumeName, - LPSTR lpszVolumePathNames, - DWORD cchBufferLength, - PDWORD lpcchReturnLength - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetFirmwareEnvironmentVariableA( - LPCSTR lpName, - LPCSTR lpGuid, - PVOID pValue, - DWORD nSize - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetVolumeMountPointA( - LPCSTR lpszVolumeMountPoint, - LPCSTR lpszVolumeName - ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL WINAPI GetConsoleKeyboardLayoutNameA(LPSTR name) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL WINAPI GetConsoleKeyboardLayoutNameW(LPWSTR name) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -DWORD WINAPI GetHandleContext(HANDLE hnd) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -HANDLE WINAPI CreateSocketHandle(VOID) -{ - STUB; - return INVALID_HANDLE_VALUE; -} - -/* - * @unimplemented - */ -BOOL WINAPI SetHandleContext(HANDLE hnd,DWORD context) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL WINAPI UTRegister( HMODULE hModule, LPSTR lpsz16BITDLL, - LPSTR lpszInitName, LPSTR lpszProcName, - FARPROC *ppfn32Thunk, FARPROC pfnUT32CallBack, - LPVOID lpBuff ) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -VOID WINAPI UTUnRegister( HMODULE hModule ) -{ - STUB; -} - -/* - * @unimplemented - */ -FARPROC WINAPI DelayLoadFailureHook(LPCSTR pszDllName, LPCSTR pszProcName) -{ - STUB; - return NULL; -} - -/* - * @unimplemented - */ -NTSTATUS WINAPI CreateNlsSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor,ULONG Size,ULONG AccessMask) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL WINAPI IsValidUILanguage(LANGID langid) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -VOID WINAPI NlsConvertIntegerToString(ULONG Value,ULONG Base,ULONG strsize, LPWSTR str, ULONG strsize2) -{ - STUB; -} - -/* - * @unimplemented - */ -UINT WINAPI SetCPGlobal(UINT CodePage) -{ - STUB; - return 0; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetClientTimeZoneInformation( - CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation) -{ - STUB; - return 0; -} - -ULONG -WINAPI -NlsGetCacheUpdateCount(VOID) -{ - STUB; - return 0; -} - -BOOLEAN -WINAPI -Wow64EnableWow64FsRedirection (BOOLEAN Wow64EnableWow64FsRedirection) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -Wow64DisableWow64FsRedirection (VOID ** pv) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -Wow64RevertWow64FsRedirection (VOID * pv) -{ - STUB; - return FALSE; -} - -UINT -WINAPI -EnumSystemFirmwareTables(IN DWORD FirmwareTableProviderSignature, - OUT PVOID pFirmwareTableBuffer, - IN DWORD BufferSize) -{ - STUB; - return 0; -} - -BOOL -WINAPI -GetSystemFileCacheSize(OUT PSIZE_T lpMinimumFileCacheSize, - OUT PSIZE_T lpMaximumFileCacheSize, - OUT PDWORD lpFlags) -{ - STUB; - return FALSE; -} - -UINT -WINAPI -GetSystemFirmwareTable(IN DWORD FirmwareTableProviderSignature, - IN DWORD FirmwareTableID, - OUT PVOID pFirmwareTableBuffer, - IN DWORD BufferSize) -{ - STUB; - return 0; -} - -BOOL -WINAPI -SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize, - IN SIZE_T MaximumFileCacheSize, - IN DWORD Flags) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -SetProcessWorkingSetSizeEx(IN HANDLE hProcess, - IN SIZE_T dwMinimumWorkingSetSize, - IN SIZE_T dwMaximumWorkingSetSize, - IN DWORD Flags) -{ - STUB; - return FALSE; -} - - -BOOL -WINAPI -GetProcessWorkingSetSizeEx(IN HANDLE hProcess, - OUT PSIZE_T lpMinimumWorkingSetSize, - OUT PSIZE_T lpMaximumWorkingSetSize, - OUT PDWORD Flags) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -GetNumaAvailableMemoryNode(IN UCHAR Node, - OUT PULONGLONG AvailableBytes) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -GetNumaAvailableMemory(PVOID lpInfo, - ULONG Length, - PULONG ReturnLength) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -GetNumaProcessorMap(PVOID lpInfo, - ULONG Length, - PULONG ReturnLength) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -NlsResetProcessLocale(VOID) -{ - STUB; - return TRUE; -} - -DWORD -WINAPI -AddLocalAlternateComputerNameA(LPSTR lpName, PNTSTATUS Status) -{ - STUB; - return 0; -} - -DWORD -WINAPI -AddLocalAlternateComputerNameW(LPWSTR lpName, PNTSTATUS Status) -{ - STUB; - return 0; -} - -NTSTATUS -WINAPI -BaseCleanupAppcompatCache(VOID) -{ - STUB; - return STATUS_NOT_IMPLEMENTED; -} - -NTSTATUS -WINAPI -BaseCleanupAppcompatCacheSupport(PVOID pUnknown) -{ - STUB; - return STATUS_NOT_IMPLEMENTED; -} - -BOOL -WINAPI -BaseInitAppcompatCache(VOID) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -BaseInitAppcompatCacheSupport(VOID) -{ - STUB; - return FALSE; -} - -VOID -WINAPI -CreateProcessInternalWSecure(VOID) -{ - STUB; -} - -DWORD -WINAPI -EnumerateLocalComputerNamesA(PVOID pUnknown, DWORD Size, LPSTR lpBuffer, LPDWORD lpnSize) -{ - STUB; - return ERROR_CALL_NOT_IMPLEMENTED; -} - -DWORD -WINAPI -EnumerateLocalComputerNamesW(PVOID pUnknown, DWORD Size, LPWSTR lpBuffer, LPDWORD lpnSize) -{ - STUB; - return ERROR_CALL_NOT_IMPLEMENTED; -} - -PVOID -WINAPI -GetComPlusPackageInstallStatus(VOID) -{ - STUB; - return NULL; -} - -BOOL -WINAPI -GetConsoleCharType(HANDLE hConsole, COORD Coord, PDWORD Type) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode) -{ - STUB; - return FALSE; -} - -VOID -WINAPI -GetDefaultSortkeySize(LPVOID lpUnknown) -{ - STUB; - lpUnknown = NULL; -} - -VOID -WINAPI -GetLinguistLangSize(LPVOID lpUnknown) -{ - STUB; - lpUnknown = NULL; -} - -BOOL -WINAPI -OpenDataFile(HANDLE hFile, DWORD dwUnused) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -PrivMoveFileIdentityW(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -ReadConsoleInputExA(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -ReadConsoleInputExW(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -RegisterConsoleIME(HWND hWnd, LPDWORD ThreadId) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -RegisterConsoleOS2(BOOL bUnknown) -{ - STUB; - return FALSE; -} - -DWORD -WINAPI -RemoveLocalAlternateComputerNameA(LPSTR lpName, DWORD Unknown) -{ - STUB; - return ERROR_CALL_NOT_IMPLEMENTED; -} - -DWORD -WINAPI -RemoveLocalAlternateComputerNameW(LPWSTR lpName, DWORD Unknown) -{ - STUB; - return ERROR_CALL_NOT_IMPLEMENTED; -} - -BOOL -WINAPI -SetComPlusPackageInstallStatus(LPVOID lpInfo) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -SetConsoleOS2OemFormat(BOOL bUnknown) -{ - STUB; - return FALSE; -} - -BOOL -WINAPI -UnregisterConsoleIME(VOID) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -BaseCheckRunApp(IN DWORD Unknown1, - IN DWORD Unknown2, - IN DWORD Unknown3, - IN DWORD Unknown4, - IN DWORD Unknown5, - IN DWORD Unknown6, - IN DWORD Unknown7, - IN DWORD Unknown8, - IN DWORD Unknown9, - IN DWORD Unknown10) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -BasepCheckWinSaferRestrictions(IN DWORD Unknown1, - IN DWORD Unknown2, - IN DWORD Unknown3, - IN DWORD Unknown4, - IN DWORD Unknown5, - IN DWORD Unknown6) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -NumaVirtualQueryNode(IN DWORD Unknown1, - IN DWORD Unknown2, - IN DWORD Unknown3, - IN DWORD Unknown4) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -HANDLE -WINAPI -ReOpenFile(IN HANDLE hOriginalFile, - IN DWORD dwDesiredAccess, - IN DWORD dwShareMode, - IN DWORD dwFlags) -{ - STUB; - return INVALID_HANDLE_VALUE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetLastConsoleEventActive(VOID) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetConsoleCommandHistoryMode(IN DWORD dwMode) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetLocalPrimaryComputerNameA(IN DWORD Unknown1, - IN DWORD Unknown2) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -SetLocalPrimaryComputerNameW(IN DWORD Unknown1, - IN DWORD Unknown2) -{ - STUB; - return FALSE; -} - -/* - * @unimplemented - */ -VOID -WINAPI -SetTermsrvAppInstallMode(IN BOOL bInstallMode) -{ - STUB; -} - -/* - * @unimplemented - */ -BOOL -WINAPI -TermsrvAppInstallMode(VOID) -{ - STUB; - return FALSE; -} diff --git a/reactos/dll/win32/kernel32/client/misc/time.c b/reactos/dll/win32/kernel32/client/misc/time.c index c279a2fb229..a4708766d9b 100644 --- a/reactos/dll/win32/kernel32/client/misc/time.c +++ b/reactos/dll/win32/kernel32/client/misc/time.c @@ -795,4 +795,16 @@ GetSystemTimes(LPFILETIME lpIdleTime, return TRUE; } +/* + * @unimplemented + */ +BOOL +WINAPI +SetClientTimeZoneInformation( + CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation) +{ + STUB; + return 0; +} + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/proc.c b/reactos/dll/win32/kernel32/client/proc.c index b4c2d469df4..5f139d6eeee 100644 --- a/reactos/dll/win32/kernel32/client/proc.c +++ b/reactos/dll/win32/kernel32/client/proc.c @@ -2144,6 +2144,29 @@ ProcessIdToSessionId(IN DWORD dwProcessId, return FALSE; } +BOOL +WINAPI +SetProcessWorkingSetSizeEx(IN HANDLE hProcess, + IN SIZE_T dwMinimumWorkingSetSize, + IN SIZE_T dwMaximumWorkingSetSize, + IN DWORD Flags) +{ + STUB; + return FALSE; +} + + +BOOL +WINAPI +GetProcessWorkingSetSizeEx(IN HANDLE hProcess, + OUT PSIZE_T lpMinimumWorkingSetSize, + OUT PSIZE_T lpMaximumWorkingSetSize, + OUT PDWORD Flags) +{ + STUB; + return FALSE; +} + /* * @implemented */ diff --git a/reactos/dll/win32/kernel32/client/synch.c b/reactos/dll/win32/kernel32/client/synch.c index 65bd7590043..b0ad3841d30 100644 --- a/reactos/dll/win32/kernel32/client/synch.c +++ b/reactos/dll/win32/kernel32/client/synch.c @@ -1351,4 +1351,152 @@ InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection, return TRUE; } + +/* + * @implemented + */ +VOID WINAPI +Sleep(DWORD dwMilliseconds) +{ + SleepEx(dwMilliseconds, FALSE); + return; +} + + +/* + * @implemented + */ +DWORD WINAPI +SleepEx(DWORD dwMilliseconds, + BOOL bAlertable) +{ + LARGE_INTEGER Interval; + NTSTATUS errCode; + + if (dwMilliseconds != INFINITE) + { + /* + * System time units are 100 nanoseconds (a nanosecond is a billionth of + * a second). + */ + Interval.QuadPart = -((LONGLONG)dwMilliseconds * 10000); + } + else + { + /* Approximately 292000 years hence */ + Interval.QuadPart = -0x7FFFFFFFFFFFFFFFLL; + } + +dowait: + errCode = NtDelayExecution ((BOOLEAN)bAlertable, &Interval); + if ((bAlertable) && (errCode == STATUS_ALERTED)) goto dowait; + return (errCode == STATUS_USER_APC) ? WAIT_IO_COMPLETION : 0; +} + + +/* + * @implemented + */ +BOOL +WINAPI +RegisterWaitForSingleObject( + PHANDLE phNewWaitObject, + HANDLE hObject, + WAITORTIMERCALLBACK Callback, + PVOID Context, + ULONG dwMilliseconds, + ULONG dwFlags + ) +{ + NTSTATUS Status = RtlRegisterWait(phNewWaitObject, + hObject, + Callback, + Context, + dwMilliseconds, + dwFlags); + + if (!NT_SUCCESS(Status)) + { + SetLastErrorByStatus(Status); + return FALSE; + } + return TRUE; +} + + +/* + * @implemented + */ +HANDLE +WINAPI +RegisterWaitForSingleObjectEx( + HANDLE hObject, + WAITORTIMERCALLBACK Callback, + PVOID Context, + ULONG dwMilliseconds, + ULONG dwFlags + ) +{ + NTSTATUS Status; + HANDLE hNewWaitObject; + + Status = RtlRegisterWait(&hNewWaitObject, + hObject, + Callback, + Context, + dwMilliseconds, + dwFlags); + + if (!NT_SUCCESS(Status)) + { + SetLastErrorByStatus(Status); + return NULL; + } + + return hNewWaitObject; +} + + +/* + * @implemented + */ +BOOL +WINAPI +UnregisterWait( + HANDLE WaitHandle + ) +{ + NTSTATUS Status = RtlDeregisterWaitEx(WaitHandle, NULL); + + if (!NT_SUCCESS(Status)) + { + SetLastErrorByStatus(Status); + return FALSE; + } + + return TRUE; +} + + +/* + * @implemented + */ +BOOL +WINAPI +UnregisterWaitEx( + HANDLE WaitHandle, + HANDLE CompletionEvent + ) +{ + NTSTATUS Status = RtlDeregisterWaitEx(WaitHandle, CompletionEvent); + + if (!NT_SUCCESS(Status)) + { + SetLastErrorByStatus(Status); + return FALSE; + } + + return TRUE; +} + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/sysinfo.c b/reactos/dll/win32/kernel32/client/sysinfo.c index 612b7eddc15..11dcad0c359 100644 --- a/reactos/dll/win32/kernel32/client/sysinfo.c +++ b/reactos/dll/win32/kernel32/client/sysinfo.c @@ -268,3 +268,160 @@ GetLogicalProcessorInformation(OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer, return TRUE; } + +/* + * @unimplemented + */ +BOOL +WINAPI +GetNumaHighestNodeNumber( + PULONG HighestNodeNumber + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +GetNumaNodeProcessorMask( + UCHAR Node, + PULONGLONG ProcessorMask + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +GetNumaProcessorNode( + UCHAR Processor, + PUCHAR NodeNumber + ) +{ + STUB; + return 0; +} + +BOOL +WINAPI +GetNumaAvailableMemoryNode(IN UCHAR Node, + OUT PULONGLONG AvailableBytes) +{ + STUB; + return FALSE; +} + +/* + * @unimplemented + */ +DWORD +WINAPI +GetFirmwareEnvironmentVariableW( + LPCWSTR lpName, + LPCWSTR lpGuid, + PVOID pBuffer, + DWORD nSize + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetFirmwareEnvironmentVariableW( + LPCWSTR lpName, + LPCWSTR lpGuid, + PVOID pValue, + DWORD nSize + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +DWORD +WINAPI +GetFirmwareEnvironmentVariableA( + LPCSTR lpName, + LPCSTR lpGuid, + PVOID pBuffer, + DWORD nSize + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +SetFirmwareEnvironmentVariableA( + LPCSTR lpName, + LPCSTR lpGuid, + PVOID pValue, + DWORD nSize + ) +{ + STUB; + return 0; +} + +UINT +WINAPI +EnumSystemFirmwareTables(IN DWORD FirmwareTableProviderSignature, + OUT PVOID pFirmwareTableBuffer, + IN DWORD BufferSize) +{ + STUB; + return 0; +} + +UINT +WINAPI +GetSystemFirmwareTable(IN DWORD FirmwareTableProviderSignature, + IN DWORD FirmwareTableID, + OUT PVOID pFirmwareTableBuffer, + IN DWORD BufferSize) +{ + STUB; + return 0; +} + +BOOL +WINAPI +GetSystemFileCacheSize(OUT PSIZE_T lpMinimumFileCacheSize, + OUT PSIZE_T lpMaximumFileCacheSize, + OUT PDWORD lpFlags) +{ + STUB; + return FALSE; +} + + +BOOL +WINAPI +SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize, + IN SIZE_T MaximumFileCacheSize, + IN DWORD Flags) +{ + STUB; + return FALSE; +} + diff --git a/reactos/dll/win32/kernel32/client/thread.c b/reactos/dll/win32/kernel32/client/thread.c index e9cae5e7f11..88d3c0fe395 100644 --- a/reactos/dll/win32/kernel32/client/thread.c +++ b/reactos/dll/win32/kernel32/client/thread.c @@ -816,6 +816,15 @@ QueueUserAPC(PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData) return 1; } +BOOL +WINAPI +SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes) +{ + STUB; + return FALSE; +} + + /* * @implemented */ @@ -848,48 +857,6 @@ GetThreadIOPendingFlag(HANDLE hThread, } -/* - * @implemented - */ -VOID WINAPI -Sleep(DWORD dwMilliseconds) -{ - SleepEx(dwMilliseconds, FALSE); - return; -} - - -/* - * @implemented - */ -DWORD WINAPI -SleepEx(DWORD dwMilliseconds, - BOOL bAlertable) -{ - LARGE_INTEGER Interval; - NTSTATUS errCode; - - if (dwMilliseconds != INFINITE) - { - /* - * System time units are 100 nanoseconds (a nanosecond is a billionth of - * a second). - */ - Interval.QuadPart = -((LONGLONG)dwMilliseconds * 10000); - } - else - { - /* Approximately 292000 years hence */ - Interval.QuadPart = -0x7FFFFFFFFFFFFFFFLL; - } - -dowait: - errCode = NtDelayExecution ((BOOLEAN)bAlertable, &Interval); - if ((bAlertable) && (errCode == STATUS_ALERTED)) goto dowait; - return (errCode == STATUS_USER_APC) ? WAIT_IO_COMPLETION : 0; -} - - typedef struct _QUEUE_USER_WORKITEM_CONTEXT { LPTHREAD_START_ROUTINE Function; @@ -964,112 +931,6 @@ QueueUserWorkItem( return TRUE; } - -/* - * @implemented - */ -BOOL -WINAPI -RegisterWaitForSingleObject( - PHANDLE phNewWaitObject, - HANDLE hObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG dwMilliseconds, - ULONG dwFlags - ) -{ - NTSTATUS Status = RtlRegisterWait(phNewWaitObject, - hObject, - Callback, - Context, - dwMilliseconds, - dwFlags); - - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - return FALSE; - } - return TRUE; -} - - -/* - * @implemented - */ -HANDLE -WINAPI -RegisterWaitForSingleObjectEx( - HANDLE hObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG dwMilliseconds, - ULONG dwFlags - ) -{ - NTSTATUS Status; - HANDLE hNewWaitObject; - - Status = RtlRegisterWait(&hNewWaitObject, - hObject, - Callback, - Context, - dwMilliseconds, - dwFlags); - - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - return NULL; - } - - return hNewWaitObject; -} - - -/* - * @implemented - */ -BOOL -WINAPI -UnregisterWait( - HANDLE WaitHandle - ) -{ - NTSTATUS Status = RtlDeregisterWaitEx(WaitHandle, NULL); - - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - return FALSE; - } - - return TRUE; -} - - -/* - * @implemented - */ -BOOL -WINAPI -UnregisterWaitEx( - HANDLE WaitHandle, - HANDLE CompletionEvent - ) -{ - NTSTATUS Status = RtlDeregisterWaitEx(WaitHandle, CompletionEvent); - - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - return FALSE; - } - - return TRUE; -} - /* * @implemented */ diff --git a/reactos/dll/win32/kernel32/client/utils.c b/reactos/dll/win32/kernel32/client/utils.c index ff0276e42f8..55afa9032b2 100644 --- a/reactos/dll/win32/kernel32/client/utils.c +++ b/reactos/dll/win32/kernel32/client/utils.c @@ -488,3 +488,39 @@ BasepMapFile(IN LPCWSTR lpApplicationName, DPRINT("Section: %lx for file: %lx\n", *hSection, hFile); return Status; } + +/* + * @unimplemented + */ +BOOL +WINAPI +BaseCheckRunApp(IN DWORD Unknown1, + IN DWORD Unknown2, + IN DWORD Unknown3, + IN DWORD Unknown4, + IN DWORD Unknown5, + IN DWORD Unknown6, + IN DWORD Unknown7, + IN DWORD Unknown8, + IN DWORD Unknown9, + IN DWORD Unknown10) +{ + STUB; + return FALSE; +} + +/* + * @unimplemented + */ +BOOL +WINAPI +BasepCheckWinSaferRestrictions(IN DWORD Unknown1, + IN DWORD Unknown2, + IN DWORD Unknown3, + IN DWORD Unknown4, + IN DWORD Unknown5, + IN DWORD Unknown6) +{ + STUB; + return FALSE; +} diff --git a/reactos/dll/win32/kernel32/client/vdm.c b/reactos/dll/win32/kernel32/client/vdm.c new file mode 100644 index 00000000000..c0d5ff0c77e --- /dev/null +++ b/reactos/dll/win32/kernel32/client/vdm.c @@ -0,0 +1,245 @@ +/* + * PROJECT: ReactOS Win32 Base API + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/kernel32/client/vdm.c + * PURPOSE: Virtual Dos Machine (VDM) Support + * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) + */ + +/* INCLUDES *******************************************************************/ + +#include + +#define NDEBUG +#include + +/* TYPES **********************************************************************/ + +/* FUNCTIONS ******************************************************************/ + +/* + * @unimplemented + */ +BOOL +WINAPI +CmdBatNotification ( + DWORD Unknown + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +CreateVirtualBuffer ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2 + ) +{ + STUB; + return 0; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +ExitVDM ( + DWORD Unknown0, + DWORD Unknown1 + ) +{ + STUB; + return 0; +} + + +/* + * @unimplemented + */ +BOOL +WINAPI +ExtendVirtualBuffer ( + DWORD Unknown0, + DWORD Unknown1 + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +BOOL +WINAPI +FreeVirtualBuffer ( + HANDLE hVirtualBuffer + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +GetNextVDMCommand ( + DWORD Unknown0 + ) +{ + STUB; + return 0; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +GetVDMCurrentDirectories ( + DWORD Unknown0, + DWORD Unknown1 + ) +{ + STUB; + return 0; +} + + +/* + * @unimplemented + */ +BOOL +WINAPI +RegisterConsoleVDM ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2, + DWORD Unknown3, + DWORD Unknown4, + DWORD Unknown5, + DWORD Unknown6, + DWORD Unknown7, + DWORD Unknown8, + DWORD Unknown9, + DWORD Unknown10 + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +BOOL +WINAPI +RegisterWowBaseHandlers ( + DWORD Unknown0 + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +BOOL +WINAPI +RegisterWowExec ( + DWORD Unknown0 + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +BOOL +WINAPI +SetVDMCurrentDirectories ( + DWORD Unknown0, + DWORD Unknown1 + ) +{ + STUB; + return FALSE; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +TrimVirtualBuffer ( + DWORD Unknown0 + ) +{ + STUB; + return 0; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +VDMConsoleOperation ( + DWORD Unknown0, + DWORD Unknown1 + ) +{ + STUB; + return 0; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +VDMOperationStarted ( + DWORD Unknown0 + ) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +DWORD +WINAPI +VirtualBufferExceptionHandler ( + DWORD Unknown0, + DWORD Unknown1, + DWORD Unknown2 + ) +{ + STUB; + return 0; +} diff --git a/reactos/dll/win32/kernel32/k32.h b/reactos/dll/win32/kernel32/k32.h index f59172c8566..c64e33f8f34 100644 --- a/reactos/dll/win32/kernel32/k32.h +++ b/reactos/dll/win32/kernel32/k32.h @@ -42,4 +42,8 @@ /* PSEH for SEH Support */ #include +#define STUB \ + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); \ + DPRINT1("%s() is UNIMPLEMENTED!\n", __FUNCTION__) + #endif diff --git a/reactos/dll/win32/kernel32/kernel32.pspec b/reactos/dll/win32/kernel32/kernel32.pspec index 4e91a4d2725..dbad8104685 100644 --- a/reactos/dll/win32/kernel32/kernel32.pspec +++ b/reactos/dll/win32/kernel32/kernel32.pspec @@ -72,8 +72,6 @@ ;@ stdcall CallbackMayRunLong ; Win 7 @ stdcall CancelDeviceWakeupRequest(long) @ stdcall CancelIo(long) -@ stdcall CancelIoEx(long ptr) -@ stdcall CancelSynchronousIo(long) ;@ stdcall CancelThreadpoolIo(ptr) ntdll.TpCancelAsyncIoOperation; Win 7 @ stdcall CancelTimerQueueTimer(long long) @ stdcall CancelWaitableTimer(long) @@ -177,7 +175,6 @@ ;@ stdcall CreateProcessAsUserW ; Win 7 @ stdcall CreateProcessInternalA(ptr str str ptr ptr long long ptr str ptr ptr long) @ stdcall CreateProcessInternalW(ptr wstr wstr ptr ptr long long ptr wstr ptr ptr long) -@ stdcall CreateProcessInternalWSecure() ; missing in Win 7 @ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) @ stdcall CreateRemoteThread(long ptr long ptr long long ptr) ;@ stdcall CreateRemoteThreadEx api-ms-win-core-processthreads-l1-1-0.CreateRemoteThreadEx ; Win 7 @@ -572,14 +569,12 @@ ;@ stdcall -arch=x86_64 GetNextUmsListItem @ stdcall GetNextVDMCommand(long) @ stdcall GetNlsSectionName(long long long str str long) ; missing in Win 7 -@ stdcall GetNumaAvailableMemory(ptr long ptr) ; missing in Win 7 @ stdcall GetNumaAvailableMemoryNode(long ptr) ;@ stdcall GetNumaAvailableMemoryNodeEx ; Win 7 @ stdcall GetNumaHighestNodeNumber(ptr) ;@ stdcall GetNumaNodeNumberFromHandle ; Win 7 @ stdcall GetNumaNodeProcessorMask(long ptr) ;@ stdcall GetNumaNodeProcessorMaskEx ; Win 7 -@ stdcall GetNumaProcessorMap(ptr long ptr) ; missing in Win 7 @ stdcall GetNumaProcessorNode(long ptr) ;@ stdcall GetNumaProcessorNodeEx ; Win 7 ;@ stdcall GetNumaProximityNode ; Win 7 @@ -921,7 +916,6 @@ ;@ stdcall NotifyMountMgr ; Win 7 @ stub NotifyNLSUserCache ; missing in XP SP3 and win 7 ;@ stdcall NotifyUILanguageChange ; Win 7 -@ stdcall NumaVirtualQueryNode(long long long long) ; missing in win 7 @ stdcall OpenConsoleW(wstr long long long) @ stdcall OpenDataFile(long long) ; missing in Win 7 @ stdcall OpenEventA(long long str) diff --git a/reactos/dll/win32/kernel32/kernel32.rbuild b/reactos/dll/win32/kernel32/kernel32.rbuild index aa6adec8f94..d584ce938a1 100644 --- a/reactos/dll/win32/kernel32/kernel32.rbuild +++ b/reactos/dll/win32/kernel32/kernel32.rbuild @@ -25,6 +25,7 @@ thread.S + appcache.c atom.c compname.c debugger.c @@ -46,6 +47,7 @@ timerqueue.c thread.c utils.c + vdm.c version.c virtmem.c vista.c @@ -83,7 +85,6 @@ muldiv.c profile.c res.c - stubs.c time.c toolhelp.c diff --git a/reactos/dll/win32/kernel32/kernel32.spec b/reactos/dll/win32/kernel32/kernel32.spec index e5d0a4c395b..3d52eded778 100644 --- a/reactos/dll/win32/kernel32/kernel32.spec +++ b/reactos/dll/win32/kernel32/kernel32.spec @@ -70,8 +70,6 @@ ;@ stdcall CallbackMayRunLong ; Win 7 @ stdcall CancelDeviceWakeupRequest(long) @ stdcall CancelIo(long) -@ stdcall CancelIoEx(long ptr) -@ stdcall CancelSynchronousIo(long) ;@ stdcall CancelThreadpoolIo(ptr) ntdll.TpCancelAsyncIoOperation; Win 7 @ stdcall CancelTimerQueueTimer(long long) @ stdcall CancelWaitableTimer(long) @@ -175,7 +173,6 @@ ;@ stdcall CreateProcessAsUserW ; Win 7 @ stdcall CreateProcessInternalA(ptr str str ptr ptr long long ptr str ptr ptr long) @ stdcall CreateProcessInternalW(ptr wstr wstr ptr ptr long long ptr wstr ptr ptr long) -@ stdcall CreateProcessInternalWSecure() ; missing in Win 7 @ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) @ stdcall CreateRemoteThread(long ptr long ptr long long ptr) ;@ stdcall CreateRemoteThreadEx api-ms-win-core-processthreads-l1-1-0.CreateRemoteThreadEx ; Win 7 @@ -570,14 +567,12 @@ ;@ stdcall -arch=x86_64 GetNextUmsListItem @ stdcall GetNextVDMCommand(long) @ stdcall GetNlsSectionName(long long long str str long) ; missing in Win 7 -@ stdcall GetNumaAvailableMemory(ptr long ptr) ; missing in Win 7 @ stdcall GetNumaAvailableMemoryNode(long ptr) ;@ stdcall GetNumaAvailableMemoryNodeEx ; Win 7 @ stdcall GetNumaHighestNodeNumber(ptr) ;@ stdcall GetNumaNodeNumberFromHandle ; Win 7 @ stdcall GetNumaNodeProcessorMask(long ptr) ;@ stdcall GetNumaNodeProcessorMaskEx ; Win 7 -@ stdcall GetNumaProcessorMap(ptr long ptr) ; missing in Win 7 @ stdcall GetNumaProcessorNode(long ptr) ;@ stdcall GetNumaProcessorNodeEx ; Win 7 ;@ stdcall GetNumaProximityNode ; Win 7 @@ -919,7 +914,6 @@ ;@ stdcall NotifyMountMgr ; Win 7 ;@ stub NotifyNLSUserCache ; missing in XP SP3 and win 7 ;@ stdcall NotifyUILanguageChange ; Win 7 -@ stdcall NumaVirtualQueryNode(long long long long) ; missing in win 7 @ stdcall OpenConsoleW(wstr long long long) @ stdcall OpenDataFile(long long) ; missing in Win 7 @ stdcall OpenEventA(long long str) diff --git a/reactos/dll/win32/kernel32/winnls/string/nls.c b/reactos/dll/win32/kernel32/winnls/string/nls.c index c27290d04d8..6fd73cf0357 100644 --- a/reactos/dll/win32/kernel32/winnls/string/nls.c +++ b/reactos/dll/win32/kernel32/winnls/string/nls.c @@ -2031,4 +2031,71 @@ IsDBCSLeadByte(BYTE TestByte) return IntIsLeadByte(&AnsiCodePage.CodePageTable, TestByte); } +/* + * @unimplemented + */ +NTSTATUS WINAPI CreateNlsSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor,ULONG Size,ULONG AccessMask) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +BOOL WINAPI IsValidUILanguage(LANGID langid) +{ + STUB; + return 0; +} + +/* + * @unimplemented + */ +VOID WINAPI NlsConvertIntegerToString(ULONG Value,ULONG Base,ULONG strsize, LPWSTR str, ULONG strsize2) +{ + STUB; +} + +/* + * @unimplemented + */ +UINT WINAPI SetCPGlobal(UINT CodePage) +{ + STUB; + return 0; +} + +BOOL +WINAPI +NlsResetProcessLocale(VOID) +{ + STUB; + return TRUE; +} + +VOID +WINAPI +GetDefaultSortkeySize(LPVOID lpUnknown) +{ + STUB; + lpUnknown = NULL; +} + +VOID +WINAPI +GetLinguistLangSize(LPVOID lpUnknown) +{ + STUB; + lpUnknown = NULL; +} + +ULONG +WINAPI +NlsGetCacheUpdateCount(VOID) +{ + STUB; + return 0; +} + /* EOF */