[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:
Alex Ionescu 2011-07-22 02:13:57 +00:00
parent e18ef1f5a7
commit 222e577a94
24 changed files with 1507 additions and 1558 deletions

View file

@ -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

View 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;
}

View file

@ -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 */

View file

@ -697,4 +697,17 @@ GetLastError()
return NtCurrentTeb()->LastErrorValue;
}
/*
* @unimplemented
*/
VOID
WINAPI
RestoreLastError(
DWORD dwErrCode
)
{
STUB;
}
/* EOF */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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

View file

@ -795,4 +795,16 @@ GetSystemTimes(LPFILETIME lpIdleTime,
return TRUE;
}
/*
* @unimplemented
*/
BOOL
WINAPI
SetClientTimeZoneInformation(
CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation)
{
STUB;
return 0;
}
/* EOF */

View file

@ -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
*/

View file

@ -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 */

View file

@ -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;
}

View file

@ -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
*/

View file

@ -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;
}

View 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;
}

View file

@ -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

View file

@ -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)

View file

@ -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>

View file

@ -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)

View file

@ -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 */