mirror of
https://github.com/reactos/reactos.git
synced 2025-05-18 00:31:27 +00:00
[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
This commit is contained in:
parent
e18ef1f5a7
commit
222e577a94
24 changed files with 1507 additions and 1558 deletions
|
@ -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
|
||||
|
|
126
reactos/dll/win32/kernel32/client/appcache.c
Normal file
126
reactos/dll/win32/kernel32/client/appcache.c
Normal file
|
@ -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 <k32.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* 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;
|
||||
}
|
|
@ -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 */
|
||||
|
|
|
@ -697,4 +697,17 @@ GetLastError()
|
|||
return NtCurrentTeb()->LastErrorValue;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
VOID
|
||||
WINAPI
|
||||
RestoreLastError(
|
||||
DWORD dwErrCode
|
||||
)
|
||||
{
|
||||
STUB;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -795,4 +795,16 @@ GetSystemTimes(LPFILETIME lpIdleTime,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
SetClientTimeZoneInformation(
|
||||
CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation)
|
||||
{
|
||||
STUB;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
245
reactos/dll/win32/kernel32/client/vdm.c
Normal file
245
reactos/dll/win32/kernel32/client/vdm.c
Normal file
|
@ -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 <k32.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* 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;
|
||||
}
|
|
@ -42,4 +42,8 @@
|
|||
/* PSEH for SEH Support */
|
||||
#include <pseh/pseh2.h>
|
||||
|
||||
#define STUB \
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); \
|
||||
DPRINT1("%s() is UNIMPLEMENTED!\n", __FUNCTION__)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
<file>thread.S</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>appcache.c</file>
|
||||
<file>atom.c</file>
|
||||
<file>compname.c</file>
|
||||
<file>debugger.c</file>
|
||||
|
@ -46,6 +47,7 @@
|
|||
<file>timerqueue.c</file>
|
||||
<file>thread.c</file>
|
||||
<file>utils.c</file>
|
||||
<file>vdm.c</file>
|
||||
<file>version.c</file>
|
||||
<file>virtmem.c</file>
|
||||
<file>vista.c</file>
|
||||
|
@ -83,7 +85,6 @@
|
|||
<file>muldiv.c</file>
|
||||
<file>profile.c</file>
|
||||
<file>res.c</file>
|
||||
<file>stubs.c</file>
|
||||
<file>time.c</file>
|
||||
<file>toolhelp.c</file>
|
||||
</directory>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue