[SDK][KernelBase][Kernel32] Build Wine-10.0 kernelbase

This commit is contained in:
Justin Miller
2025-05-28 22:55:05 -07:00
parent a775284d21
commit ae82771d43
38 changed files with 2741 additions and 386 deletions

View File

@@ -138,6 +138,7 @@
@ stdcall KiUserExceptionDispatcher(ptr ptr)
@ stdcall -version=0x502 LdrAccessOutOfProcessResource(ptr ptr ptr ptr ptr)
@ stdcall LdrAccessResource(ptr ptr ptr ptr)
@ stdcall -version=0x601+ LdrAddDllDirectory(ptr ptr)
@ stdcall -stub -version=0x600+ LdrAddLoadAsDataTable(ptr wstr long ptr)
@ stdcall LdrAddRefDll(long ptr)
@ stdcall -version=0x502 LdrAlternateResourcesEnabled()
@@ -152,6 +153,7 @@
@ stdcall -stub LdrFindResourceEx_U(ptr ptr ptr ptr ptr) ; 5.1 and higher
@ stdcall LdrFindResource_U(ptr ptr long ptr)
@ stdcall LdrFlushAlternateResourceModules()
@ stdcall -version=0x601+ LdrGetDllDirectory(ptr)
@ stdcall LdrGetDllHandle(wstr ptr ptr ptr)
@ stdcall LdrGetDllHandleEx(long wstr ptr ptr ptr)
@ stdcall -stub -version=0x600+ LdrGetFailureData()
@@ -175,12 +177,15 @@
@ stdcall -stub -version=0x600+ LdrQueryModuleServiceTags(ptr ptr ptr)
@ stdcall LdrQueryProcessModuleInformation(ptr long ptr)
@ stdcall -version=0x600+ LdrRegisterDllNotification(long ptr ptr ptr)
@ stdcall -version=0x601+ LdrRemoveDllDirectory(ptr)
@ stdcall -stub -version=0x600+ LdrRemoveLoadAsDataTable(ptr ptr ptr long)
@ stdcall -stub -version=0x600+ LdrResFindResource(ptr long long long long long long long long)
@ stdcall -stub -version=0x600+ LdrResFindResourceDirectory(ptr long long long long long long)
@ stdcall -stub -version=0x600+ LdrResRelease(ptr ptr long long)
@ stdcall -stub -version=0x600+ LdrResSearchResource(wstr wstr long long long ptr long long)
@ stdcall LdrSetAppCompatDllRedirectionCallback(long ptr ptr)
@ stdcall -version=0x601+ LdrSetDefaultDllDirectories(long)
@ stdcall -version=0x601+ LdrSetDllDirectory(ptr)
@ stdcall LdrSetDllManifestProber(ptr)
@ stdcall -stub -version=0x600+ LdrSetMUICacheType(long)
@ stdcall LdrShutdownProcess()
@@ -1207,8 +1212,8 @@
@ stdcall RtlTraceDatabaseUnlock(ptr)
@ stdcall RtlTraceDatabaseValidate(ptr)
@ stdcall -stub -version=0x600+ RtlTryAcquirePebLock()
@ stdcall -version=0x601 RtlTryAcquireSRWLockExclusive(ptr)
@ stdcall -version=0x601 RtlTryAcquireSRWLockShared(ptr)
@ stdcall -version=0x601+ RtlTryAcquireSRWLockExclusive(ptr)
@ stdcall -version=0x601+ RtlTryAcquireSRWLockShared(ptr)
@ stdcall RtlTryEnterCriticalSection(ptr)
@ stdcall RtlUnhandledExceptionFilter2(ptr long)
@ stdcall RtlUnhandledExceptionFilter(ptr)

View File

@@ -1,5 +1,8 @@
#include "ntdll_vista.h"
VOID NTAPI
RtlpInitializeThreadPooling();
BOOL
WINAPI
DllMain(HANDLE hDll,
@@ -10,6 +13,7 @@ DllMain(HANDLE hDll,
{
LdrDisableThreadCalloutsForDll(hDll);
RtlpInitializeKeyedEvent();
RtlpInitializeThreadPooling();
}
else if (dwReason == DLL_PROCESS_DETACH)
{

View File

@@ -1,3 +1,37 @@
#include "ntdll_vista.h"
PVOID LdrpHeap;
#include <debug.h>
/* These APIs are very commonly used in modern apps + needed for kernelbase, But these stubs will work for now. */
NTSTATUS WINAPI LdrGetDllDirectory( UNICODE_STRING *dir )
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
}
NTSTATUS WINAPI LdrSetDllDirectory( const UNICODE_STRING *dir )
{
UNIMPLEMENTED;
return STATUS_SUCCESS;
}
NTSTATUS WINAPI LdrAddDllDirectory( const UNICODE_STRING *dir, void **cookie )
{
UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL;
}
NTSTATUS WINAPI LdrRemoveDllDirectory( void *cookie )
{
UNIMPLEMENTED;
return STATUS_SUCCESS;
}
NTSTATUS WINAPI LdrSetDefaultDllDirectories( ULONG flags )
{
UNIMPLEMENTED;
return STATUS_SUCCESS;
}

View File

@@ -18,3 +18,44 @@
@ stdcall RtlConnectToSm(ptr ptr long ptr) SmConnectToSm
@ stdcall RtlSendMsgToSm(ptr ptr) SmSendMsgToSm
@ stdcall TpAllocCleanupGroup(ptr)
@ stdcall TpAllocIoCompletion(ptr ptr ptr ptr ptr)
@ stdcall TpAllocPool(ptr ptr)
@ stdcall TpAllocTimer(ptr ptr ptr ptr)
@ stdcall TpAllocWait(ptr ptr ptr ptr)
@ stdcall TpAllocWork(ptr ptr ptr ptr)
@ stdcall TpCallbackLeaveCriticalSectionOnCompletion(ptr ptr)
@ stdcall TpCallbackMayRunLong(ptr)
@ stdcall TpCallbackReleaseMutexOnCompletion(ptr ptr)
@ stdcall TpCallbackReleaseSemaphoreOnCompletion(ptr ptr long)
@ stdcall TpCallbackSetEventOnCompletion(ptr ptr)
@ stdcall TpCallbackUnloadDllOnCompletion(ptr ptr)
@ stdcall TpCancelAsyncIoOperation(ptr)
@ stdcall TpDisassociateCallback(ptr)
@ stdcall TpIsTimerSet(ptr)
@ stdcall TpPostWork(ptr)
@ stdcall TpQueryPoolStackInformation(ptr ptr)
@ stdcall TpReleaseCleanupGroup(ptr)
@ stdcall TpReleaseCleanupGroupMembers(ptr long ptr)
@ stdcall TpReleaseIoCompletion(ptr)
@ stdcall TpReleasePool(ptr)
@ stdcall TpReleaseTimer(ptr)
@ stdcall TpReleaseWait(ptr)
@ stdcall TpReleaseWork(ptr)
@ stdcall TpSetPoolMaxThreads(ptr long)
@ stdcall TpSetPoolMinThreads(ptr long)
@ stdcall TpSetPoolStackInformation(ptr ptr)
@ stdcall TpSetTimer(ptr ptr long long)
@ stdcall TpSetWait(ptr long ptr)
@ stdcall TpSimpleTryPost(ptr ptr ptr)
@ stdcall TpStartAsyncIoOperation(ptr)
@ stdcall TpWaitForIoCompletion(ptr long)
@ stdcall TpWaitForTimer(ptr long)
@ stdcall TpWaitForWait(ptr long)
@ stdcall TpWaitForWork(ptr long)
@ stdcall LdrAddDllDirectory(ptr ptr)
@ stdcall LdrSetDllDirectory(ptr)
@ stdcall LdrGetDllDirectory(ptr)
@ stdcall LdrRemoveDllDirectory(ptr)
@ stdcall LdrSetDefaultDllDirectories(long)

View File

@@ -0,0 +1,11 @@
wine/actctx.c - ours is better
wine/comm.c ? maybe syncable
wine/lzexpand.c syncable - Kernel32
wine/profile.c syncable - kernel32
wine/res.c - loader.c - kernelbase
wine/timezone.c ?
winnls/string/fold.c <-Locale - unsyncable until we have more kernel apis
winnls/string/format_msg.c <- Locale - unsyncable until we have more kernel apis
winnls/string/lcformat.c <- Locale - unsyncable until we have more kernel apis
winnls/string/locale.c <- Locale - unsyncable until we have more kernel apis
winnls/string/sortkey.c <- Locale - unsyncable until we have more kernel apis

View File

@@ -39,9 +39,22 @@ endif()
list(APPEND SOURCE_STATIC
#console.c #looks like ReactOS console.c is nothing like wine.
debug.c
file.c
loader.c
main.c
memory.c
process.c
# registry.c use advapi32 lib instead for now.
security.c
string.c
sync.c
thread.c
version.c #mostly Version.dll
volume.c
)
add_library(kernelbase_static ${SOURCE_PATH})
add_library(kernelbase_static ${SOURCE_STATIC})
target_link_libraries(kernelbase_static kernelbase_path psapi_static ${PSEH_LIB})
add_dependencies(kernelbase_static psdk)

View File

@@ -49,6 +49,7 @@ static PTOP_LEVEL_EXCEPTION_FILTER top_filter;
void *dummy = RtlUnwind; /* force importing RtlUnwind from ntdll */
#ifndef __REACTOS__
/***********************************************************************
* CheckRemoteDebuggerPresent (kernelbase.@)
*/
@@ -768,7 +769,7 @@ LONG WINAPI UnhandledExceptionFilter( EXCEPTION_POINTERS *epointers )
return EXCEPTION_CONTINUE_SEARCH;
}
#endif
/***********************************************************************
* WerGetFlags (kernelbase.@)
*/
@@ -849,7 +850,7 @@ HRESULT WINAPI /* DECLSPEC_HOTPATCH */ WerUnregisterRuntimeExceptionModule( cons
return S_OK;
}
#ifndef __REACTOS__
/***********************************************************************
* psapi functions
***********************************************************************/
@@ -1669,7 +1670,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetWsChanges( HANDLE process, PSAPI_WS_WATCH_INFOR
TRACE( "(%p, %p, %ld)\n", process, info, size );
return set_ntstatus( NtQueryInformationProcess( process, ProcessWorkingSetWatch, info, size, NULL ));
}
#endif
/***********************************************************************
* GetWsChangesEx (kernelbase.@)
@@ -1684,6 +1685,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetWsChangesEx( HANDLE process, PSAPI_WS_WATCH_INF
}
#ifndef __REACTOS__
/***********************************************************************
* InitializeProcessForWsWatch (kernelbase.@)
* K32InitializeProcessForWsWatch (kernelbase.@)
@@ -1694,7 +1696,6 @@ BOOL WINAPI /* DECLSPEC_HOTPATCH */ InitializeProcessForWsWatch( HANDLE process
return TRUE;
}
/***********************************************************************
* QueryWorkingSet (kernelbase.@)
* K32QueryWorkingSet (kernelbase.@)
@@ -1718,7 +1719,6 @@ BOOL WINAPI QueryWorkingSetEx( HANDLE process, void *buffer, DWORD size )
buffer, size, NULL ));
}
/******************************************************************
* QueryFullProcessImageNameA (kernelbase.@)
*/
@@ -1818,3 +1818,4 @@ cleanup:
HeapFree( GetProcessHeap(), 0, dynamic_buffer );
return set_ntstatus( status );
}
#endif

View File

@@ -34,8 +34,10 @@
#include "wincon.h"
#include "fileapi.h"
#include "shlwapi.h"
#ifndef __REACTOS__
#include "ddk/ntddk.h"
#include "ddk/ntddser.h"
#endif
#include "ioringapi.h"
#include "kernelbase.h"
@@ -476,7 +478,7 @@ static BOOL is_same_file( HANDLE h1, HANDLE h2 )
!memcmp( &id1.ObjectId, &id2.ObjectId, sizeof(id1.ObjectId) ));
}
#ifndef __REACTOS__
/******************************************************************************
* AreFileApisANSI (kernelbase.@)
*/
@@ -484,6 +486,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH AreFileApisANSI(void)
{
return !oem_file_apis;
}
#endif
/******************************************************************************
* copy_file
@@ -602,7 +605,7 @@ HRESULT WINAPI CopyFile2( const WCHAR *source, const WCHAR *dest, COPYFILE2_EXTE
return copy_file(source, dest, params) ? S_OK : HRESULT_FROM_WIN32(GetLastError());
}
#ifndef __REACTOS__
/***********************************************************************
* CopyFileExW (kernelbase.@)
*/
@@ -690,7 +693,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryExW( LPCWSTR template, LPCWSTR path
{
return CreateDirectoryW( path, sa );
}
#endif
/*************************************************************************
* CreateFile2 (kernelbase.@)
@@ -734,6 +737,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateFile2( LPCWSTR name, DWORD access, DWORD s
return CreateFileW( name, access, sharing, sa, creation, flags | attributes, template );
}
#ifndef __REACTOS__
/*************************************************************************
* CreateFileA (kernelbase.@)
@@ -2997,7 +3001,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH CancelIo( HANDLE handle )
return set_ntstatus( NtCancelIoFile( handle, &io ) );
}
#endif
/***********************************************************************
* CancelIoEx (kernelbase.@)
@@ -3005,11 +3009,14 @@ BOOL WINAPI DECLSPEC_HOTPATCH CancelIo( HANDLE handle )
BOOL WINAPI DECLSPEC_HOTPATCH CancelIoEx( HANDLE handle, LPOVERLAPPED overlapped )
{
IO_STATUS_BLOCK io;
#ifdef __REACTOS__
return set_ntstatus( NtCancelIoFile( handle, &io ) );
#else
return set_ntstatus( NtCancelIoFileEx( handle, (PIO_STATUS_BLOCK)overlapped, &io ) );
#endif
}
#ifndef __REACTOS__
/***********************************************************************
* CancelSynchronousIo (kernelbase.@)
*/
@@ -3662,7 +3669,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetEndOfFile( HANDLE file )
}
return set_ntstatus( status );
}
#endif
/***********************************************************************
* SetFileInformationByHandle (kernelbase.@)
@@ -3741,7 +3748,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetFileInformationByHandle( HANDLE file, FILE_INFO
return set_ntstatus( status );
}
#ifndef __REACTOS__
/***********************************************************************
* SetFilePointer (kernelbase.@)
*/
@@ -4592,7 +4599,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitCommEvent( HANDLE handle, DWORD *events, OVERL
return DeviceIoControl( handle, IOCTL_SERIAL_WAIT_ON_MASK, NULL, 0, events, sizeof(*events),
NULL, overlapped );
}
#endif
/***********************************************************************
* QueryIoRingCapabilities (kernelbase.@)

View File

@@ -28,7 +28,9 @@
#include "winbase.h"
#include "winnls.h"
#include "winternl.h"
#ifndef __REACTOS__
#include "ddk/ntddk.h"
#endif
#include "kernelbase.h"
#include "wine/list.h"
#include "wine/asm.h"
@@ -60,6 +62,7 @@ static CRITICAL_SECTION exclusive_datafile_list_section = { &critsect_debug, -1,
* Modules
***********************************************************************/
#ifndef __REACTOS__ // Let use the reactos implementation of this
/******************************************************************
* get_proc_address
@@ -492,12 +495,19 @@ FARPROC WINAPI DECLSPEC_HOTPATCH GetProcAddress( HMODULE module, LPCSTR function
#endif /* __x86_64__ */
#endif
/***********************************************************************
* IsApiSetImplemented (kernelbase.@)
*/
BOOL WINAPI IsApiSetImplemented( LPCSTR name )
{
#ifdef __REACTOS__
return TRUE;
/*
* ReactOS always has API sets on now?
*/
#else
UNICODE_STRING str;
NTSTATUS status;
BOOLEAN in_schema, present;
@@ -506,8 +516,10 @@ BOOL WINAPI IsApiSetImplemented( LPCSTR name )
status = ApiSetQueryApiSetPresenceEx( &str, &in_schema, &present );
RtlFreeUnicodeString( &str );
return !status && present;
#endif
}
#ifndef __REACTOS__
/***********************************************************************
* LoadLibraryA (kernelbase.@)
@@ -566,6 +578,7 @@ HMODULE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW( LPCWSTR name, HANDLE file, DWOR
return module;
}
#endif
/***********************************************************************
* LoadPackagedLibrary (kernelbase.@)
@@ -932,7 +945,7 @@ done:
return ret;
}
#ifndef __REACTOS__
/**********************************************************************
* EnumResourceNamesW (kernelbase.@)
*/
@@ -941,7 +954,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH EnumResourceNamesW( HMODULE module, LPCWSTR type,
{
return EnumResourceNamesExW( module, type, func, param, 0, 0 );
}
#endif
/**********************************************************************
* EnumResourceTypesExA (kernelbase.@)
@@ -1045,7 +1058,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH EnumResourceTypesExW( HMODULE module, ENUMRESTYPEP
return ret;
}
#ifndef __REACTOS__
/**********************************************************************
* FindResourceExW (kernelbase.@)
*/
@@ -1221,7 +1234,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetCurrentActCtx( HANDLE *pcontext )
return set_ntstatus( RtlGetActiveActivationContext( pcontext ));
}
#endif
/***********************************************************************
* QueryActCtxSettingsW (kernelbase.@)
*/
@@ -1232,8 +1245,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH QueryActCtxSettingsW( DWORD flags, HANDLE ctx, con
return set_ntstatus( RtlQueryActivationContextApplicationSettings( flags, ctx, ns, settings,
buffer, size, written ));
}
#ifndef __REACTOS__
/***********************************************************************
* QueryActCtxW (kernelbase.@)
*/
@@ -1261,3 +1273,4 @@ BOOL WINAPI DECLSPEC_HOTPATCH ZombifyActCtx( HANDLE context )
{
return set_ntstatus( RtlZombifyActivationContext( context ));
}
#endif

View File

@@ -24,7 +24,9 @@
#include "windows.h"
#include "appmodel.h"
#include "shlwapi.h"
#ifndef __REACTOS__
#include "perflib.h"
#endif
#include "winternl.h"
#include "wine/debug.h"
@@ -34,9 +36,13 @@
WINE_DEFAULT_DEBUG_CHANNEL(kernelbase);
#ifdef __REACTOS__
const GUID IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
#endif
BOOL is_wow64 = FALSE;
#ifndef __REACTOS__
/***********************************************************************
* DllMain
*/
@@ -47,40 +53,17 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
DisableThreadLibraryCalls( hinst );
IsWow64Process( GetCurrentProcess(), &is_wow64 );
init_global_data();
init_locale( hinst );
// init_locale( hinst );
init_startup_info( NtCurrentTeb()->Peb->ProcessParameters );
#ifndef __REACTOS__
init_console();
#endif
}
return TRUE;
}
#endif
/***********************************************************************
* MulDiv (kernelbase.@)
*/
INT WINAPI MulDiv( INT a, INT b, INT c )
{
LONGLONG ret;
if (!c) return -1;
/* We want to deal with a positive divisor to simplify the logic. */
if (c < 0)
{
a = -a;
c = -c;
}
/* If the result is positive, we "add" to round. else, we subtract to round. */
if ((a < 0 && b < 0) || (a >= 0 && b >= 0))
ret = (((LONGLONG)a * b) + (c / 2)) / c;
else
ret = (((LONGLONG)a * b) - (c / 2)) / c;
if (ret > 2147483647 || ret < -2147483647) return -1;
return ret;
}
/***********************************************************************
* AppPolicyGetMediaFoundationCodecLoading (KERNELBASE.@)
*/
@@ -147,34 +130,8 @@ LONG WINAPI AppPolicyGetWindowingModel(HANDLE token, AppPolicyWindowingModel *po
return ERROR_SUCCESS;
}
struct counterset_template
{
PERF_COUNTERSET_INFO counterset;
PERF_COUNTER_INFO counter[1];
};
struct counterset_instance
{
struct list entry;
struct counterset_template *template;
PERF_COUNTERSET_INSTANCE instance;
};
struct perf_provider
{
GUID guid;
PERFLIBREQUEST callback;
struct counterset_template **countersets;
unsigned int counterset_count;
struct list instance_list;
};
static struct perf_provider *perf_provider_from_handle(HANDLE prov)
{
return (struct perf_provider *)prov;
}
#ifndef __REACTOS__
/***********************************************************************
* PerfCreateInstance (KERNELBASE.@)
*/
@@ -395,7 +352,7 @@ ULONG WINAPI PerfStopProvider(HANDLE handle)
heap_free( prov );
return STATUS_SUCCESS;
}
#endif
/***********************************************************************
* QuirkIsEnabled (KERNELBASE.@)
*/

View File

@@ -22,17 +22,19 @@
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#ifndef __REACTOS__
#include <sys/types.h>
#include "ntstatus.h"
#endif
#define WIN32_NO_STATUS
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
#include "winternl.h"
#ifndef __REACTOS__
#include "winerror.h"
#include "ddk/wdm.h"
#endif
#include "kernelbase.h"
#include "wine/exception.h"
#include "wine/debug.h"
@@ -41,7 +43,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(heap);
WINE_DECLARE_DEBUG_CHANNEL(virtual);
WINE_DECLARE_DEBUG_CHANNEL(globalmem);
#ifdef __REACTOS__
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004)
#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L)
#endif
#ifndef __REACTOS__
static CROSS_PROCESS_WORK_LIST *open_cross_process_connection( HANDLE process )
{
@@ -1442,7 +1448,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetLogicalProcessorInformation( SYSTEM_LOGICAL_PRO
if (status == STATUS_INFO_LENGTH_MISMATCH) status = STATUS_BUFFER_TOO_SMALL;
return set_ntstatus( status );
}
#endif
/***********************************************************************
* GetLogicalProcessorInformationEx (kernelbase.@)
@@ -1457,13 +1463,17 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetLogicalProcessorInformationEx( LOGICAL_PROCESSO
SetLastError( ERROR_INVALID_PARAMETER );
return FALSE;
}
#ifdef __REACTOS__
status = NtQuerySystemInformation( SystemLogicalProcessorInformationEx, buffer, *len, len ); //NtQuerySystemInformationEx is required.
#else
status = NtQuerySystemInformationEx( SystemLogicalProcessorInformationEx, &relationship,
sizeof(relationship), buffer, *len, len );
#endif
if (status == STATUS_INFO_LENGTH_MISMATCH) status = STATUS_BUFFER_TOO_SMALL;
return set_ntstatus( status );
}
#ifndef __REACTOS__
/***********************************************************************
* GetSystemCpuSetInformation (kernelbase.@)
*/
@@ -1830,3 +1840,4 @@ UINT WINAPI GetSystemFirmwareTable( DWORD provider, DWORD id, void *buffer, DWOR
return get_firmware_table( provider, SystemFirmwareTable_Get, id, buffer, size );
}
#endif

View File

@@ -31,13 +31,15 @@
#include "kernelbase.h"
#include "wine/debug.h"
#ifndef __REACTOS__
#include "wine/condrv.h"
#endif
WINE_DEFAULT_DEBUG_CHANNEL(process);
static DWORD shutdown_flags = 0;
static DWORD shutdown_priority = 0x280;
#ifndef __REACTOS__
/***********************************************************************
* Processes
***********************************************************************/
@@ -233,6 +235,8 @@ static RTL_USER_PROCESS_PARAMETERS *create_process_params( const WCHAR *filename
if (envW != env) RtlFreeHeap( GetProcessHeap(), 0, envW );
return params;
}
#endif
struct proc_thread_attr
{
@@ -251,6 +255,7 @@ struct _PROC_THREAD_ATTRIBUTE_LIST
struct proc_thread_attr attrs[1];
};
#ifndef __REACTOS__
/***********************************************************************
* create_nt_process
*/
@@ -838,7 +843,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetPriorityClass( HANDLE process )
default: return 0;
}
}
#endif
/***********************************************************************
* GetProcessGroupAffinity (kernelbase.@)
@@ -850,6 +855,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetProcessGroupAffinity( HANDLE process, USHORT *c
return FALSE;
}
#ifndef __REACTOS__
/******************************************************************
* GetProcessHandleCount (kernelbase.@)
@@ -1742,6 +1748,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableW( LPCWSTR name, LPCWSTR val
return set_ntstatus( status );
}
#endif
/***********************************************************************
* Process/thread attribute lists
@@ -1868,5 +1875,9 @@ void WINAPI DECLSPEC_HOTPATCH DeleteProcThreadAttributeList( struct _PROC_THREAD
*/
BOOL WINAPI DECLSPEC_HOTPATCH CompareObjectHandles( HANDLE first, HANDLE second )
{
#ifndef __REACTOS__
return set_ntstatus( NtCompareObjects( first, second ));
#else
return FALSE; //NtCompareObjects is not implemented in ReactOS
#endif
}

View File

@@ -29,7 +29,10 @@
#include "winerror.h"
#include "winternl.h"
#include "winioctl.h"
#ifdef __REACTOS__
#else
#include "ddk/ntddk.h"
#endif
#include "kernelbase.h"
#include "wine/debug.h"
@@ -721,9 +724,6 @@ BOOL WINAPI GetTokenInformation( HANDLE token, TOKEN_INFORMATION_CLASS class,
(class == TokenGroupsAndPrivileges) ? "TokenGroupsAndPrivileges" :
(class == TokenSessionReference) ? "TokenSessionReference" :
(class == TokenSandBoxInert) ? "TokenSandBoxInert" :
(class == TokenElevation) ? "TokenElevation" :
(class == TokenElevationType) ? "TokenElevationType" :
(class == TokenLinkedToken) ? "TokenLinkedToken" :
"Unknown",
info, len, retlen);

View File

@@ -31,8 +31,13 @@
#include "winnls.h"
#include "winternl.h"
#include "winioctl.h"
#ifdef __REACTOS__
#define SystemProcessorIdleCycleTimeInformation 83
#define DIRECTORY_TRAVERSE 0x0002
#define DIRECTORY_CREATE_OBJECT 0x0004
#else
#include "ddk/wdm.h"
#endif
#include "kernelbase.h"
#include "wine/asm.h"
#include "wine/exception.h"
@@ -60,7 +65,11 @@ static inline LARGE_INTEGER *get_nt_timeout( LARGE_INTEGER *time, DWORD timeout
/***********************************************************************
* BaseGetNamedObjectDirectory (kernelbase.@)
*/
#ifdef __REACTOS__
NTSTATUS WINAPI BaseGetNamedObjectDirectory_Base( HANDLE *dir )
#else
NTSTATUS WINAPI BaseGetNamedObjectDirectory( HANDLE *dir )
#endif
{
static HANDLE handle;
WCHAR buffer[64];
@@ -71,9 +80,13 @@ NTSTATUS WINAPI BaseGetNamedObjectDirectory( HANDLE *dir )
if (!handle)
{
HANDLE dir;
#ifdef __REACTOS__
swprintf( buffer, L"\\Sessions\\%u\\BaseNamedObjects",
NtCurrentTeb()->Peb->SessionId );
#else
swprintf( buffer, ARRAY_SIZE(buffer), L"\\Sessions\\%u\\BaseNamedObjects",
NtCurrentTeb()->Peb->SessionId );
#endif
RtlInitUnicodeString( &str, buffer );
InitializeObjectAttributes(&attr, &str, 0, 0, NULL);
status = NtOpenDirectoryObject( &dir, DIRECTORY_CREATE_OBJECT|DIRECTORY_TRAVERSE, &attr );
@@ -100,7 +113,11 @@ static void get_create_object_attributes( OBJECT_ATTRIBUTES *attr, UNICODE_STRIN
{
RtlInitUnicodeString( nameW, name );
attr->ObjectName = nameW;
#ifdef __REACTOS__
BaseGetNamedObjectDirectory_Base( &attr->RootDirectory );
#else
BaseGetNamedObjectDirectory( &attr->RootDirectory );
#endif
}
}
@@ -115,12 +132,17 @@ static BOOL get_open_object_attributes( OBJECT_ATTRIBUTES *attr, UNICODE_STRING
return FALSE;
}
RtlInitUnicodeString( nameW, name );
#ifdef __REACTOS__
BaseGetNamedObjectDirectory_Base( &dir );
#else
BaseGetNamedObjectDirectory( &dir );
#endif
InitializeObjectAttributes( attr, nameW, inherit ? OBJ_INHERIT : 0, dir, NULL );
return TRUE;
}
#ifndef __REACTOS__
/***********************************************************************
* Time functions
***********************************************************************/
@@ -175,7 +197,6 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetSystemTimes( FILETIME *idle, FILETIME *kernel,
return TRUE;
}
/******************************************************************************
* GetTickCount (kernelbase.@)
*/
@@ -203,7 +224,6 @@ ULONGLONG WINAPI DECLSPEC_HOTPATCH GetTickCount64(void)
return (ULONGLONG)high << 32 | low;
}
/******************************************************************************
* QueryInterruptTime (kernelbase.@)
*/
@@ -232,7 +252,6 @@ void WINAPI DECLSPEC_HOTPATCH QueryInterruptTimePrecise( ULONGLONG *time )
QueryInterruptTime( time );
}
/***********************************************************************
* QueryUnbiasedInterruptTimePrecise (kernelbase.@)
*/
@@ -243,7 +262,7 @@ void WINAPI DECLSPEC_HOTPATCH QueryUnbiasedInterruptTimePrecise( ULONGLONG *time
RtlQueryUnbiasedInterruptTime( time );
}
#endif
/***********************************************************************
* QueryIdleProcessorCycleTime (kernelbase.@)
@@ -263,10 +282,17 @@ BOOL WINAPI QueryIdleProcessorCycleTime( ULONG *size, ULONG64 *times )
*/
BOOL WINAPI QueryIdleProcessorCycleTimeEx( USHORT group_id, ULONG *size, ULONG64 *times )
{
#ifndef __REACTOS__
ULONG ret_size;
NTSTATUS status = NtQuerySystemInformationEx( SystemProcessorIdleCycleTimeInformation, &group_id, sizeof(group_id),
times, *size, &ret_size );
if (!*size || !status) *size = ret_size;
#else
ULONG ret_size;
NTSTATUS status = NtQuerySystemInformation( SystemProcessorIdleCycleTimeInformation,
times, *size, &ret_size );
if (!*size || !status) *size = ret_size;
#endif
return TRUE;
}
@@ -276,6 +302,7 @@ BOOL WINAPI QueryIdleProcessorCycleTimeEx( USHORT group_id, ULONG *size, ULONG64
***********************************************************************/
#ifndef __REACTOS__
static HANDLE normalize_std_handle( HANDLE handle )
{
if ((handle == (HANDLE)STD_INPUT_HANDLE) ||
@@ -453,12 +480,15 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitForDebugEvent( DEBUG_EVENT *event, DWORD timeo
}
}
}
#endif
/******************************************************************************
* WaitForDebugEventEx (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH WaitForDebugEventEx( DEBUG_EVENT *event, DWORD timeout )
{
#ifdef __REACTOS__
return WaitForDebugEvent(event,timeout);
#else
NTSTATUS status;
LARGE_INTEGER time;
DBGUI_WAIT_STATE_CHANGE state;
@@ -480,14 +510,20 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitForDebugEventEx( DEBUG_EVENT *event, DWORD tim
return set_ntstatus( status );
}
}
#endif
}
#ifndef __REACTOS__
/***********************************************************************
* WaitOnAddress (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH WaitOnAddress( volatile void *addr, void *cmp, SIZE_T size, DWORD timeout )
{
#ifdef __REACTOS__
//TODO: We don't Implement WaitOnAddress
__debugbreak();
return 0;
#else
LARGE_INTEGER to;
if (timeout != INFINITE)
@@ -496,6 +532,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitOnAddress( volatile void *addr, void *cmp, SIZ
return set_ntstatus( RtlWaitOnAddress( (const void *)addr, cmp, size, &to ));
}
return set_ntstatus( RtlWaitOnAddress( (const void *)addr, cmp, size, NULL ));
#endif
}
@@ -531,7 +568,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW( SECURITY_ATTRIBUTES *sa, BOOL manu
return CreateEventExW( sa, name, flags, EVENT_ALL_ACCESS );
}
#endif
/***********************************************************************
* CreateEventExA (kernelbase.@)
*/
@@ -585,7 +622,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventExW( SECURITY_ATTRIBUTES *sa, LPCWSTR
SetLastError( RtlNtStatusToDosError(status) );
return ret;
}
#ifndef __REACTOS__
/***********************************************************************
* OpenEventA (kernelbase.@)
@@ -671,7 +708,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexW( SECURITY_ATTRIBUTES *sa, BOOL owne
return CreateMutexExW( sa, name, owner ? CREATE_MUTEX_INITIAL_OWNER : 0, MUTEX_ALL_ACCESS );
}
#endif
/***********************************************************************
* CreateMutexExA (kernelbase.@)
*/
@@ -693,7 +730,6 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexExA( SECURITY_ATTRIBUTES *sa, LPCSTR
return CreateMutexExW( sa, NtCurrentTeb()->StaticUnicodeString.Buffer, flags, access );
}
/***********************************************************************
* CreateMutexExW (kernelbase.@)
*/
@@ -715,7 +751,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexExW( SECURITY_ATTRIBUTES *sa, LPCWSTR
return ret;
}
#ifndef __REACTOS__
/***********************************************************************
* OpenMutexW (kernelbase.@)
*/
@@ -820,7 +856,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateWaitableTimerW( SECURITY_ATTRIBUTES *sa, B
return CreateWaitableTimerExW( sa, name, manual ? CREATE_WAITABLE_TIMER_MANUAL_RESET : 0,
TIMER_ALL_ACCESS );
}
#endif
/***********************************************************************
* CreateWaitableTimerExW (kernelbase.@)
@@ -843,7 +879,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateWaitableTimerExW( SECURITY_ATTRIBUTES *sa,
SetLastError( RtlNtStatusToDosError(status) );
return handle;
}
#ifndef __REACTOS__
/***********************************************************************
* OpenWaitableTimerW (kernelbase.@)
@@ -874,7 +910,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetWaitableTimer( HANDLE handle, const LARGE_INTEG
return set_ntstatus( status ) || status == STATUS_TIMER_RESUME_IGNORED;
}
#endif
/***********************************************************************
* SetWaitableTimerEx (kernelbase.@)
*/
@@ -889,7 +925,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetWaitableTimerEx( HANDLE handle, const LARGE_INT
return SetWaitableTimer( handle, when, period, callback, arg, FALSE );
}
#ifndef __REACTOS__
/***********************************************************************
* CancelWaitableTimer (kernelbase.@)
*/
@@ -936,7 +972,6 @@ BOOL WINAPI DECLSPEC_HOTPATCH ChangeTimerQueueTimer( HANDLE queue, HANDLE timer,
return set_ntstatus( RtlUpdateTimer( queue, timer, when, period ));
}
/***********************************************************************
* DeleteTimerQueueEx (kernelbase.@)
*/
@@ -945,7 +980,6 @@ BOOL WINAPI DECLSPEC_HOTPATCH DeleteTimerQueueEx( HANDLE queue, HANDLE event )
return set_ntstatus( RtlDeleteTimerQueueEx( queue, event ));
}
/***********************************************************************
* DeleteTimerQueueTimer (kernelbase.@)
*/
@@ -953,13 +987,13 @@ BOOL WINAPI DECLSPEC_HOTPATCH DeleteTimerQueueTimer( HANDLE queue, HANDLE timer,
{
return set_ntstatus( RtlDeleteTimer( queue, timer, event ));
}
#endif
/***********************************************************************
* Critical sections
***********************************************************************/
#ifndef __REACTOS__
/***********************************************************************
* InitializeCriticalSectionAndSpinCount (kernelbase.@)
*/
@@ -978,12 +1012,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH InitializeCriticalSectionEx( CRITICAL_SECTION *cri
if (ret) RtlRaiseStatus( ret );
return !ret;
}
#endif
/***********************************************************************
* File mappings
***********************************************************************/
#ifndef __REACTOS__
/***********************************************************************
* CreateFileMappingW (kernelbase.@)
*/
@@ -1050,6 +1084,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileMappingW( HANDLE file, LPSECURITY_ATTR
return ret;
}
#endif
/***********************************************************************
* CreateFileMappingFromApp (kernelbase.@)
@@ -1059,7 +1094,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileMappingFromApp( HANDLE file, LPSECURIT
{
return CreateFileMappingW( file, sa, protect, size << 32, size, name );
}
#ifndef __REACTOS__
/***********************************************************************
* OpenFileMappingW (kernelbase.@)
*/
@@ -1083,7 +1118,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH OpenFileMappingW( DWORD access, BOOL inherit, LP
return ret;
}
#endif
/***********************************************************************
* OpenFileMappingFromApp (kernelbase.@)
*/
@@ -1106,7 +1141,7 @@ HANDLE WINAPI DECLSPEC_HOTPATCH OpenFileMappingFromApp( ULONG access, BOOL inher
* Condition variables
***********************************************************************/
#ifndef __REACTOS__
/***********************************************************************
* SleepConditionVariableCS (kernelbase.@)
*/
@@ -1202,7 +1237,9 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetQueuedCompletionStatus( HANDLE port, LPDWORD co
else SetLastError( RtlNtStatusToDosError(status) );
return FALSE;
}
#endif
#ifndef __REACTOS__
//TODO:
/******************************************************************************
* GetQueuedCompletionStatusEx (kernelbase.@)
*/
@@ -1410,8 +1447,13 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreatePipe( HANDLE *read_pipe, HANDLE *write_pipe,
/* generate a unique pipe name (system wide) */
for (;;)
{
#ifdef __REACTOS__
swprintf( name, L"\\??\\pipe\\Win32.Pipes.%08lu.%08u",
GetCurrentProcessId(), ++index );
#else
swprintf( name, ARRAY_SIZE(name), L"\\??\\pipe\\Win32.Pipes.%08lu.%08u",
GetCurrentProcessId(), ++index );
#endif
RtlInitUnicodeString( &nt_name, name );
if (!NtCreateNamedPipeFile( read_pipe, GENERIC_READ | FILE_WRITE_ATTRIBUTES | SYNCHRONIZE,
&attr, &iosb, FILE_SHARE_WRITE, FILE_OPEN_IF,
@@ -1674,7 +1716,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitNamedPipeW( LPCWSTR name, DWORD timeout )
return set_ntstatus( status );
}
#ifndef __REACTOS__
/***********************************************************************
* Interlocked functions
@@ -1763,3 +1805,5 @@ __ASM_STDCALL_FUNC(InterlockedDecrement, 4,
"ret $4")
#endif /* __i386__ */
#endif
#endif

View File

@@ -2,3 +2,135 @@
#define CRITICAL_SECTION RTL_CRITICAL_SECTION
#define CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG
#define IMAGE_FILE_MACHINE_TARGET_HOST 0x0001
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
//def ndk
NTSYSAPI
BOOLEAN
NTAPI
RtlGetProductInfo(
_In_ ULONG OSMajorVersion,
_In_ ULONG OSMinorVersion,
_In_ ULONG SpMajorVersion,
_In_ ULONG SpMinorVersion,
_Out_ PULONG ReturnedProductType);
NTSYSAPI NTSTATUS WINAPI RtlQueryActivationContextApplicationSettings(DWORD,HANDLE,const WCHAR*,const WCHAR*,WCHAR*,SIZE_T,SIZE_T*);
NTSYSAPI NTSTATUS WINAPI LdrSetDefaultDllDirectories(ULONG);
NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*);
#ifndef NT_SUCCESS
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
#endif
#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
//kernel32
BOOL WINAPI DECLSPEC_HOTPATCH GetThreadGroupAffinity( HANDLE thread, GROUP_AFFINITY *affinity );
typedef struct _THREAD_NAME_INFORMATION
{
UNICODE_STRING ThreadName;
} THREAD_NAME_INFORMATION, *PTHREAD_NAME_INFORMATION;
HANDLE WINAPI DECLSPEC_HOTPATCH CreateRemoteThreadEx( HANDLE process, SECURITY_ATTRIBUTES *sa,
SIZE_T stack, LPTHREAD_START_ROUTINE start,
LPVOID param, DWORD flags,
LPPROC_THREAD_ATTRIBUTE_LIST attributes, DWORD *id );
BOOL WINAPI GetVolumeInformationByHandleW( HANDLE handle, WCHAR *label, DWORD label_len,
DWORD *serial, DWORD *filename_len, DWORD *flags,
WCHAR *fsname, DWORD fsname_len );
HRESULT WINAPI PathMatchSpecExW(const WCHAR *path, const WCHAR *mask, DWORD flags);
INT WINAPI DECLSPEC_HOTPATCH CompareStringOrdinal( const WCHAR *str1, INT len1,
const WCHAR *str2, INT len2, BOOL ignore_case );
#define URL_UNESCAPE_AS_UTF8 URL_ESCAPE_AS_UTF8
//shlwapi
HRESULT WINAPI GetAcceptLanguagesW(WCHAR *langbuf, DWORD *buflen);
BOOL WINAPI GetWindowsAccountDomainSid( PSID sid, PSID domain_sid, DWORD *size );
//rtl types
//rtl
NTSTATUS
NTAPI
RtlNewSecurityObjectEx(IN PSECURITY_DESCRIPTOR ParentDescriptor,
IN PSECURITY_DESCRIPTOR CreatorDescriptor,
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
IN LPGUID ObjectType,
IN BOOLEAN IsDirectoryObject,
IN ULONG AutoInheritFlags,
IN HANDLE Token,
IN PGENERIC_MAPPING GenericMapping);
NTSTATUS
NTAPI
RtlNewSecurityObjectWithMultipleInheritance(IN PSECURITY_DESCRIPTOR ParentDescriptor,
IN PSECURITY_DESCRIPTOR CreatorDescriptor,
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
IN LPGUID *ObjectTypes,
IN ULONG GuidCount,
IN BOOLEAN IsDirectoryObject,
IN ULONG AutoInheritFlags,
IN HANDLE Token,
IN PGENERIC_MAPPING GenericMapping);
NTSTATUS
NTAPI
RtlConvertToAutoInheritSecurityObject(IN PSECURITY_DESCRIPTOR ParentDescriptor,
IN PSECURITY_DESCRIPTOR CreatorDescriptor,
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
IN LPGUID ObjectType,
IN BOOLEAN IsDirectoryObject,
IN PGENERIC_MAPPING GenericMapping);
BOOL WINAPI DECLSPEC_HOTPATCH QueryFullProcessImageNameW( HANDLE process, DWORD flags,
WCHAR *name, DWORD *size );
typedef void *PUMS_CONTEXT;
typedef void *PUMS_COMPLETION_LIST;
typedef PVOID PUMS_SCHEDULER_ENTRY_POINT;
typedef struct _UMS_SCHEDULER_STARTUP_INFO
{
ULONG UmsVersion;
PUMS_COMPLETION_LIST CompletionList;
PUMS_SCHEDULER_ENTRY_POINT SchedulerProc;
PVOID SchedulerParam;
} UMS_SCHEDULER_STARTUP_INFO, *PUMS_SCHEDULER_STARTUP_INFO;
typedef enum _RTL_UMS_SCHEDULER_REASON UMS_SCHEDULER_REASON;
typedef enum _RTL_UMS_THREAD_INFO_CLASS UMS_THREAD_INFO_CLASS, *PUMS_THREAD_INFO_CLASS;
#ifndef _PSAPI_H
typedef struct _PSAPI_WS_WATCH_INFORMATION {
LPVOID FaultingPc;
LPVOID FaultingVa;
} PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;
#endif
typedef struct _PSAPI_WS_WATCH_INFORMATION_EX {
PSAPI_WS_WATCH_INFORMATION BasicInfo;
ULONG_PTR FaultingThreadId;
ULONG_PTR Flags;
} PSAPI_WS_WATCH_INFORMATION_EX, *PPSAPI_WS_WATCH_INFORMATION_EX;
#define PROCESSOR_ARCHITECTURE_INTEL 0
#define PROCESSOR_ARCHITECTURE_MIPS 1
#define PROCESSOR_ARCHITECTURE_ALPHA 2
#define PROCESSOR_ARCHITECTURE_PPC 3
#define PROCESSOR_ARCHITECTURE_SHX 4
#define PROCESSOR_ARCHITECTURE_ARM 5
#define PROCESSOR_ARCHITECTURE_IA64 6
#define PROCESSOR_ARCHITECTURE_ALPHA64 7
#define PROCESSOR_ARCHITECTURE_MSIL 8
#define PROCESSOR_ARCHITECTURE_AMD64 9
#define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10
#define PROCESSOR_ARCHITECTURE_NEUTRAL 11
#define PROCESSOR_ARCHITECTURE_ARM64 12
#define PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 13
#define PROCESSOR_ARCHITECTURE_IA32_ON_ARM64 14

View File

@@ -53,7 +53,7 @@ static DWORD rtlmode_to_win32mode( DWORD rtlmode )
return win32mode;
}
#ifndef __REACTOS__
/***************************************************************************
* CreateRemoteThread (kernelbase.@)
*/
@@ -134,7 +134,6 @@ void WINAPI DECLSPEC_HOTPATCH GetCurrentThreadStackLimits( ULONG_PTR *low, ULONG
*high = (ULONG_PTR)NtCurrentTeb()->Tib.StackBase;
}
/***********************************************************************
* GetCurrentThread (kernelbase.@)
*/
@@ -204,7 +203,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetThreadErrorMode(void)
{
return rtlmode_to_win32mode( RtlGetThreadErrorMode() );
}
#endif
/***********************************************************************
* GetThreadGroupAffinity (kernelbase.@)
@@ -219,7 +218,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetThreadGroupAffinity( HANDLE thread, GROUP_AFFIN
return set_ntstatus( NtQueryInformationThread( thread, ThreadGroupInformation,
affinity, sizeof(*affinity), NULL ));
}
#ifndef __REACTOS__
/***********************************************************************
* GetThreadIOPendingFlag (kernelbase.@)
@@ -242,17 +241,9 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetThreadId( HANDLE thread )
return 0;
return HandleToULong( tbi.ClientId.UniqueThread );
}
#endif
/***********************************************************************
* GetThreadIdealProcessorEx (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH GetThreadIdealProcessorEx( HANDLE thread, PROCESSOR_NUMBER *ideal )
{
return set_ntstatus( NtQueryInformationThread( thread, ThreadIdealProcessorEx, ideal, sizeof(*ideal), NULL));
}
#ifndef __REACTOS__
/***********************************************************************
* GetThreadLocale (kernelbase.@)
*/
@@ -263,7 +254,6 @@ LCID WINAPI /* DECLSPEC_HOTPATCH */ GetThreadLocale(void)
return ret;
}
/**********************************************************************
* GetThreadPriority (kernelbase.@)
*/
@@ -320,7 +310,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetThreadTimes( HANDLE thread, LPFILETIME creation
}
return TRUE;
}
#endif
/***********************************************************************
* GetThreadUILanguage (kernelbase.@)
@@ -334,7 +324,7 @@ LANGID WINAPI DECLSPEC_HOTPATCH GetThreadUILanguage(void)
return lang;
}
#ifndef __REACTOS__
/***********************************************************************
* OpenThread (kernelbase.@)
*/
@@ -407,6 +397,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetThreadContext( HANDLE thread, const CONTEXT *co
return set_ntstatus( NtSetContextThread( thread, context ));
}
#endif
/***********************************************************************
* SetThreadDescription (kernelbase.@)
@@ -501,8 +492,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetThreadGroupAffinity( HANDLE thread, const GROUP
if (old && !GetThreadGroupAffinity( thread, old )) return FALSE;
return set_ntstatus( NtSetInformationThread( thread, ThreadGroupInformation, new, sizeof(*new) ));
}
#ifndef __REACTOS__
/**********************************************************************
* SetThreadIdealProcessor (kernelbase.@)
*/
@@ -516,8 +506,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH SetThreadIdealProcessor( HANDLE thread, DWORD pro
SetLastError( RtlNtStatusToDosError( status ));
return ~0u;
}
#endif
/***********************************************************************
* SetThreadIdealProcessorEx (kernelbase.@)
*/
@@ -529,6 +518,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetThreadIdealProcessorEx( HANDLE thread, PROCESSO
return FALSE;
}
#ifndef __REACTOS__
/**********************************************************************
* SetThreadLocale (kernelbase.@)
@@ -567,7 +557,6 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetThreadPriorityBoost( HANDLE thread, BOOL disabl
return set_ntstatus( NtSetInformationThread( thread, ThreadPriorityBoost, &disable, sizeof(disable) ));
}
/**********************************************************************
* SetThreadStackGuarantee (kernelbase.@)
*/
@@ -589,7 +578,6 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetThreadStackGuarantee( ULONG *size )
return TRUE;
}
/**********************************************************************
* SetThreadUILanguage (kernelbase.@)
*/
@@ -600,6 +588,7 @@ LANGID WINAPI DECLSPEC_HOTPATCH SetThreadUILanguage( LANGID langid )
if (!langid) langid = GetThreadUILanguage();
return langid;
}
#endif
/**********************************************************************
@@ -620,7 +609,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetThreadInformation( HANDLE thread, THREAD_INFORM
}
}
#ifndef __REACTOS__
/**********************************************************************
* SuspendThread (kernelbase.@)
*/
@@ -761,6 +750,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH TlsSetValue( DWORD index, LPVOID value )
return TRUE;
}
#endif
/***********************************************************************
* Wow64GetThreadContext (kernelbase.@)
@@ -795,7 +785,7 @@ BOOL WINAPI Wow64SetThreadContext( HANDLE handle, const WOW64_CONTEXT *context)
/***********************************************************************
* Fibers
***********************************************************************/
#ifndef __REACTOS__
struct fiber_actctx
{
@@ -1103,7 +1093,6 @@ LPVOID WINAPI /* DECLSPEC_HOTPATCH */ ConvertThreadToFiber( LPVOID param )
return ConvertThreadToFiberEx( param, 0 );
}
/***********************************************************************
* ConvertThreadToFiberEx (kernelbase.@)
*/
@@ -1233,7 +1222,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
{
return set_ntstatus( RtlFlsSetValue( index, data ));
}
#endif
/***********************************************************************
* Thread pool
@@ -1341,7 +1330,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH TrySubmitThreadpoolCallback( PTP_SIMPLE_CALLBACK c
return set_ntstatus( TpSimpleTryPost( callback, userdata, environment ));
}
#ifndef __REACTOS__
/***********************************************************************
* QueueUserWorkItem (kernelbase.@)
*/
@@ -1349,6 +1338,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH QueueUserWorkItem( LPTHREAD_START_ROUTINE func, PV
{
return set_ntstatus( RtlQueueWorkItem( func, context, flags ));
}
#endif
/***********************************************************************
* SetThreadpoolStackInformation (kernelbase.@)

View File

@@ -68,6 +68,7 @@ struct version_info
DWORD build;
};
#ifndef __REACTOS__
/***********************************************************************
* Version Info Structure
*/
@@ -1541,7 +1542,7 @@ BOOL WINAPI GetVersionExW( OSVERSIONINFOW *info )
}
return TRUE;
}
#endif
/***********************************************************************
* GetCurrentPackageFamilyName (kernelbase.@)

View File

@@ -33,10 +33,14 @@
#include "winnls.h"
#include "winternl.h"
#include "winioctl.h"
#ifdef __REACTOS__
#include <mountmgr.h>
#else
#include "ntddcdrm.h"
#define WINE_MOUNTMGR_EXTENSIONS
#include "ddk/mountmgr.h"
#include "ddk/wdm.h"
#endif
#include "kernelbase.h"
#include "wine/debug.h"
@@ -119,6 +123,7 @@ static BOOL open_device_root( LPCWSTR root, HANDLE *handle )
return set_ntstatus( status );
}
#ifndef __REACTOS__
/* query the type of a drive from the mount manager */
static DWORD get_mountmgr_drive_type( LPCWSTR root )
{
@@ -147,7 +152,7 @@ static DWORD get_mountmgr_drive_type( LPCWSTR root )
CloseHandle( mgr );
return data.type;
}
#endif
/***********************************************************************
* GetVolumeInformationW (kernelbase.@)
@@ -568,7 +573,7 @@ UINT WINAPI DECLSPEC_HOTPATCH GetLogicalDriveStringsW( UINT len, LPWSTR buffer )
return count * 4;
}
#ifndef __REACTOS__
/***********************************************************************
* GetDriveTypeW (kernelbase.@)
*/
@@ -629,7 +634,7 @@ UINT WINAPI DECLSPEC_HOTPATCH GetDriveTypeA( LPCSTR root )
if (root && !(rootW = file_name_AtoW( root, FALSE ))) return DRIVE_NO_ROOT_DIR;
return GetDriveTypeW( rootW );
}
#endif
/***********************************************************************
* GetDiskFreeSpaceExW (kernelbase.@)

View File

@@ -25,8 +25,6 @@ list(APPEND SOURCE
misc/shutdown.c
misc/sysfunc.c
misc/unicode.c
reg/hkcr.c
reg/reg.c
sec/ac.c
sec/audit.c
sec/lsa.c
@@ -54,6 +52,15 @@ list(APPEND PCH_SKIP_SOURCE
${CMAKE_CURRENT_BINARY_DIR}/svcctl_c.c
${CMAKE_CURRENT_BINARY_DIR}/winreg_c.c)
# This static library is for kernelbase and vista APIs in kernel32
add_library(win32_registry
${PCH_SKIP_SOURCE}
reg/hkcr.c
reg/reg.c
)
target_link_libraries(win32_registry ${PSEH_LIB})
target_compile_definitions(win32_registry PRIVATE _KERNEL32_ UNICODE _UNICODE)
add_library(advapi32 MODULE
${SOURCE}
${PCH_SKIP_SOURCE}
@@ -61,7 +68,7 @@ add_library(advapi32 MODULE
${CMAKE_CURRENT_BINARY_DIR}/advapi32.def)
set_module_type(advapi32 win32dll UNICODE ENTRYPOINT DllMain 12)
target_link_libraries(advapi32 cryptlib wine ${PSEH_LIB})
target_link_libraries(advapi32 win32_registry cryptlib wine ${PSEH_LIB})
if(DLL_EXPORT_VERSION GREATER_EQUAL 0x600)
target_link_libraries(advapi32 etwtrace)
endif()

View File

@@ -76,9 +76,11 @@ list(APPEND SOURCE
wine/comm.c
wine/lzexpand.c
wine/muldiv.c
wine/process.c
wine/profile.c
wine/res.c
wine/timezone.c
wine/transact.c
winnls/string/casemap.c
winnls/string/collation.c
winnls/string/digitmap.c
@@ -130,8 +132,8 @@ set_module_type(kernel32 win32dll ENTRYPOINT DllMain 12)
set_subsystem(kernel32 console)
################# END HACK #################
target_link_libraries(kernel32 kernel32_vista_static kernel32_shared kernelbase_static wine chkstk ${PSEH_LIB})
add_importlibs(kernel32 ntdll)
target_link_libraries(kernel32 win32_registry kernel32_vista_static kernel32_shared kernelbase_static wine chkstk ${PSEH_LIB})
add_importlibs(kernel32 ntdll_vista ntdll)
add_pch(kernel32 k32.h SOURCE)
add_dependencies(kernel32 psdk errcodes asm)
add_cd_file(TARGET kernel32 DESTINATION reactos/system32 FOR all)

View File

@@ -1860,5 +1860,26 @@ LocalUnlock(HLOCAL hMem)
RtlUnlockHeap(BaseHeap);
return RetVal;
}
#undef HeapAlloc
LPVOID
WINAPI
HeapAlloc(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags,
_In_ SIZE_T dwBytes)
{
return RtlAllocateHeap(hHeap, dwFlags, dwBytes);
}
#undef HeapFree
BOOL
WINAPI
HeapFree(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags,
_In_ _Frees_ptr_opt_ LPVOID lpMem)
{
return RtlFreeHeap(hHeap, dwFlags, lpMem);
}
/* EOF */

View File

@@ -13,6 +13,7 @@
#include <k32.h>
#include <ndk/pofuncs.h>
#include <ndk/potypes.h>
#define NDEBUG
#include <debug.h>
@@ -230,3 +231,40 @@ SetThreadExecutionState(EXECUTION_STATE esFlags)
return esFlags;
}
typedef enum _POWER_REQUEST_TYPE {
PowerRequestDisplayRequired,
PowerRequestSystemRequired,
PowerRequestAwayModeRequired
} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE;
/***********************************************************************
* PowerCreateRequest (KERNEL32.@)
*/
HANDLE WINAPI PowerCreateRequest(REASON_CONTEXT *context)
{
DPRINT1("(%p): stub\n", context);
return CreateEventW(NULL, TRUE, FALSE, NULL);
}
/***********************************************************************
* PowerSetRequest (KERNEL32.@)
*/
BOOL WINAPI PowerSetRequest(HANDLE request, POWER_REQUEST_TYPE type)
{
DPRINT1("(%p, %u): stub\n", request, type);
return TRUE;
}
/***********************************************************************
* PowerClearRequest (KERNEL32.@)
*/
BOOL WINAPI PowerClearRequest(HANDLE request, POWER_REQUEST_TYPE type)
{
DPRINT1("(%p, %u): stub\n", request, type);
return TRUE;
}

View File

@@ -621,15 +621,3 @@ SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize,
STUB;
return FALSE;
}
/*
* @unimplemented
*/
LONG
WINAPI
GetCurrentPackageId(UINT32 *BufferLength,
BYTE *Buffer)
{
STUB;
return APPMODEL_ERROR_NO_PACKAGE;
}

View File

@@ -11,7 +11,7 @@
#define comm 205
#define profile 206
#define nls 207
#define kernel32process 208
#if DBG
#define DEBUG_CHANNEL(ch) static ULONG gDebugChannel = ch;

View File

@@ -3,8 +3,10 @@
@ stdcall ActivateActCtx(ptr ptr)
@ stdcall AddAtomA(str)
@ stdcall AddAtomW(wstr)
@ stdcall AddConsoleAliasA(str str str) ;check
@ stdcall AddConsoleAliasW(wstr wstr wstr) ;check
@ stdcall AddConsoleAliasA(str str str)
@ stdcall AddConsoleAliasW(wstr wstr wstr)
@ stdcall -version=0x600+ -stub AddDllDirectory(wstr)
@ stdcall -stub -version=0x601+ AddIntegrityLabelToBoundaryDescriptor(ptr ptr)
@ stdcall AddLocalAlternateComputerNameA(str ptr)
@ stdcall AddLocalAlternateComputerNameW(wstr ptr)
@ stdcall AddRefActCtx(ptr)
@@ -15,9 +17,11 @@
@ stdcall -stub -version=0x600+ AdjustCalendarDate(ptr long long)
@ stdcall AllocConsole()
@ stdcall AllocateUserPhysicalPages(long ptr ptr)
@ stdcall -stub -version=0x600+ AllocateUserPhysicalPagesNuma(ptr ptr ptr long)
@ stdcall -version=0x600+ -stub AllocateUserPhysicalPagesNuma(ptr ptr ptr long)
@ stdcall -version=0x600+ ApplicationRecoveryFinished(long)
@ stdcall -version=0x600+ ApplicationRecoveryInProgress(ptr)
@ stdcall -version=0xA00+ AppPolicyGetMediaFoundationCodecLoading(ptr ptr)
@ stdcall -version=0xA00+ AppPolicyGetWindowingModel(ptr ptr)
@ stdcall AreFileApisANSI()
@ stdcall AssignProcessToJobObject(ptr ptr)
@ stdcall AttachConsole(long)
@@ -25,10 +29,14 @@
@ stdcall BackupSeek(ptr long long ptr ptr ptr)
@ stdcall BackupWrite(ptr ptr long ptr long long ptr)
@ stdcall BaseCheckAppcompatCache(wstr ptr wstr ptr)
# @ stub BaseCheckAppcompatCacheEx
@ stdcall BaseCheckRunApp(long ptr long long long long long long long long)
@ stdcall BaseCleanupAppcompatCacheSupport(ptr)
# @ stub -version=0x601+ BaseDllReadWriteIniFile
@ stdcall BaseDumpAppcompatCache()
@ stdcall BaseFlushAppcompatCache()
# @ stub -version=0x601+ BaseFormatObjectAttributes
# @ stub -version=0x601+ BaseFormatTimeOut
@ stub -version=0x600+ BaseGenerateAppCompatData
@ stdcall BaseInitAppcompatCacheSupport()
@ stdcall BaseIsAppcompatInfrastructureDisabled() IsShimInfrastructureDisabled
@@ -39,9 +47,15 @@
@ stub -version=0x600+ BaseThreadInitThunk
;@ stdcall -version=0x502 -arch=x86_64 BaseThreadStart()
@ stdcall BaseUpdateAppcompatCache(long long long)
# @ stub -version=0x601+ Basep8BitStringToDynamicUnicodeString
# @ stub -version=0x601+ BasepAllocateActivationContextActivationBlock
# @ stub -version=0x601+ BasepAnsiStringToDynamicUnicodeString
# @ stub -version=0x601+ BasepCheckAppCompat
@ stdcall BasepCheckBadapp(long ptr long long long long long long long)
@ stdcall BasepCheckWinSaferRestrictions(long long long long long long)
# @ stub -version=0x601+ BasepFreeActivationContextActivationBlock
@ stdcall BasepFreeAppCompatData(ptr ptr)
# @ stub -version=0x601+ BasepMapModuleHandle
@ stdcall Beep(long long)
@ stdcall BeginUpdateResourceA(str long)
@ stdcall BeginUpdateResourceW(wstr long)
@@ -52,12 +66,12 @@
@ stdcall BuildCommDCBW(wstr ptr)
@ stdcall CallNamedPipeA(str ptr long ptr long ptr long)
@ stdcall CallNamedPipeW(wstr ptr long ptr long ptr long)
@ stdcall -stub -version=0x600+ CallbackMayRunLong(ptr)
@ stdcall -version=0x600+ CallbackMayRunLong(ptr)
@ stdcall CancelDeviceWakeupRequest(long)
@ stdcall CancelIo(long)
@ stdcall -stub -version=0x600+ CancelIoEx(ptr ptr)
@ stdcall -version=0x600+ CancelIoEx(ptr ptr)
@ stdcall -stub -version=0x600+ CancelSynchronousIo(ptr)
@ stdcall -stub -version=0x600+ CancelThreadpoolIo(ptr)
@ stdcall -version=0x600+ CancelThreadpoolIo(ptr) NTDLL.TpCancelAsyncIoOperation
@ stdcall CancelTimerQueueTimer(long long)
@ stdcall CancelWaitableTimer(long)
@ stdcall ChangeTimerQueueTimer(ptr ptr long long)
@@ -73,13 +87,14 @@
@ stdcall CloseHandle(long)
@ stdcall -stub -version=0x600+ ClosePrivateNamespace(ptr long)
@ stdcall CloseProfileUserMapping()
@ stdcall -stub -version=0x600+ CloseThreadpool(ptr)
@ stdcall -stub -version=0x600+ CloseThreadpoolCleanupGroup(ptr)
@ stdcall -stub -version=0x600+ CloseThreadpoolCleanupGroupMembers(ptr long ptr)
@ stdcall -stub -version=0x600+ CloseThreadpoolIo(ptr)
@ stdcall -stub -version=0x600+ CloseThreadpoolTimer(ptr)
@ stdcall -stub -version=0x600+ CloseThreadpoolWait(ptr)
@ stdcall -stub -version=0x600+ CloseThreadpoolWork(ptr)
@ stdcall -stub -version=0xA00+ ClosePseudoConsole(ptr)
@ stdcall -version=0x600+ CloseThreadpool(ptr) NTDLL.TpReleasePool
@ stdcall -version=0x600+ CloseThreadpoolCleanupGroup(ptr) NTDLL.TpReleaseCleanupGroup
@ stdcall -version=0x600+ CloseThreadpoolCleanupGroupMembers(ptr long ptr) NTDLL.TpReleaseCleanupGroupMembers
@ stdcall -version=0x600+ CloseThreadpoolIo(ptr) NTDLL.TpReleaseIoCompletion
@ stdcall -version=0x600+ CloseThreadpoolTimer(ptr) NTDLL.TpReleaseTimer
@ stdcall -version=0x600+ CloseThreadpoolWait(ptr) NTDLL.TpReleaseWait
@ stdcall -version=0x600+ CloseThreadpoolWork(ptr) NTDLL.TpReleaseWork
@ stdcall CmdBatNotification(long)
@ stdcall CommConfigDialogA(str long ptr)
@ stdcall CommConfigDialogW(wstr long ptr)
@@ -100,6 +115,8 @@
@ stdcall -stub -version=0x600+ ConvertSystemTimeToCalDateTime(ptr long ptr)
@ stdcall ConvertThreadToFiber(ptr)
@ stdcall ConvertThreadToFiberEx(ptr long)
@ stdcall -version=0x601+ -stub CopyContext(ptr long ptr)
@ stdcall -version=0x602+ CopyFile2(wstr wstr ptr)
@ stdcall CopyFileA(str str long)
@ stdcall CopyFileExA(str str ptr ptr ptr long)
@ stdcall CopyFileExW(wstr wstr ptr ptr ptr long)
@@ -110,31 +127,33 @@
@ stdcall CreateActCtxA(ptr)
@ stdcall CreateActCtxW(ptr)
@ stdcall -stub -version=0x600+ CreateBoundaryDescriptorA(str long)
@ stdcall -stub -version=0x600+ CreateBoundaryDescriptorW(wstr long)
@ stdcall -version=0x600+ CreateBoundaryDescriptorW(wstr long)
@ stdcall CreateConsoleScreenBuffer(long long ptr long ptr)
@ stdcall CreateDirectoryA(str ptr)
@ stdcall CreateDirectoryExA(str str ptr)
@ stdcall CreateDirectoryExW(wstr wstr ptr)
@ stdcall -stub -version=0x600+ CreateDirectoryTransactedA(str str ptr ptr)
@ stdcall -stub -version=0x600+ CreateDirectoryTransactedW(wstr wstr ptr ptr)
@ stdcall -version=0x600+ CreateDirectoryTransactedA(str str ptr ptr)
@ stdcall -version=0x600+ CreateDirectoryTransactedW(wstr wstr ptr ptr)
@ stdcall CreateDirectoryW(wstr ptr)
@ stdcall CreateEventA(ptr long long str)
@ stdcall -stub -version=0x600+ CreateEventExA(ptr str long long)
@ stdcall -stub -version=0x600+ CreateEventExW(ptr wstr long long)
@ stdcall -version=0x600+ CreateEventExA(ptr str long long)
@ stdcall -version=0x600+ CreateEventExW(ptr wstr long long)
@ stdcall CreateEventW(ptr long long wstr)
@ stdcall CreateFiber(long ptr ptr)
@ stdcall CreateFiberEx(long long long ptr ptr)
@ stdcall -version=0x602+ CreateFile2(wstr long long long ptr)
@ stdcall CreateFileA(str long long ptr long long long)
@ stdcall CreateFileMappingA(long ptr long long long str)
@ stdcall -stub -version=0x600+ CreateFileMappingNumaA(ptr ptr long long long str long)
@ stdcall -version=0x600+ CreateFileMappingFromApp(long ptr long int64 wstr)
@ stdcall -stub -version=0x600+ CreateFileMappingNumaW(ptr ptr long long long wstr long)
@ stdcall CreateFileMappingW(long ptr long long long wstr)
@ stdcall -stub -version=0x600+ CreateFileTransactedA(str long long ptr long long ptr ptr ptr ptr)
@ stdcall -stub -version=0x600+ CreateFileTransactedW(wstr long long ptr long long ptr ptr ptr ptr)
@ stdcall -version=0x600+ CreateFileTransactedA(str long long ptr long long ptr ptr ptr ptr)
@ stdcall -version=0x600+ CreateFileTransactedW(wstr long long ptr long long ptr ptr ptr ptr)
@ stdcall CreateFileW(wstr long long ptr long long long)
@ stdcall CreateHardLinkA(str str ptr)
@ stdcall -stub -version=0x600+ CreateHardLinkTransactedA(str str ptr ptr)
@ stdcall -stub -version=0x600+ CreateHardLinkTransactedW(wstr wstr ptr ptr)
@ stdcall -version=0x600+ CreateHardLinkTransactedA(str str ptr ptr)
@ stdcall -version=0x600+ CreateHardLinkTransactedW(wstr wstr ptr ptr)
@ stdcall CreateHardLinkW(wstr wstr ptr)
@ stdcall CreateIoCompletionPort(long long long long)
@ stdcall CreateJobObjectA(ptr str)
@@ -144,8 +163,8 @@
@ stdcall CreateMailslotW(ptr long long ptr)
@ stdcall CreateMemoryResourceNotification(long)
@ stdcall CreateMutexA(ptr long str)
@ stdcall -stub -version=0x600+ CreateMutexExA(ptr str long long)
@ stdcall -stub -version=0x600+ CreateMutexExW(ptr wstr long long)
@ stdcall -version=0x600+ CreateMutexExA(ptr str long long)
@ stdcall -version=0x600+ CreateMutexExW(ptr wstr long long)
@ stdcall CreateMutexW(ptr long wstr)
@ stdcall CreateNamedPipeA(str long long long long long long ptr)
@ stdcall CreateNamedPipeW(wstr long long long long long long ptr)
@@ -157,7 +176,9 @@
@ 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 CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr)
@ stdcall -stub -version=0xA00+ CreatePseudoConsole(long long long long ptr)
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr)
@ stdcall -version=0x601+ -stub CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr)
@ stdcall CreateSemaphoreA(ptr long long str)
@ stdcall -version=0x600+ CreateSemaphoreExA(ptr long long str long long)
@ stdcall -version=0x600+ CreateSemaphoreExW(ptr long long wstr long long)
@@ -169,18 +190,20 @@
@ stdcall -version=0x600+ CreateSymbolicLinkW(wstr wstr long)
@ stdcall CreateTapePartition(long long long long)
@ stdcall CreateThread(ptr long ptr long long ptr)
@ stdcall -stub -version=0x600+ CreateThreadpool(ptr)
@ stdcall -stub -version=0x600+ CreateThreadpoolCleanupGroup()
@ stdcall -stub -version=0x600+ CreateThreadpoolIo(ptr ptr ptr ptr)
@ stdcall -stub -version=0x600+ CreateThreadpoolTimer(ptr ptr ptr)
@ stdcall -stub -version=0x600+ CreateThreadpoolWait(ptr ptr ptr)
@ stdcall -stub -version=0x600+ CreateThreadpoolWork(ptr ptr ptr)
@ stdcall -version=0x600+ CreateThreadpool(ptr)
@ stdcall -version=0x600+ CreateThreadpoolCleanupGroup()
@ stdcall -version=0x600+ CreateThreadpoolIo(ptr ptr ptr ptr)
@ stdcall -version=0x600+ CreateThreadpoolTimer(ptr ptr ptr)
@ stdcall -version=0x600+ CreateThreadpoolWait(ptr ptr ptr)
@ stdcall -version=0x600+ CreateThreadpoolWork(ptr ptr ptr)
@ stdcall CreateTimerQueue()
@ stdcall CreateTimerQueueTimer(ptr long ptr ptr long long long)
@ stdcall CreateToolhelp32Snapshot(long long)
@ stdcall -version=0x601+ -arch=win64 CreateUmsCompletionList(ptr)
@ stdcall -version=0x601+ -arch=win64 CreateUmsThreadContext(ptr)
@ stdcall CreateWaitableTimerA(ptr long str)
@ stub -version=0x600+ CreateWaitableTimerExA
@ stub -version=0x600+ CreateWaitableTimerExW
@ stdcall -version=0x600+ -stub CreateWaitableTimerExA(ptr str long long)
@ stdcall -version=0x600+ CreateWaitableTimerExW(ptr wstr long long)
@ stdcall CreateWaitableTimerW(ptr long wstr)
;@ stdcall -arch=x86_64 CtrlRoutine()
@ stdcall DeactivateActCtx(long ptr)
@@ -199,18 +222,23 @@
@ stdcall DeleteCriticalSection(ptr) ntdll.RtlDeleteCriticalSection
@ stdcall DeleteFiber(ptr)
@ stdcall DeleteFileA(str)
@ stub -version=0x600+ DeleteFileTransactedA
@ stub -version=0x600+ DeleteFileTransactedW
@ stdcall -version=0x600+ DeleteFileTransactedA(str ptr)
@ stdcall -version=0x600+ DeleteFileTransactedW(wstr ptr)
@ stdcall DeleteFileW(wstr)
@ stdcall -stub -version=0x600+ DeleteProcThreadAttributeList(ptr)
@ stdcall -version=0x600+ DeleteProcThreadAttributeList(ptr)
# @ stub -version=0x601+ DisableThreadProfiling
@ stdcall -stub -version=0xA00+ DiscardVirtualMemory(ptr long)
@ stdcall DeleteTimerQueue(long)
@ stdcall DeleteTimerQueueEx(long long)
@ stdcall DeleteTimerQueueTimer(long long long)
@ stdcall -version=0x601+ -arch=win64 DeleteUmsCompletionList(ptr)
@ stdcall -version=0x601+ -arch=win64 DeleteUmsThreadContext(ptr)
@ stdcall DeleteVolumeMountPointA(str) ;check
@ stdcall DeleteVolumeMountPointW(wstr) ;check
@ stdcall -version=0x601+ -arch=win64 DequeueUmsCompletionListItems(ptr long ptr)
@ stdcall DeviceIoControl(long long ptr long ptr long ptr ptr)
@ stdcall DisableThreadLibraryCalls(ptr)
@ stub -version=0x600+ DisassociateCurrentThreadFromCallback
@ stdcall -version=0x600+ DisassociateCurrentThreadFromCallback(ptr) NTDLL.TpDisassociateCallback
@ stdcall DisconnectNamedPipe(long)
@ stdcall DnsHostnameToComputerNameA(str ptr ptr)
@ stdcall DnsHostnameToComputerNameW(wstr ptr ptr)
@@ -219,6 +247,7 @@
@ stdcall DosPathToSessionPathW(long wstr wstr)
@ stdcall DuplicateConsoleHandle(long long long long)
@ stdcall DuplicateHandle(long long long ptr long long long)
# @ stub -version=0x601 EnableThreadProfiling
@ stdcall EncodePointer(ptr) ntdll.RtlEncodePointer
@ stdcall EncodeSystemPointer(ptr) ntdll.RtlEncodeSystemPointer
@ stdcall EndUpdateResourceA(long long)
@@ -237,16 +266,16 @@
@ stdcall EnumLanguageGroupLocalesA(ptr long long ptr)
@ stdcall EnumLanguageGroupLocalesW(ptr long long ptr)
@ stdcall EnumResourceLanguagesA(long str str ptr long)
@ stub -version=0x600+ EnumResourceLanguagesExA
@ stub -version=0x600+ EnumResourceLanguagesExW
@ stdcall -version=0x600+ EnumResourceLanguagesExA(long str str ptr long long long)
@ stdcall -version=0x600+ EnumResourceLanguagesExW(long wstr wstr ptr long long long)
@ stdcall EnumResourceLanguagesW(long wstr wstr ptr long)
@ stdcall EnumResourceNamesA(long str ptr long)
@ stub -version=0x600+ EnumResourceNamesExA
@ stub -version=0x600+ EnumResourceNamesExW
@ stdcall -version=0x600+ EnumResourceNamesExA(long str ptr long long long)
@ stdcall -version=0x600+ EnumResourceNamesExW(long wstr ptr long long long)
@ stdcall EnumResourceNamesW(long wstr ptr long)
@ stdcall EnumResourceTypesA(long ptr long)
@ stub -version=0x600+ EnumResourceTypesExA
@ stub -version=0x600+ EnumResourceTypesExW
@ stdcall -version=0x600+ EnumResourceTypesExA(long ptr long long long)
@ stdcall -version=0x600+ EnumResourceTypesExW(long ptr long long long)
@ stdcall EnumResourceTypesW(long ptr long)
@ stdcall EnumSystemCodePagesA(ptr long)
@ stdcall EnumSystemCodePagesW(ptr long)
@@ -264,8 +293,10 @@
@ stdcall EnumUILanguagesW(ptr long long)
@ stdcall EnumerateLocalComputerNamesA(ptr long str ptr)
@ stdcall EnumerateLocalComputerNamesW(ptr long wstr ptr)
@ stdcall -version=0x601 -arch=win64 EnterUmsSchedulingMode(ptr)
@ stdcall EraseTape(ptr long long)
@ stdcall EscapeCommFunction(long long)
@ stdcall -version=0x601 -arch=win64 ExecuteUmsThread(ptr)
@ stdcall ExitProcess(long) ; FIXME: ntdll.RtlExitUserProcess
@ stdcall ExitThread(long) ; FIXME: ntdll.RtlExitUserThread
@ stdcall ExitVDM(long long)
@@ -295,9 +326,9 @@
@ stdcall FindFirstFileExA(str long ptr long ptr long)
@ stdcall FindFirstFileExW(wstr long ptr long ptr long)
@ stub -version=0x600+ FindFirstFileNameTransactedW
@ stub -version=0x600+ FindFirstFileNameW
@ stub -version=0x600+ FindFirstFileTransactedA
@ stub -version=0x600+ FindFirstFileTransactedW
@ stdcall -stub -version=0x600+ FindFirstFileNameW(wstr long ptr ptr)
@ stdcall -version=0x600+ FindFirstFileTransactedA(str long ptr long ptr long ptr)
@ stdcall -version=0x600+ FindFirstFileTransactedW(wstr long ptr long ptr long ptr)
@ stdcall FindFirstFileW(wstr ptr)
@ stub -version=0x600+ FindFirstStreamTransactedW
@ stdcall FindFirstStreamW(wstr ptr ptr long)
@@ -305,8 +336,8 @@
@ stdcall FindFirstVolumeMountPointA(str ptr long)
@ stdcall FindFirstVolumeMountPointW(wstr ptr long)
@ stdcall FindFirstVolumeW(ptr long)
@ stub -version=0x600+ FindNLSString
@ stub -version=0x600+ FindNLSStringEx
@ stdcall -stub -version=0x600+ FindNLSString(long long wstr long wstr long ptr)
@ stdcall -stub -version=0x600+ FindNLSStringEx(wstr long wstr long wstr long ptr ptr ptr long)
@ stdcall FindNextChangeNotification(long)
@ stdcall FindNextFileA(long ptr)
@ stub -version=0x600+ FindNextFileNameW
@@ -320,6 +351,7 @@
@ stdcall FindResourceExA(long str str long)
@ stdcall FindResourceExW(long wstr wstr long)
@ stdcall FindResourceW(long wstr wstr)
@ stdcall -version=0x601+ -stub FindStringOrdinal(long wstr long wstr long long)
@ stdcall FindVolumeClose(ptr)
@ stdcall FindVolumeMountPointClose(ptr)
@ stdcall FlsAlloc(ptr)
@@ -329,7 +361,7 @@
@ stdcall FlushConsoleInputBuffer(long)
@ stdcall FlushFileBuffers(long)
@ stdcall FlushInstructionCache(long long long)
@ stub -version=0x600+ FlushProcessWriteBuffers
@ stdcall -version=0x600+ FlushProcessWriteBuffers() NTDLL.NtFlushProcessWriteBuffers
@ stdcall FlushViewOfFile(ptr long)
@ stdcall FoldStringA(long str long ptr long)
@ stdcall FoldStringW(long wstr long ptr long)
@@ -340,11 +372,13 @@
@ stdcall FreeEnvironmentStringsW(ptr)
@ stdcall FreeLibrary(long)
@ stdcall FreeLibraryAndExitThread(long long)
@ stub -version=0x600+ FreeLibraryWhenCallbackReturns
@ stdcall -version=0x600+ FreeLibraryWhenCallbackReturns(ptr ptr) NTDLL.TpCallbackUnloadDllOnCompletion
@ stdcall FreeResource(long)
@ stdcall FreeUserPhysicalPages(long long long)
@ stdcall GenerateConsoleCtrlEvent(long long)
@ stdcall GetACP()
@ stdcall -stub -version=0x601+ GetActiveProcessorCount(long)
@ stdcall -stub -version=0x601+ GetActiveProcessorGroupCount()
@ stdcall -version=0x600+ GetApplicationRecoveryCallback(ptr ptr ptr ptr ptr)
@ stub -version=0x600+ GetApplicationRestartSettings
@ stdcall GetAtomNameA(long ptr long)
@@ -431,12 +465,18 @@
@ stdcall -version=0x600+ GetCurrentConsoleFontEx(ptr long ptr)
@ stdcall GetCurrentDirectoryA(long ptr)
@ stdcall GetCurrentDirectoryW(long ptr)
@ stdcall -version=0x602+ GetCurrentPackageFamilyName(ptr ptr)
@ stdcall -version=0x602+ GetCurrentPackageFullName(ptr ptr)
@ stdcall -version=0x602+ GetCurrentPackageId(ptr ptr)
@ stdcall -version=0x602+ GetCurrentPackagePath(ptr ptr)
@ stdcall -norelay GetCurrentProcess()
@ stdcall -norelay GetCurrentProcessId()
@ stdcall GetCurrentProcessorNumber() ntdll.RtlGetCurrentProcessorNumber
@ stdcall -version=0x601+ -stub GetCurrentProcessorNumberEx(ptr) ;NTDLL.RtlGetCurrentProcessorNumberEx
@ stdcall -norelay GetCurrentThread()
@ stdcall -norelay GetCurrentThreadId()
@ stdcall -stub -version=0x602+ GetCurrentThreadStackLimits(ptr ptr)
@ stdcall -version=0x601+ -arch=win64 GetCurrentUmsThread()
@ stdcall GetDateFormatA(long long ptr str ptr long)
@ stdcall -version=0x600+ GetDateFormatEx(wstr long ptr wstr wstr long wstr)
@ stdcall GetDateFormatW(long long ptr wstr ptr long)
@@ -454,7 +494,9 @@
@ stdcall GetDriveTypeW(wstr)
@ stub -version=0x600+ GetDurationFormat
@ stub -version=0x600+ GetDurationFormatEx
@ stub -version=0x600+ GetDynamicTimeZoneInformation
@ stdcall -stub -version=0x600+ GetDynamicTimeZoneInformation(ptr)
@ stdcall -stub -version=0x602+ GetDynamicTimeZoneInformationEffectiveYears(ptr ptr ptr)
@ stdcall -stub -version=0x601+ -ret64 -arch=i386,x86_64 GetEnabledXStateFeatures()
@ stdcall GetEnvironmentStrings()
@ stdcall GetEnvironmentStringsA() GetEnvironmentStrings
@ stdcall GetEnvironmentStringsW()
@@ -468,8 +510,8 @@
@ stdcall GetFileAttributesA(str)
@ stdcall GetFileAttributesExA(str long ptr)
@ stdcall GetFileAttributesExW(wstr long ptr)
@ stub -version=0x600+ GetFileAttributesTransactedA
@ stub -version=0x600+ GetFileAttributesTransactedW
@ stdcall -version=0x600+ GetFileAttributesTransactedA(str long ptr ptr)
@ stdcall -version=0x600+ GetFileAttributesTransactedW(wstr long ptr ptr)
@ stdcall GetFileAttributesW(wstr)
@ stdcall -version=0x600+ GetFileBandwidthReservation(ptr ptr ptr ptr ptr ptr)
@ stdcall GetFileInformationByHandle(long ptr)
@@ -508,11 +550,14 @@
@ stdcall GetLogicalDriveStringsW(long ptr)
@ stdcall GetLogicalDrives()
@ stdcall GetLogicalProcessorInformation(ptr ptr)
@ stdcall -version=0x601+ GetLogicalProcessorInformationEx(long ptr ptr)
@ stdcall GetLongPathNameA(str long long)
@ stub -version=0x600+ GetLongPathNameTransactedA
@ stub -version=0x600+ GetLongPathNameTransactedW
@ stdcall GetLongPathNameW(wstr long long)
@ stdcall GetMailslotInfo(long ptr ptr ptr ptr)
@ stdcall -version=0x601+ GetMaximumProcessorCount(long)
@ stdcall -version=0x601+ GetMaximumProcessorGroupCount()
@ stdcall GetModuleFileNameA(long ptr long)
@ stdcall GetModuleFileNameW(long ptr long)
@ stdcall GetModuleHandleA(str)
@@ -524,21 +569,26 @@
@ stub -version=0x600+ GetNamedPipeAttribute
@ stub -version=0x600+ GetNamedPipeClientComputerNameA
@ stub -version=0x600+ GetNamedPipeClientComputerNameW
@ stub -version=0x600+ GetNamedPipeClientProcessId
@ stub -version=0x600+ GetNamedPipeClientSessionId
@ stdcall -version=0x600+ -stub GetNamedPipeClientProcessId(long ptr)
@ stdcall -version=0x600+ -stub GetNamedPipeClientSessionId(long ptr)
@ stdcall GetNamedPipeHandleStateA(long ptr ptr ptr ptr str long)
@ stdcall GetNamedPipeHandleStateW(long ptr ptr ptr ptr wstr long)
@ stdcall GetNamedPipeInfo(long ptr ptr ptr ptr)
@ stub -version=0x600+ GetNamedPipeServerProcessId
@ stub -version=0x600+ GetNamedPipeServerSessionId
@ stdcall -stub -version=0x600+ GetNamedPipeServerProcessId(long ptr)
@ stdcall -stub -version=0x600+ GetNamedPipeServerSessionId(long ptr)
@ stdcall GetNativeSystemInfo(ptr)
@ stdcall -version=0x601+ -arch=win64 GetNextUmsListItem(ptr)
@ stdcall GetNextVDMCommand(long)
@ stdcall -version=0x500-0x502 GetNlsSectionName(long long long str str long)
@ stdcall GetNumaAvailableMemoryNode(long ptr)
@ stdcall -version=0x601+ GetNumaAvailableMemoryNodeEx(long ptr)
@ stdcall GetNumaHighestNodeNumber(ptr)
@ stdcall GetNumaNodeProcessorMask(long ptr)
@ stdcall -version=0x601+ -stub GetNumaNodeProcessorMaskEx(long ptr)
@ stdcall GetNumaProcessorNode(long ptr)
@ stub -version=0x600+ GetNumaProximityNode
@ stdcall -version=0x601+ GetNumaProcessorNodeEx(ptr ptr)
@ stdcall -version=0x600+ GetNumaProximityNode(long ptr)
@ stdcall -stub -version=0x601+ GetNumaProximityNodeEx(long ptr)
@ stdcall GetNumberFormatA(long long str ptr ptr long)
@ stdcall -version=0x600+ GetNumberFormatEx(wstr long wstr ptr wstr long)
@ stdcall GetNumberFormatW(long long wstr ptr ptr long)
@@ -547,6 +597,12 @@
@ stdcall GetNumberOfConsoleMouseButtons(ptr)
@ stdcall GetOEMCP()
@ stdcall GetOverlappedResult(long ptr ptr long)
@ stdcall -stub -version=0x602+ GetOverlappedResultEx(long ptr ptr long long)
@ stdcall -stub -version=0xA00+ GetUserDefaultGeoName(ptr long)
@ stdcall -version=0x602+ GetPackageFamilyName(long ptr ptr)
@ stdcall -version=0x602+ GetPackageFullName(long ptr ptr)
@ stdcall -version=0x602+ GetPackagesByPackageFamily(wstr ptr ptr ptr ptr)
@ stdcall -version=0x603+ GetPackagePathByFullName(wstr ptr wstr)
@ stdcall -stub -version=0x600+ GetPhysicallyInstalledSystemMemory(ptr)
@ stdcall GetPriorityClass(long)
@ stdcall GetPrivateProfileIntA(str str long str)
@@ -561,20 +617,26 @@
@ stdcall GetPrivateProfileStructW(wstr wstr ptr long wstr)
@ stdcall GetProcAddress(long str)
@ stdcall GetProcessAffinityMask(long ptr ptr)
@ stub -version=0x600+ GetProcessDEPPolicy
@ stdcall -version=0x600+ GetProcessDEPPolicy(ptr ptr ptr)
@ stdcall -version=0x601+ GetProcessGroupAffinity(long ptr ptr)
@ stdcall GetProcessHandleCount(long ptr)
@ stdcall -norelay GetProcessHeap()
@ stdcall GetProcessHeaps(long ptr)
@ stdcall GetProcessId(long)
@ stdcall GetProcessIdOfThread(ptr)
@ stdcall -stub -version=0x602+ GetProcessInformation(long long ptr long)
@ stdcall GetProcessIoCounters(long ptr)
@ stdcall -stub -version=0x602+ GetProcessMitigationPolicy(long long ptr long)
@ stdcall -stub -version=0x601+ GetProcessPreferredUILanguages(long ptr ptr ptr)
@ stdcall GetProcessPriorityBoost(long ptr)
@ stdcall GetProcessShutdownParameters(ptr ptr)
# @ stub -version=0x601+ GetProcessorSystemCycleTime
@ stdcall GetProcessTimes(long ptr ptr ptr ptr)
# @ stub -version=0x601+ GetProcessUserModeExceptionPolicy
@ stdcall GetProcessVersion(long)
@ stdcall GetProcessWorkingSetSize(long ptr ptr)
@ stdcall GetProcessWorkingSetSizeEx(long ptr ptr long)
@ stub -version=0x600+ GetProductInfo
@ stdcall -stub -version=0x600+ GetProductInfo(long long long long ptr)
@ stdcall GetProfileIntA(str str long)
@ stdcall GetProfileIntW(wstr wstr long)
@ stdcall GetProfileSectionA(str ptr long)
@@ -582,7 +644,7 @@
@ stdcall GetProfileStringA(str str str ptr long)
@ stdcall GetProfileStringW(wstr wstr wstr ptr long)
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long)
@ stub -version=0x600+ GetQueuedCompletionStatusEx
@ stdcall -stub -version=0x600+ GetQueuedCompletionStatusEx(ptr ptr long ptr long long)
@ stdcall GetShortPathNameA(str ptr long)
@ stdcall GetShortPathNameW(wstr ptr long)
@ stdcall GetStartupInfoA(ptr)
@@ -593,7 +655,8 @@
@ stdcall GetStringTypeExA(long long str long ptr)
@ stdcall GetStringTypeExW(long long wstr long ptr)
@ stdcall GetStringTypeW(long wstr long ptr)
@ stub -version=0x600+ GetSystemDEPPolicy
@ stdcall -version=0x600+ GetSystemDEPPolicy()
@ stdcall -stub -version=0xA00+ GetSystemCpuSetInformation(ptr long ptr ptr long)
@ stdcall GetSystemDefaultLCID()
@ stdcall GetSystemDefaultLangID()
@ stdcall -stub -version=0x600+ GetSystemDefaultLocaleName(ptr long)
@@ -620,12 +683,17 @@
@ stdcall GetTapeStatus(ptr)
@ stdcall GetTempFileNameA(str str long ptr)
@ stdcall GetTempFileNameW(wstr wstr long ptr)
@ stdcall -stub -version=0xA00+ GetTempPath2A(long ptr)
@ stdcall -stub -version=0xA00+ GetTempPath2W(long ptr)
@ stdcall GetTempPathA(long ptr)
@ stdcall GetTempPathW(long ptr)
@ stdcall GetThreadContext(long ptr)
@ stdcall -version=0xA00+ GetThreadDescription(long ptr)
@ stdcall -stub -version=0x600+ GetThreadErrorMode()
@ stdcall -version=0x601+ GetThreadGroupAffinity(long ptr)
@ stdcall GetThreadIOPendingFlag(long ptr)
@ stdcall GetThreadId(ptr)
@ stdcall -stub -version=0xA00+ GetThreadIdealProcessorEx(long ptr)
@ stdcall GetThreadLocale()
@ stdcall -version=0x600+ GetThreadPreferredUILanguages(long ptr wstr ptr)
@ stdcall GetThreadPriority(long)
@@ -640,7 +708,9 @@
@ stdcall GetTimeFormatW(long long ptr wstr ptr long)
@ stdcall GetTimeZoneInformation(ptr)
@ stdcall -stub -version=0x600+ GetTimeZoneInformationForYear(long ptr ptr)
# @ stub -version=0x600+ GetUILanguageInfo
@ stdcall -version=0x600+ GetUILanguageInfo(long wstr wstr ptr ptr)
# @ stub -version=0x601+ -arch=win64 GetUmsSystemThreadInformation
@ stdcall GetUserDefaultLCID()
@ stdcall GetUserDefaultLangID()
@ stdcall -version=0x600+ GetUserDefaultLocaleName(wstr long)
@@ -663,6 +733,8 @@
@ stdcall GetWindowsDirectoryA(ptr long)
@ stdcall GetWindowsDirectoryW(ptr long)
@ stdcall GetWriteWatch(long ptr long ptr ptr ptr)
@ stdcall -stub -version=0x601+ -arch=i386,x86_64 GetXStateFeaturesMask(ptr ptr)
@ stdcall -stub -version=0x601+ -arch=i386,x86_64 SetXStateFeaturesMask(ptr int64)
@ stdcall GlobalAddAtomA(str)
@ stdcall GlobalAddAtomW(wstr)
@ stdcall GlobalAlloc(long long)
@@ -716,10 +788,12 @@
@ stdcall -version=0x600+ InitOnceExecuteOnce(ptr ptr ptr ptr)
@ stdcall -version=0x600+ InitOnceInitialize(ptr) ntdll.RtlRunOnceInitialize
@ stdcall -version=0x600+ InitializeConditionVariable(ptr) ntdll.RtlInitializeConditionVariable
@ stdcall -stub -version=0x601+ InitializeContext(ptr long ptr ptr)
@ stdcall -stub -version=0xA00+ InitializeContext2(ptr long ptr ptr int64)
@ stdcall InitializeCriticalSection(ptr)
@ stdcall InitializeCriticalSectionAndSpinCount(ptr long)
@ stdcall -version=0x600+ InitializeCriticalSectionEx(ptr long long)
@ stdcall -stub -version=0x600+ InitializeProcThreadAttributeList(ptr long long ptr)
@ stdcall -version=0x600+ InitializeProcThreadAttributeList(ptr long long ptr)
@ stdcall InitializeSListHead(ptr) ntdll.RtlInitializeSListHead
@ stdcall -version=0x600+ InitializeSRWLock(ptr) ntdll.RtlInitializeSRWLock
@ stdcall -arch=i386 -ret64 InterlockedCompareExchange64(ptr double double) ntdll.RtlInterlockedCompareExchange64
@@ -752,14 +826,16 @@
@ stdcall IsProcessorFeaturePresent(long)
@ stdcall IsSystemResumeAutomatic()
@ stdcall -version=0x600+ IsThreadAFiber()
@ stub -version=0x600+ IsThreadpoolTimerSet
@ stdcall -version=0x600+ IsThreadpoolTimerSet() NTDLL.TpIsTimerSet
@ stdcall IsTimeZoneRedirectionEnabled()
@ stub -version=0x600+ IsValidCalDateTime
@ stdcall IsValidCodePage(long)
@ stdcall IsValidLanguageGroup(long long)
@ stdcall IsValidLocale(long long)
@ stdcall -version=0x501-0x502 IsValidUILanguage(long)
@ stdcall -stub -version=0x602+ IsValidNLSVersion(long wstr ptr)
@ stdcall IsWow64Process(ptr ptr)
@ stdcall -stub -version=0xA00+ IsWow64Process2(ptr ptr ptr)
@ stdcall -version=0x601+ K32EmptyWorkingSet(long) EmptyWorkingSet
@ stdcall -version=0x601+ K32EnumDeviceDrivers(ptr long ptr) EnumDeviceDrivers
@ stdcall -version=0x601+ K32EnumPageFilesA(ptr ptr) EnumPageFilesA
@@ -803,12 +879,14 @@
@ stdcall LZSeek(long long long)
@ stdcall LZStart()
@ stdcall LeaveCriticalSection(ptr) ntdll.RtlLeaveCriticalSection
@ stub -version=0x600+ LeaveCriticalSectionWhenCallbackReturns
@ stdcall -version=0x600+ LeaveCriticalSectionWhenCallbackReturns(ptr ptr) NTDLL.TpCallbackLeaveCriticalSectionOnCompletion
@ stdcall -version=0x601+ LoadAppInitDlls()
@ stdcall LoadLibraryA(str)
@ stdcall LoadLibraryExA(str long long)
@ stdcall LoadLibraryExW(wstr long long)
@ stdcall LoadLibraryW(wstr)
@ stdcall LoadModule(str ptr)
@ stdcall -version=0x602+ LoadPackagedLibrary(wstr long)
@ stdcall LoadResource(long long)
@ stub -version=0x600+ LoadStringBaseExW
@ stub -version=0x600+ LoadStringBaseW
@@ -824,6 +902,7 @@
@ stdcall LocalSize(long)
@ stdcall LocalUnlock(long)
@ stdcall -version=0x600+ LocaleNameToLCID(wstr long)
@ stdcall -stub -version=0x601+ -arch=i386,x86_64 LocateXStateFeature(ptr long ptr)
@ stdcall LockFile(long long long long long)
@ stdcall LockFileEx(long long long long long ptr)
@ stdcall LockResource(long)
@@ -832,6 +911,7 @@
@ stdcall MapViewOfFile(long long long long long)
@ stdcall MapViewOfFileEx(long long long long long ptr)
@ stub -version=0x600+ MapViewOfFileExNuma
@ stdcall -stub -version=0x602+ MapViewOfFileFromApp(long long int64 long)
@ stdcall Module32First(long ptr)
@ stdcall Module32FirstW(long ptr)
@ stdcall Module32Next(long ptr)
@@ -839,8 +919,8 @@
@ stdcall MoveFileA(str str)
@ stdcall MoveFileExA(str str long)
@ stdcall MoveFileExW(wstr wstr long)
@ stub -version=0x600+ MoveFileTransactedA
@ stub -version=0x600+ MoveFileTransactedW
@ stdcall -version=0x600+ MoveFileTransactedA(str str ptr ptr long ptr)
@ stdcall -version=0x600+ MoveFileTransactedW(wstr wstr ptr ptr long ptr)
@ stdcall MoveFileW(wstr wstr)
@ stdcall MoveFileWithProgressA(str str ptr ptr long)
@ stdcall MoveFileWithProgressW(wstr wstr ptr ptr long)
@@ -873,10 +953,12 @@
@ stub -version=0x600+ OpenPrivateNamespaceA
@ stub -version=0x600+ OpenPrivateNamespaceW
@ stdcall OpenProcess(long long long)
@ stdcall -version=0x601+ OpenProcessToken(long long ptr)
@ stdcall OpenProfileUserMapping()
@ stdcall OpenSemaphoreA(long long str)
@ stdcall OpenSemaphoreW(long long wstr)
@ stdcall OpenThread(long long long)
@ stdcall -version=0x601+ OpenThreadToken(long long long ptr)
@ stdcall OpenWaitableTimerA(long long str)
@ stdcall OpenWaitableTimerW(long long wstr)
@ stdcall OutputDebugStringA(str)
@@ -885,6 +967,11 @@
@ stdcall PeekConsoleInputW(ptr ptr long ptr)
@ stdcall PeekNamedPipe(long ptr long ptr ptr ptr)
@ stdcall PostQueuedCompletionStatus(long long ptr ptr)
@ stdcall -version=0x602+ PackageIdFromFullName(wstr long ptr ptr)
@ stdcall -version=0x601+ PowerClearRequest(long long)
@ stdcall -version=0x601+ PowerCreateRequest(ptr)
@ stdcall -version=0x601+ PowerSetRequest(long long)
@ stdcall -stub -version=0x602+ PrefetchVirtualMemory(ptr ptr ptr long)
@ stdcall PrepareTape(ptr long long)
@ stdcall PrivCopyFileExW(wstr wstr ptr ptr long long)
@ stdcall PrivMoveFileIdentityW(long long long)
@@ -895,14 +982,14 @@
@ stdcall ProcessIdToSessionId(long ptr)
@ stdcall PulseEvent(long)
@ stdcall PurgeComm(long long)
@ stub -version=0x600+ QueryActCtxSettingsW
@ stdcall -version=0x600+ QueryActCtxSettingsW(long ptr wstr wstr ptr long ptr)
@ stdcall QueryActCtxW(long ptr ptr long ptr long ptr)
@ stdcall QueryDepthSList(ptr) ntdll.RtlQueryDepthSList
@ stdcall QueryDosDeviceA(str ptr long)
@ stdcall QueryDosDeviceW(wstr ptr long)
@ stdcall -version=0x600+ QueryFullProcessImageNameA(ptr long str ptr)
@ stdcall -version=0x600+ QueryFullProcessImageNameW(ptr long wstr ptr)
@ stub -version=0x600+ QueryIdleProcessorCycleTime
@ stdcall -version=0x600+ QueryIdleProcessorCycleTime(ptr ptr)
@ stdcall QueryInformationJobObject(long long ptr long ptr)
@ stdcall QueryMemoryResourceNotification(ptr ptr)
@ stdcall QueryPerformanceCounter(ptr)
@@ -910,6 +997,10 @@
@ stub -version=0x600+ QueryProcessAffinityUpdateMode
@ stub -version=0x600+ QueryProcessCycleTime
@ stub -version=0x600+ QueryThreadCycleTime
# @ stub -version=0x601+ QueryThreadProfiling
@ stdcall -version=0x601+ QueryThreadpoolStackInformation(ptr ptr)
@ stdcall -version=0x601+ -arch=win64 QueryUmsThreadInformation(ptr long ptr long ptr)
@ stdcall -stub -version=0x601+ QueryUnbiasedInterruptTime(ptr)
@ stdcall QueueUserAPC(ptr long long)
@ stdcall QueueUserWorkItem(ptr ptr long)
@ stdcall -norelay RaiseException(long long long ptr)
@@ -930,6 +1021,49 @@
@ stdcall ReadFileEx(long ptr long ptr ptr)
@ stdcall ReadFileScatter(long ptr long ptr ptr)
@ stdcall ReadProcessMemory(long ptr ptr long ptr)
# @ stub -version=0x601+ ReadThreadProfilingData
@ stdcall -version=0x601+ RegCloseKey(long)
@ stdcall -version=0x601+ RegEnumKeyExA(long long ptr ptr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegEnumKeyExW(long long ptr ptr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegEnumValueA(long long ptr ptr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegEnumValueW(long long ptr ptr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegFlushKey(long)
@ stdcall -version=0x601+ RegCreateKeyExA(long str long ptr long long ptr ptr ptr)
@ stdcall -version=0x601+ RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr)
@ stdcall -version=0x601+ RegDeleteKeyExA(long str long long)
@ stdcall -version=0x601+ RegDeleteKeyExW(long wstr long long)
@ stdcall -version=0x601+ RegDeleteTreeA(long str)
@ stdcall -version=0x601+ RegDeleteTreeW(long wstr)
@ stdcall -version=0x601+ RegDeleteValueA(long str)
@ stdcall -version=0x601+ RegDeleteValueW(long wstr)
# stub -version=0x601+ RegDisablePredefinedCacheEx
@ stdcall -version=0x601+ RegGetKeySecurity(long long ptr ptr)
@ stdcall -version=0x601+ RegGetValueA(long str str long ptr ptr ptr)
@ stdcall -version=0x601+ RegGetValueW(long wstr wstr long ptr ptr ptr)
# stub -version=0x601+ RegKrnGetGlobalState
# stub -version=0x601+ RegKrnInitialize
@ stdcall -version=0x601+ RegLoadKeyA(long str str)
@ stdcall -version=0x601+ RegLoadKeyW(long wstr wstr)
@ stdcall -version=0x601+ RegLoadMUIStringA(long str str long ptr long str)
@ stdcall -version=0x601+ RegLoadMUIStringW(long wstr wstr long ptr long wstr)
@ stdcall -version=0x601+ RegNotifyChangeKeyValue(long long long long long)
@ stdcall -version=0x601+ RegOpenCurrentUser(long ptr)
@ stdcall -version=0x601+ RegOpenKeyExA(long str long long ptr)
@ stdcall -version=0x601+ RegOpenKeyExW(long wstr long long ptr)
@ stdcall -version=0x601+ RegOpenUserClassesRoot(ptr long long ptr)
@ stdcall -version=0x601+ RegQueryInfoKeyA(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegQueryInfoKeyW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegQueryValueExA(long str ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegQueryValueExW(long wstr ptr ptr ptr ptr)
@ stdcall -version=0x601+ RegRestoreKeyA(long str long)
@ stdcall -version=0x601+ RegRestoreKeyW(long wstr long)
@ stdcall -version=0x601+ RegSaveKeyExA(long str ptr long)
@ stdcall -version=0x601+ RegSaveKeyExW(long wstr ptr long)
@ stdcall -version=0x601+ RegSetKeySecurity(long long ptr)
@ stdcall -version=0x601+ RegSetValueExA(long str long long ptr long)
@ stdcall -version=0x601+ RegSetValueExW(long wstr long long ptr long)
@ stdcall -version=0x601+ RegUnLoadKeyA(long str)
@ stdcall -version=0x601+ RegUnLoadKeyW(long wstr)
@ stdcall -version=0x600+ RegisterApplicationRecoveryCallback(ptr ptr long long)
@ stdcall -version=0x600+ RegisterApplicationRestart(wstr long)
@ stdcall RegisterConsoleIME(ptr ptr)
@@ -942,14 +1076,14 @@
@ stdcall RegisterWowExec(long)
@ stdcall ReleaseActCtx(ptr)
@ stdcall ReleaseMutex(long)
@ stub -version=0x600+ ReleaseMutexWhenCallbackReturns
@ stdcall -version=0x600+ ReleaseMutexWhenCallbackReturns(ptr long) NTDLL.TpCallbackReleaseMutexOnCompletion
@ stdcall -version=0x600+ ReleaseSRWLockExclusive(ptr) ntdll.RtlReleaseSRWLockExclusive
@ stdcall -version=0x600+ ReleaseSRWLockShared(ptr) ntdll.RtlReleaseSRWLockShared
@ stdcall ReleaseSemaphore(long long ptr)
@ stub -version=0x600+ ReleaseSemaphoreWhenCallbackReturns
@ stdcall RemoveDirectoryA(str)
@ stub -version=0x600+ RemoveDirectoryTransactedA
@ stub -version=0x600+ RemoveDirectoryTransactedW
@ stdcall -version=0x600+ RemoveDirectoryTransactedA(str ptr)
@ stdcall -version=0x600+ RemoveDirectoryTransactedW(wstr ptr)
@ stdcall RemoveDirectoryW(wstr)
@ stdcall RemoveLocalAlternateComputerNameA(str long)
@ stdcall RemoveLocalAlternateComputerNameW(wstr long)
@@ -959,11 +1093,16 @@
@ stdcall ReplaceFile(wstr wstr wstr long ptr ptr) ReplaceFileW
@ stdcall ReplaceFileA(str str str long ptr ptr)
@ stdcall ReplaceFileW(wstr wstr wstr long ptr ptr)
@ stdcall -version=0x600+ RemoveDllDirectory(ptr)
# @ stub -version=0x600+ RemoveSecureMemoryCacheCallback
@ stub -version=0x600+ ReplacePartitionUnit
@ stdcall RequestDeviceWakeup(long)
@ stdcall RequestWakeupLatency(long)
@ stdcall ResetEvent(long)
@ stdcall ResetWriteWatch(ptr long)
@ stdcall -stub -version=0xA00+ ResizePseudoConsole(ptr long)
@ stdcall -stub -version=0x602+ ResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long)
@ stdcall -stub -version=0x601+ ResolveLocaleName(wstr ptr long)
@ stdcall RestoreLastError(long) ntdll.RtlRestoreLastWin32Error
@ stdcall ResumeThread(long)
@ stdcall -arch=x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable
@@ -981,13 +1120,15 @@
@ stdcall -arch=x86_64 RtlRestoreContext(ptr ptr) ntdll.RtlRestoreContext
@ stdcall RtlUnwind(ptr ptr ptr ptr) ntdll.RtlUnwind
@ stdcall -arch=x86_64 RtlUnwindEx(ptr ptr ptr ptr ptr ptr) ntdll.RtlUnwindEx
@ stdcall -arch=x86_64 RtlVirtualUnwind(long int64 int64 ptr ptr ptr ptr ptr) ntdll.RtlVirtualUnwind
@ stdcall -arch=x86_64 RtlVirtualUnwind(ptr ptr ptr long) ntdll.RtlVirtualUnwind
@ stdcall -stub -version=0xA00+ -arch=x86_64 -norelay RtlIsEcCode(ptr)
@ stdcall RtlZeroMemory(ptr long) ntdll.RtlZeroMemory
@ stdcall ScrollConsoleScreenBufferA(long ptr ptr ptr ptr)
@ stdcall ScrollConsoleScreenBufferW(long ptr ptr ptr ptr)
@ stdcall SearchPathA(str str str long ptr ptr)
@ stdcall SearchPathW(wstr wstr wstr long ptr ptr)
@ stdcall -version=0x500-0x502 SetCPGlobal(long)
@ stdcall -version=0x602+ SetCachedSigningLevel(ptr long long long)
@ stdcall SetCalendarInfoA(long long long str)
@ stdcall SetCalendarInfoW(long long long wstr)
@ stdcall SetClientTimeZoneInformation(ptr)
@@ -1039,6 +1180,7 @@
@ stdcall SetCurrentDirectoryW(wstr)
@ stdcall SetDefaultCommConfigA(str ptr long)
@ stdcall SetDefaultCommConfigW(wstr ptr long)
@ stdcall -version=0x600+ SetDefaultDllDirectories(long)
@ stdcall SetDllDirectoryA(str)
@ stdcall SetDllDirectoryW(wstr)
@ stub -version=0x600+ SetDynamicTimeZoneInformation
@@ -1049,7 +1191,7 @@
@ stdcall SetEnvironmentVariableW(wstr wstr)
@ stdcall SetErrorMode(long)
@ stdcall SetEvent(long)
@ stub -version=0x600+ SetEventWhenCallbackReturns
@ stdcall -version=0x600+ SetEventWhenCallbackReturns(ptr long) NTDLL.TpCallbackSetEventOnCompletion
@ stdcall SetFileApisToANSI()
@ stdcall SetFileApisToOEM()
@ stdcall SetFileAttributesA(str long)
@@ -1058,7 +1200,7 @@
@ stdcall SetFileAttributesW(wstr long)
@ stdcall -version=0x600+ SetFileBandwidthReservation(ptr long long long ptr ptr)
@ stdcall SetFileCompletionNotificationModes(ptr long)
@ stub -version=0x600+ SetFileInformationByHandle
@ stdcall -version=0x600+ SetFileInformationByHandle(long long ptr long)
@ stub -version=0x600+ SetFileIoOverlappedRange
@ stdcall SetFilePointer(long long ptr long)
@ stdcall SetFilePointerEx(long double ptr long)
@@ -1088,13 +1230,19 @@
@ stdcall SetPriorityClass(long long)
@ stdcall SetProcessAffinityMask(long long)
@ stub -version=0x600+ SetProcessAffinityUpdateMode
@ stub -version=0x600+ SetProcessDEPPolicy
@ stdcall -stub -version=0xA00+ SetProcessDefaultCpuSets(ptr ptr long)
@ stdcall -version=0x600+ SetProcessDEPPolicy(ptr)
@ stdcall -stub -version=0x602+ SetProcessInformation(long long ptr long)
@ stdcall -stub -version=0x602+ SetProcessMitigationPolicy(long ptr long)
@ stdcall -version=0x601+ SetProcessPreferredUILanguages(long ptr ptr)
@ stdcall SetProcessPriorityBoost(long long)
@ stdcall SetProcessShutdownParameters(long long)
# @ stub -version=0x601+ SetProcessUserModeExceptionPolicy
@ stdcall SetProcessWorkingSetSize(long long long)
@ stdcall SetProcessWorkingSetSizeEx(long long long long)
@ stdcall -stub -version=0x600+ SetSearchPathMode(long)
@ stdcall SetStdHandle(long long)
@ stub -version=0x600+ SetStdHandleEx
@ stdcall -stub -version=0x600+ SetStdHandleEx(long long ptr)
@ stdcall SetSystemFileCacheSize(long long long)
@ stdcall SetSystemPowerState(long long)
@ stdcall SetSystemTime(ptr)
@@ -1104,29 +1252,40 @@
@ stdcall SetTermsrvAppInstallMode(long)
@ stdcall SetThreadAffinityMask(long long)
@ stdcall SetThreadContext(long ptr)
@ stdcall -stub -version=0x600+ SetThreadErrorMode(long ptr)
@ stdcall -version=0xA00+ SetThreadDescription(ptr wstr)
@ stdcall -version=0x600+ SetThreadErrorMode(long ptr)
@ stdcall SetThreadExecutionState(long)
@ stdcall -version=0x601+ SetThreadGroupAffinity(long ptr ptr)
@ stdcall SetThreadIdealProcessor(long long)
@ stdcall -version=0x601+ SetThreadIdealProcessorEx(long ptr ptr)
@ stdcall -version=0x602+ SetThreadInformation(long long ptr long)
@ stdcall SetThreadLocale(long)
@ stdcall -version=0x600+ SetThreadPreferredUILanguages(long wstr ptr)
@ stdcall SetThreadPriority(long long)
@ stdcall SetThreadPriorityBoost(long long)
@ stdcall -stub -version=0xA00+ SetThreadSelectedCpuSets(ptr ptr long)
@ stdcall SetThreadStackGuarantee(ptr)
@ stdcall -version=0x601+ SetThreadToken(ptr ptr)
@ stdcall SetThreadUILanguage(long)
@ stub -version=0x600+ SetThreadpoolThreadMaximum
@ stub -version=0x600+ SetThreadpoolThreadMinimum
@ stub -version=0x600+ SetThreadpoolTimer
@ stub -version=0x600+ SetThreadpoolWait
@ stdcall -version=0x601+ SetThreadpoolStackInformation(ptr ptr)
@ stdcall -version=0x600+ SetThreadpoolThreadMaximum(ptr long) NTDLL.TpSetPoolMaxThreads
@ stdcall -version=0x600+ SetThreadpoolThreadMinimum(ptr long) NTDLL.TpSetPoolMinThreads
@ stdcall -version=0x600+ SetThreadpoolTimer(ptr ptr long long) NTDLL.TpSetTimer
@ stdcall -version=0x600+ SetThreadpoolWait(ptr long ptr) NTDLL.TpSetWait
@ stdcall SetTimeZoneInformation(ptr)
@ stdcall SetTimerQueueTimer(long ptr ptr long long long)
@ stdcall -version=0x601+ -arch=win64 SetUmsThreadInformation(ptr long ptr long)
@ stdcall SetUnhandledExceptionFilter(ptr)
@ stdcall SetUserGeoID(long)
@ stdcall -stub -version=0xA00+ SetUserGeoName(wstr)
@ stdcall SetVDMCurrentDirectories(long long)
@ stdcall SetVolumeLabelA(str str)
@ stdcall SetVolumeLabelW(wstr wstr)
@ stdcall SetVolumeMountPointA(str str)
@ stdcall SetVolumeMountPointW(wstr wstr)
@ stdcall SetWaitableTimer(long ptr long ptr ptr long)
@ stdcall -version=0x601+ SetWaitableTimerEx(long ptr long ptr ptr ptr long)
# @ stub -version=0x601+ SetXStateFeaturesMask
@ stdcall SetupComm(long long long)
@ stdcall ShowConsoleCursor(long long)
@ stdcall SignalObjectAndWait(long long long long)
@@ -1135,8 +1294,8 @@
@ stdcall -version=0x600+ SleepConditionVariableCS(ptr ptr long)
@ stdcall -version=0x600+ SleepConditionVariableSRW(ptr ptr long long)
@ stdcall SleepEx(long long)
@ stub -version=0x600+ StartThreadpoolIo
@ stdcall -stub -version=0x600+ SubmitThreadpoolWork(ptr)
@ stdcall -version=0x600+ StartThreadpoolIo(ptr) NTDLL.TpStartAsyncIoOperation
@ stdcall -version=0x600+ SubmitThreadpoolWork(ptr) NTDLL.TpPostWork
@ stdcall SuspendThread(long)
@ stdcall SwitchToFiber(ptr)
@ stdcall SwitchToThread()
@@ -1155,8 +1314,10 @@
@ stdcall Toolhelp32ReadProcessMemory(long ptr ptr long ptr)
@ stdcall TransactNamedPipe(long ptr long ptr long ptr ptr)
@ stdcall TransmitCommChar(long long)
@ stdcall -version=0x601+ TryAcquireSRWLockExclusive(ptr) NTDLL.RtlTryAcquireSRWLockExclusive
@ stdcall -version=0x6001 TryAcquireSRWLockShared(ptr) NTDLL.RtlTryAcquireSRWLockShared
@ stdcall TryEnterCriticalSection(ptr) ntdll.RtlTryEnterCriticalSection
@ stub -version=0x600+ TrySubmitThreadpoolCallback
@ stdcall TrySubmitThreadpoolCallback(ptr ptr ptr)
@ stdcall TzSpecificLocalTimeToSystemTime(ptr ptr ptr)
@ stdcall UTRegister(long str str str ptr ptr ptr)
@ stdcall UTUnRegister(long)
@@ -1165,12 +1326,12 @@
@ stdcall UnlockFileEx(long long long long ptr)
@ stdcall UnmapViewOfFile(ptr)
@ stub -version=0x600+ UnregisterApplicationRecoveryCallback
@ stub -version=0x600+ UnregisterApplicationRestart
@ stdcall -version=0x600+ UnregisterApplicationRestart()
@ stdcall UnregisterConsoleIME()
@ stdcall UnregisterWait(long)
@ stdcall UnregisterWaitEx(long long)
@ stub -version=0x600+ UpdateCalendarDayOfWeek
@ stdcall -stub -version=0x600+ UpdateProcThreadAttribute(ptr long ptr ptr ptr ptr ptr)
@ stdcall -version=0x600+ UpdateProcThreadAttribute(ptr long ptr ptr ptr ptr ptr)
@ stdcall UpdateResourceA(long str str long ptr long)
@ stdcall UpdateResourceW(long wstr wstr long ptr long)
@ stdcall VDMConsoleOperation(long long)
@@ -1186,7 +1347,7 @@
@ stdcall VerifyVersionInfoW(long long double)
@ stdcall VirtualAlloc(ptr long long long)
@ stdcall VirtualAllocEx(long ptr long long long)
@ stub -version=0x600+ VirtualAllocExNuma
@ stdcall -stub -version=0x600+ VirtualAllocExNuma(long ptr long long long long)
@ stdcall VirtualFree(ptr long long)
@ stdcall VirtualFreeEx(long ptr long long)
@ stdcall VirtualLock(ptr long)
@@ -1198,24 +1359,27 @@
@ stdcall WTSGetActiveConsoleSessionId()
@ stdcall WaitCommEvent(long ptr ptr)
@ stdcall WaitForDebugEvent(ptr long)
@ stdcall -version=0xA00+ WaitForDebugEventEx(ptr long)
@ stdcall WaitForMultipleObjects(long ptr long long)
@ stdcall WaitForMultipleObjectsEx(long ptr long long long)
@ stdcall WaitForSingleObject(long long)
@ stdcall WaitForSingleObjectEx(long long long)
@ stub -version=0x600+ WaitForThreadpoolIoCallbacks
@ stub -version=0x600+ WaitForThreadpoolTimerCallbacks
@ stub -version=0x600+ WaitForThreadpoolWaitCallbacks
@ stdcall -stub -version=0x600+ WaitForThreadpoolWorkCallbacks(ptr long)
@ stdcall -version=0x600+ WaitForThreadpoolIoCallbacks(ptr long) NTDLL.TpWaitForIoCompletion
@ stdcall -version=0x600+ WaitForThreadpoolTimerCallbacks(ptr long) NTDLL.TpWaitForTimer
@ stdcall -version=0x600+ WaitForThreadpoolWaitCallbacks(ptr long) NTDLL.TpWaitForWait
@ stdcall -version=0x600+ WaitForThreadpoolWorkCallbacks(ptr long) ntdll.TpWaitForWork
@ stdcall WaitNamedPipeA(str long)
@ stdcall WaitNamedPipeW(wstr long)
@ stdcall -version=0x600+ WakeAllConditionVariable(ptr) ntdll.RtlWakeAllConditionVariable
@ stdcall -version=0x600+ WakeConditionVariable(ptr) ntdll.RtlWakeConditionVariable
@ stub -version=0x600+ WerGetFlags
@ stub -version=0x600+ WerRegisterFile
@ stub -version=0x600+ WerRegisterMemoryBlock
@ stub -version=0x600+ WerSetFlags
@ stub -version=0x600+ WerUnregisterFile
@ stub -version=0x600+ WerUnregisterMemoryBlock
@ stdcall -version=0x600+ WerGetFlags(ptr ptr)
@ stdcall -version=0x600+ WerRegisterFile(wstr long long)
@ stdcall -version=0x600+ WerRegisterMemoryBlock(ptr long)
@ stdcall -version=0x601+ WerRegisterRuntimeExceptionModule(wstr ptr)
@ stdcall -version=0x600+ WerSetFlags(long)
@ stdcall -version=0x600+ WerUnregisterFile(wstr)
@ stdcall -version=0x600+ WerUnregisterMemoryBlock(ptr)
@ stdcall -version=0x601+ WerUnregisterRuntimeExceptionModule(wstr ptr)
@ stub -version=0x600+ WerpCleanupMessageMapping
@ stub -version=0x600+ WerpInitiateRemoteRecovery
@ stub -version=0x600+ WerpNotifyLoadStringResource
@@ -1226,9 +1390,10 @@
@ stdcall WinExec(str long)
@ stdcall Wow64DisableWow64FsRedirection(ptr)
@ stdcall Wow64EnableWow64FsRedirection(long)
@ stub -version=0x600+ Wow64GetThreadContext
@ stdcall Wow64GetThreadContext(long ptr)
@ stdcall -stub -version=0x601+ Wow64GetThreadSelectorEntry(long long ptr)
@ stdcall Wow64RevertWow64FsRedirection(ptr)
@ stub -version=0x600+ Wow64SetThreadContext
@ stdcall Wow64SetThreadContext(long ptr)
@ stub -version=0x600+ Wow64SuspendThread
@ stdcall WriteConsoleA(long ptr long ptr ptr)
@ stdcall WriteConsoleInputA(long ptr long ptr)

View File

@@ -156,55 +156,6 @@ GetApplicationRestart(IN HANDLE hProcess,
}
/*
* @unimplemented
*/
VOID
WINAPI
ApplicationRecoveryFinished(IN BOOL bSuccess)
{
UNIMPLEMENTED;
}
/*
* @unimplemented
*/
HRESULT
WINAPI
ApplicationRecoveryInProgress(OUT PBOOL pbCancelled)
{
UNIMPLEMENTED;
return E_FAIL;
}
/*
* @unimplemented
*/
HRESULT
WINAPI
RegisterApplicationRecoveryCallback(IN APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
IN PVOID pvParameter OPTIONAL,
DWORD dwPingInterval,
DWORD dwFlags)
{
UNIMPLEMENTED;
return E_FAIL;
}
/*
* @unimplemented
*/
HRESULT
WINAPI
RegisterApplicationRestart(IN PCWSTR pwzCommandline OPTIONAL,
IN DWORD dwFlags)
{
UNIMPLEMENTED;
return E_FAIL;
}
/*
@@ -683,18 +634,6 @@ GetThreadPreferredUILanguages(
return FALSE;
}
/*
* @unimplemented
*/
LANGID
WINAPI
GetThreadUILanguage(VOID)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
@@ -729,10 +668,6 @@ GetUserPreferredUILanguages(
return FALSE;
}
/*
* @unimplemented
*/
#if 0 // Tis is Windows 7+
BOOL
WINAPI
SetProcessPreferredUILanguages(
@@ -744,7 +679,6 @@ SetProcessPreferredUILanguages(
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
#endif
/*
* @unimplemented

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,192 @@
/*
* File handling functions
*
* Copyright 1993 Erik Bos
* Copyright 1996, 2004 Alexandre Julliard
* Copyright 2003 Eric Pouech
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*
*/
#include <k32.h>
#define NDEBUG
#include <debug.h>
DEBUG_CHANNEL(kernel32file);
/**************************************************************************
* MoveFileTransactedA (KERNEL32.@)
*/
BOOL WINAPI MoveFileTransactedA(const char *source, const char *dest, LPPROGRESS_ROUTINE progress, void *data, DWORD flags, HANDLE handle)
{
FIXME("(%s, %s, %p, %p, %ld, %p) semi-stub\n", debugstr_a(source), debugstr_a(dest), progress, data, flags, handle);
return MoveFileWithProgressA(source, dest, progress, data, flags);
}
/**************************************************************************
* MoveFileTransactedW (KERNEL32.@)
*/
BOOL WINAPI MoveFileTransactedW(const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUTINE progress, void *data, DWORD flags, HANDLE handle)
{
FIXME("(%s, %s, %p, %p, %ld, %p) semi-stub\n", debugstr_w(source), debugstr_w(dest), progress, data, flags, handle);
return MoveFileWithProgressW(source, dest, progress, data, flags);
}
/*************************************************************************
* CreateFileTransactedA (KERNEL32.@)
*/
HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileTransactedA( LPCSTR name, DWORD access, DWORD sharing,
LPSECURITY_ATTRIBUTES sa, DWORD creation,
DWORD attributes, HANDLE template,
HANDLE transaction, PUSHORT version,
PVOID param )
{
FIXME("(%s %lx %lx %p %lx %lx %p %p %p %p): semi-stub\n", debugstr_a(name), access, sharing, sa,
creation, attributes, template, transaction, version, param);
return CreateFileA(name, access, sharing, sa, creation, attributes, template);
}
/*************************************************************************
* CreateFileTransactedW (KERNEL32.@)
*/
HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileTransactedW( LPCWSTR name, DWORD access, DWORD sharing,
LPSECURITY_ATTRIBUTES sa, DWORD creation,
DWORD attributes, HANDLE template, HANDLE transaction,
PUSHORT version, PVOID param )
{
FIXME("(%s %lx %lx %p %lx %lx %p %p %p %p): semi-stub\n", debugstr_w(name), access, sharing, sa,
creation, attributes, template, transaction, version, param);
return CreateFileW(name, access, sharing, sa, creation, attributes, template);
}
/***********************************************************************
* CreateDirectoryTransactedA (KERNEL32.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryTransactedA(LPCSTR template, LPCSTR path, LPSECURITY_ATTRIBUTES sa, HANDLE transaction)
{
FIXME("(%s %s %p %p): semi-stub\n", debugstr_a(template), debugstr_a(path), sa, transaction);
return CreateDirectoryExA(template, path, sa);
}
/***********************************************************************
* CreateDirectoryTransactedW (KERNEL32.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryTransactedW(LPCWSTR template, LPCWSTR path, LPSECURITY_ATTRIBUTES sa, HANDLE transaction)
{
FIXME("(%s %s %p %p): semi-stub\n", debugstr_w(template), debugstr_w(path), sa, transaction);
return CreateDirectoryExW(template, path, sa);
}
/***********************************************************************
* DeleteFileTransactedA (KERNEL32.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileTransactedA(LPCSTR path, HANDLE transaction)
{
FIXME("(%s %p): semi-stub\n", debugstr_a(path), transaction);
return DeleteFileA(path);
}
/***********************************************************************
* DeleteFileTransactedW (KERNEL32.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileTransactedW(LPCWSTR path, HANDLE transaction)
{
FIXME("(%s %p): semi-stub\n", debugstr_w(path), transaction);
return DeleteFileW(path);
}
/******************************************************************************
* FindFirstFileTransactedA (KERNEL32.@)
*/
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileTransactedA( LPCSTR filename, FINDEX_INFO_LEVELS level,
LPVOID data, FINDEX_SEARCH_OPS search_op,
LPVOID filter, DWORD flags, HANDLE transaction )
{
FIXME("(%s %d %p %d %p %lx %p): semi-stub\n", debugstr_a(filename), level, data, search_op, filter, flags, transaction);
return FindFirstFileExA(filename, level, data, search_op, filter, flags);
}
/******************************************************************************
* FindFirstFileTransactedW (KERNEL32.@)
*/
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileTransactedW( LPCWSTR filename, FINDEX_INFO_LEVELS level,
LPVOID data, FINDEX_SEARCH_OPS search_op,
LPVOID filter, DWORD flags, HANDLE transaction )
{
FIXME("(%s %d %p %d %p %lx %p): semi-stub\n", debugstr_w(filename), level, data, search_op, filter, flags, transaction);
return FindFirstFileExW(filename, level, data, search_op, filter, flags);
}
/**************************************************************************
* GetFileAttributesTransactedA (KERNEL32.@)
*/
DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesTransactedA(LPCSTR name, GET_FILEEX_INFO_LEVELS level, void *ptr, HANDLE transaction)
{
FIXME("(%s %p): semi-stub\n", debugstr_a(name), transaction);
return GetFileAttributesExA(name, level, ptr);
}
/**************************************************************************
* GetFileAttributesTransactedW (KERNEL32.@)
*/
DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesTransactedW(LPCWSTR name, GET_FILEEX_INFO_LEVELS level, void *ptr, HANDLE transaction)
{
FIXME("(%s %p): semi-stub\n", debugstr_w(name), transaction);
return GetFileAttributesExW(name, level, ptr);
}
/***********************************************************************
* RemoveDirectoryTransactedA (KERNEL32.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH RemoveDirectoryTransactedA(LPCSTR path, HANDLE transaction)
{
FIXME("(%s %p): semi-stub\n", debugstr_a(path), transaction);
return RemoveDirectoryA(path);
}
/***********************************************************************
* RemoveDirectoryTransactedW (KERNEL32.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH RemoveDirectoryTransactedW(LPCWSTR path, HANDLE transaction)
{
FIXME("(%s %p): semi-stub\n", debugstr_w(path), transaction);
return RemoveDirectoryW(path);
}
/*************************************************************************
* CreateHardLinkTransactedA (KERNEL32.@)
*/
BOOL WINAPI CreateHardLinkTransactedA(LPCSTR link, LPCSTR target, LPSECURITY_ATTRIBUTES sa, HANDLE transaction)
{
FIXME("(%s %s %p %p): stub\n", debugstr_a(link), debugstr_a(target), sa, transaction);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/*************************************************************************
* CreateHardLinkTransactedW (KERNEL32.@)
*/
BOOL WINAPI CreateHardLinkTransactedW(LPCWSTR link, LPCWSTR target, LPSECURITY_ATTRIBUTES sa, HANDLE transaction)
{
FIXME("(%s %s %p %p): stub\n", debugstr_w(link), debugstr_w(target), sa, transaction);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}

View File

@@ -2163,7 +2163,6 @@ BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW proc, LCID lcid, DWORD flags)
return NLS_EnumTimeFormats(&ctxt);
}
#if _WIN32_WINNT >= 0x600
/**************************************************************************
* EnumTimeFormatsEx (KERNEL32.@)
*/
@@ -2180,7 +2179,6 @@ BOOL WINAPI EnumTimeFormatsEx(TIMEFMT_ENUMPROCEX proc, const WCHAR *locale, DWOR
return NLS_EnumTimeFormats(&ctxt);
}
#endif /* _WIN32_WINNT >= 0x600 */
struct enumcalendar_context {
enum enum_callback_type type; /* callback kind */

View File

@@ -80,7 +80,6 @@ static const WCHAR szLangGroupsKeyName[] = {
'L','a','n','g','u','a','g','e',' ','G','r','o','u','p','s',0
};
#if (WINVER >= 0x0600)
/* Charset to codepage map, sorted by name. */
static const struct charset_entry
{
@@ -141,7 +140,6 @@ static const struct charset_entry
{ "KOI8U", 21866 },
{ "UTF8", CP_UTF8 }
};
#endif
struct locale_name
@@ -332,7 +330,6 @@ static const union cptable *get_codepage_table( unsigned int codepage )
}
#endif // !__REACTOS__
#if (WINVER >= 0x0600)
/***********************************************************************
* charset_cmp (internal)
*/
@@ -362,7 +359,6 @@ static UINT find_charset( const WCHAR *name )
if (entry) return entry->codepage;
return 0;
}
#endif // (WINVER >= 0x0600)
static LANGID get_default_sublang( LANGID lang )
{
@@ -382,7 +378,6 @@ static LANGID get_default_sublang( LANGID lang )
return lang;
}
#if (WINVER >= 0x0600)
/***********************************************************************
* find_locale_id_callback
*/
@@ -576,7 +571,6 @@ done:
EnumResourceLanguagesW( kernel32_handle, (LPCWSTR)RT_STRING, (LPCWSTR)LOCALE_ILANGUAGE,
find_locale_id_callback, (LPARAM)name );
}
#endif
/***********************************************************************
@@ -1332,7 +1326,6 @@ BOOL WINAPI GetThreadPreferredUILanguages( DWORD flags, ULONG *count, WCHAR *buf
return get_dummy_preferred_ui_language( flags, count, buf, size );
}
#if (WINVER >= 0x0600)
/******************************************************************************
* GetUserPreferredUILanguages (KERNEL32.@)
*/
@@ -1358,7 +1351,6 @@ BOOL WINAPI GetUserPreferredUILanguages( DWORD flags, ULONG *count, WCHAR *buffe
return get_dummy_preferred_ui_language( flags, count, buffer, size );
}
#endif // (WINVER >= 0x0600)
#endif // !__REACTOS__
/***********************************************************************
@@ -1399,7 +1391,6 @@ LANGID WINAPI GetSystemDefaultUILanguage(void)
return lang;
}
#if (WINVER >= 0x0600)
/***********************************************************************
* LocaleNameToLCID (KERNEL32.@)
*/
@@ -1441,8 +1432,6 @@ INT WINAPI LCIDToLocaleName( LCID lcid, LPWSTR name, INT count, DWORD flags )
return GetLocaleInfoW( lcid, LOCALE_SNAME | LOCALE_NOUSEROVERRIDE, name, count );
}
#endif
/******************************************************************************
* get_locale_registry_value
@@ -1806,7 +1795,6 @@ INT WINAPI GetLocaleInfoW( LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len )
return ret;
}
#if (WINVER >= 0x0600)
/******************************************************************************
* GetLocaleInfoEx (KERNEL32.@)
*/
@@ -1860,7 +1848,6 @@ GetUserDefaultLocaleName(
TRACE( "GetUserDefaultLocaleName not implemented (lpLocaleName=%s, cchLocaleName=%d)\n", debugstr_w(lpLocaleName), cchLocaleName);
return 0;
}
#endif
/******************************************************************************
* SetLocaleInfoA [KERNEL32.@]
@@ -4152,8 +4139,7 @@ INT WINAPI CompareStringA(LCID lcid, DWORD flags,
if (str2W != buf2W) HeapFree(GetProcessHeap(), 0, str2W);
return ret;
}
#if (WINVER >= 0x0600)
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) || (DLL_EXPORT_VERSION >= _WIN32_WINNT_VISTA)
/******************************************************************************
* CompareStringOrdinal (KERNEL32.@)
*/
@@ -4174,8 +4160,7 @@ INT WINAPI CompareStringOrdinal(const WCHAR *str1, INT len1, const WCHAR *str2,
if (ret > 0) return CSTR_GREATER_THAN;
return CSTR_EQUAL;
}
#endif // (WINVER >= 0x0600)
#endif
#ifndef __REACTOS__
/*************************************************************************
* lstrcmp (KERNEL32.@)

View File

@@ -11,32 +11,69 @@
extern "C" {
#endif
typedef enum AppPolicyMediaFoundationCodecLoading
{
AppPolicyMediaFoundationCodecLoading_All = 0,
AppPolicyMediaFoundationCodecLoading_InboxOnly = 1,
} AppPolicyMediaFoundationCodecLoading;
typedef enum AppPolicyProcessTerminationMethod
{
AppPolicyProcessTerminationMethod_ExitProcess = 0,
AppPolicyProcessTerminationMethod_ExitProcess = 0,
AppPolicyProcessTerminationMethod_TerminateProcess = 1,
} AppPolicyProcessTerminationMethod;
typedef enum AppPolicyThreadInitializationType
{
AppPolicyThreadInitializationType_None = 0,
AppPolicyThreadInitializationType_None = 0,
AppPolicyThreadInitializationType_InitializeWinRT = 1,
} AppPolicyThreadInitializationType;
typedef enum AppPolicyShowDeveloperDiagnostic
{
AppPolicyShowDeveloperDiagnostic_None = 0,
AppPolicyShowDeveloperDiagnostic_None = 0,
AppPolicyShowDeveloperDiagnostic_ShowUI = 1,
} AppPolicyShowDeveloperDiagnostic;
typedef enum AppPolicyWindowingModel
{
AppPolicyWindowingModel_None = 0,
AppPolicyWindowingModel_Universal = 1,
AppPolicyWindowingModel_None = 0,
AppPolicyWindowingModel_Universal = 1,
AppPolicyWindowingModel_ClassicDesktop = 2,
AppPolicyWindowingModel_ClassicPhone = 3
AppPolicyWindowingModel_ClassicPhone = 3
} AppPolicyWindowingModel;
typedef struct PACKAGE_VERSION
{
union
{
UINT64 Version;
struct
{
USHORT Revision;
USHORT Build;
USHORT Minor;
USHORT Major;
}
DUMMYSTRUCTNAME;
}
DUMMYUNIONNAME;
}
PACKAGE_VERSION;
typedef struct PACKAGE_ID
{
UINT32 reserved;
UINT32 processorArchitecture;
PACKAGE_VERSION version;
WCHAR *name;
WCHAR *publisher;
WCHAR *resourceId;
WCHAR *publisherId;
}
PACKAGE_ID;
WINBASEAPI
_Check_return_
_Success_(return == ERROR_SUCCESS)

View File

@@ -0,0 +1,42 @@
/*
* Copyright (C) 2023 Paul Gofman for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __IORINGAPI_H_
#define __IORINGAPI_H_
#include <ntioring_x.h>
struct IORING_CAPABILITIES
{
IORING_VERSION MaxVersion;
UINT32 MaxSubmissionQueueSize;
UINT32 MaxCompletionQueueSize;
IORING_FEATURE_FLAGS FeatureFlags;
};
typedef struct IORING_CAPABILITIES IORING_CAPABILITIES;
#ifdef __cplusplus
extern "C" {
#endif
HRESULT WINAPI QueryIoRingCapabilities(IORING_CAPABILITIES *caps);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -11,6 +11,15 @@
extern "C" {
#endif
typedef enum _THREAD_INFORMATION_CLASS
{
ThreadMemoryPriority,
ThreadAbsoluteCpuPriority,
ThreadDynamicCodePolicy,
ThreadPowerThrottling,
ThreadInformationClassMax
} THREAD_INFORMATION_CLASS;
WINBASEAPI
BOOL
WINAPI

View File

@@ -240,6 +240,11 @@ extern "C" {
#define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
#define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x00000008
#if 1//(_WIN32_WINNT >= 0x0600)
#define COPY_FILE_COPY_SYMLINK 0x00000800
#define COPY_FILE_NO_BUFFERING 0x00001000
#endif
#define FILE_FLAG_WRITE_THROUGH 0x80000000
#define FILE_FLAG_OVERLAPPED 0x40000000
#define FILE_FLAG_NO_BUFFERING 0x20000000
@@ -646,7 +651,14 @@ extern "C" {
#define INIT_ONCE_STATIC_INIT RTL_RUN_ONCE_INIT
#if (_WIN32_WINNT >= 0x0600)
#if 1//(_WIN32_WINNT >= 0x0600)
typedef enum _DEP_SYSTEM_POLICY_TYPE {
AlwaysOff = 0,
AlwaysOn = 1,
OptIn = 2,
OptOut = 3
} DEP_SYSTEM_POLICY_TYPE;
#define PROCESS_DEP_ENABLE 0x00000001
#define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 0x00000002
#endif
@@ -1439,7 +1451,7 @@ typedef enum _COMPUTER_NAME_FORMAT {
} COMPUTER_NAME_FORMAT;
#endif /* (_WIN32_WINNT >= 0x0500) */
#if (_WIN32_WINNT >= 0x0600)
#if 1//(_WIN32_WINNT >= 0x0600)
typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
#endif
@@ -1451,25 +1463,54 @@ typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC
#define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000
#define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000
typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
ProcThreadAttributeParentProcess = 0,
ProcThreadAttributeHandleList = 2,
ProcThreadAttributeGroupAffinity = 3,
ProcThreadAttributeIdealProcessor = 5,
ProcThreadAttributeUmsThread = 6,
ProcThreadAttributeMitigationPolicy = 7,
ProcThreadAttributeSecurityCapabilities = 9,
ProcThreadAttributeProtectionLevel = 11,
ProcThreadAttributeJobList = 13,
ProcThreadAttributeChildProcessPolicy = 14,
ProcThreadAttributeAllApplicationPackagesPolicy = 15,
ProcThreadAttributeWin32kFilter = 16,
ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
typedef enum _PROC_THREAD_ATTRIBUTE_NUM
{
ProcThreadAttributeParentProcess = 0,
ProcThreadAttributeExtendedFlags = 1,
ProcThreadAttributeHandleList = 2,
ProcThreadAttributeGroupAffinity = 3,
ProcThreadAttributePreferredNode = 4,
ProcThreadAttributeIdealProcessor = 5,
ProcThreadAttributeUmsThread = 6,
ProcThreadAttributeMitigationPolicy = 7,
ProcThreadAttributeSecurityCapabilities = 9,
ProcThreadAttributeProtectionLevel = 11,
ProcThreadAttributeJobList = 13,
ProcThreadAttributeChildProcessPolicy = 14,
ProcThreadAttributeAllApplicationPackagesPolicy = 15,
ProcThreadAttributeWin32kFilter = 16,
ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
ProcThreadAttributeDesktopAppPolicy = 18,
ProcThreadAttributePseudoConsole = 22,
ProcThreadAttributeMitigationAuditPolicy = 24,
ProcThreadAttributeMachineType = 25,
ProcThreadAttributeComponentFilter = 26,
ProcThreadAttributeEnableOptionalXStateFeatures = 27,
ProcThreadAttributeTrustedApp = 29,
} PROC_THREAD_ATTRIBUTE_NUM;
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS (ProcThreadAttributeParentProcess | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_EXTENDED_FLAGS (ProcThreadAttributeExtendedFlags | PROC_THREAD_ATTRIBUTE_INPUT | PROC_THREAD_ATTRIBUTE_ADDITIVE)
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST (ProcThreadAttributeHandleList | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY (ProcThreadAttributeGroupAffinity | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE (ProcThreadAttributePreferredNode | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_UMS_THREAD (ProcThreadAttributeUmsThread | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY (ProcThreadAttributeMitigationPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES (ProcThreadAttributeSecurityCapabilities | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL (ProcThreadAttributeProtectionLevel | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_JOB_LIST (ProcThreadAttributeJobList | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY (ProcThreadAttributeChildProcessPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY (ProcThreadAttributeAllApplicationPackagesPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER (ProcThreadAttributeWin32kFilter | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY (ProcThreadAttributeDesktopAppPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE (ProcThreadAttributePseudoConsole | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_MITIGATION_AUDIT_POLICY (ProcThreadAttributeMitigationAuditPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_MACHINE_TYPE (ProcThreadAttributeMachineType | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER (ProcThreadAttributeComponentFilter | PROC_THREAD_ATTRIBUTE_INPUT)
#define PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES (ProcThreadAttributeEnableOptionalXStateFeatures | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
typedef DWORD
(WINAPI *PFE_EXPORT_FUNC)(
@@ -1494,7 +1535,7 @@ typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS);
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
typedef void(APIENTRY *PAPCFUNC)(ULONG_PTR);
typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD);
#if (_WIN32_WINNT >= 0x0600)
#if 1//(_WIN32_WINNT >= 0x0600)
typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID);
#endif
@@ -3985,6 +4026,28 @@ typedef BOOL
_Inout_opt_ PVOID Parameter,
_Outptr_opt_result_maybenull_ PVOID *Context);
typedef struct _REASON_CONTEXT
{
ULONG Version;
DWORD Flags;
union
{
struct
{
HMODULE LocalizedReasonModule;
ULONG LocalizedReasonId;
ULONG ReasonStringCount;
LPWSTR *ReasonStrings;
} Detailed;
LPWSTR SimpleReasonString;
} Reason;
} REASON_CONTEXT, *PREASON_CONTEXT;
#define RESOURCE_ENUM_LN 0x0001
#define RESOURCE_ENUM_MUI 0x0002
#define RESOURCE_ENUM_MUI_SYSTEM 0x0004
#define RESOURCE_ENUM_VALIDATE 0x0008
#if _WIN32_WINNT >= 0x0601
#define COPYFILE2_MESSAGE_COPY_OFFLOAD 0x00000001L

View File

@@ -495,7 +495,7 @@ extern "C" {
#define LGRPID_GEORGIAN 16
#define LGRPID_ARMENIAN 17
#if (WINVER >= 0x0500)
#if 1//(WINVER >= 0x0500)
#define LOCALE_SYEARMONTH 0x1006
#define LOCALE_SENGCURRNAME 0x1007
#define LOCALE_SNATIVECURRNAME 0x1008
@@ -513,7 +513,7 @@ extern "C" {
#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
#endif /* (WINVER >= 0x0500) */
#if WINVER >= 0x0600
#if 1//WINVER >= 0x0600
#define IDN_ALLOW_UNASSIGNED 0x1
#define IDN_USE_STD3_ASCII_RULES 0x2
#define VS_ALLOW_LATIN 0x1
@@ -523,7 +523,7 @@ extern "C" {
typedef long LONG_PTR;
#endif
#if (WINVER >= 0x0600)
#if 1//(WINVER >= 0x0600)
#define MUI_FULL_LANGUAGE 0x01
#define MUI_LANGUAGE_ID 0x04
#define MUI_LANGUAGE_NAME 0x08

View File

@@ -467,19 +467,252 @@ NtQueryObject(
_In_ ULONG ObjectInformationLength,
_Out_opt_ PULONG ReturnLength);
typedef enum _SYSTEM_INFORMATION_CLASS
{
typedef enum _SYSTEM_INFORMATION_CLASS {
SystemBasicInformation = 0,
SystemCpuInformation = 1,
SystemPerformanceInformation = 2,
SystemTimeOfDayInformation = 3,
SystemTimeOfDayInformation = 3, /* was SystemTimeInformation */
SystemPathInformation = 4,
SystemProcessInformation = 5,
SystemCallCountInformation = 6,
SystemDeviceInformation = 7,
SystemProcessorPerformanceInformation = 8,
SystemFlagsInformation = 9,
SystemCallTimeInformation = 10,
SystemModuleInformation = 11,
SystemLocksInformation = 12,
SystemStackTraceInformation = 13,
SystemPagedPoolInformation = 14,
SystemNonPagedPoolInformation = 15,
SystemHandleInformation = 16,
SystemObjectInformation = 17,
SystemPageFileInformation = 18,
SystemVdmInstemulInformation = 19,
SystemVdmBopInformation = 20,
SystemFileCacheInformation = 21,
SystemPoolTagInformation = 22,
SystemInterruptInformation = 23,
SystemDpcBehaviorInformation = 24,
SystemFullMemoryInformation = 25,
SystemNotImplemented6 = 25,
SystemLoadGdiDriverInformation = 26,
SystemUnloadGdiDriverInformation = 27,
SystemTimeAdjustmentInformation = 28,
SystemTimeAdjustment = 28,
SystemSummaryMemoryInformation = 29,
SystemMirrorMemoryInformation = 30,
SystemPerformanceTraceInformation = 31,
SystemObsolete0 = 32,
SystemExceptionInformation = 33,
SystemCrashDumpStateInformation = 34,
SystemKernelDebuggerInformation = 35,
SystemContextSwitchInformation = 36,
SystemRegistryQuotaInformation = 37,
SystemExtendServiceTableInformation = 38,
SystemPrioritySeparation = 39,
SystemVerifierAddDriverInformation = 40,
SystemVerifierRemoveDriverInformation = 41,
SystemProcessorIdleInformation = 42,
SystemLegacyDriverInformation = 43,
SystemCurrentTimeZoneInformation = 44,
SystemLookasideInformation = 45,
SystemTimeSlipNotification = 46,
SystemSessionCreate = 47,
SystemSessionDetach = 48,
SystemSessionInformation = 49,
SystemRangeStartInformation = 50,
SystemVerifierInformation = 51,
SystemVerifierThunkExtend = 52,
SystemSessionProcessesInformation = 53,
SystemLoadGdiDriverInSystemSpace = 54,
SystemNumaProcessorMap = 55,
SystemPrefetcherInformation = 56,
SystemExtendedProcessInformation = 57,
SystemRecommendedSharedDataAlignment = 58,
SystemComPlusPackage = 59,
SystemNumaAvailableMemory = 60,
SystemProcessorPowerInformation = 61,
SystemEmulationBasicInformation = 62,
SystemEmulationProcessorInformation = 63,
SystemExtendedHandleInformation = 64,
SystemLostDelayedWriteInformation = 65,
SystemBigPoolInformation = 66,
SystemSessionPoolTagInformation = 67,
SystemSessionMappedViewInformation = 68,
SystemHotpatchInformation = 69,
SystemObjectSecurityMode = 70,
SystemWatchdogTimerHandler = 71,
SystemWatchdogTimerInformation = 72,
SystemLogicalProcessorInformation = 73,
SystemWow64SharedInformationObsolete = 74,
SystemRegisterFirmwareTableInformationHandler = 75,
SystemFirmwareTableInformation = 76,
SystemModuleInformationEx = 77,
SystemVerifierTriageInformation = 78,
SystemSuperfetchInformation = 79,
SystemMemoryListInformation = 80,
SystemFileCacheInformationEx = 81,
SystemThreadPriorityClientIdInformation = 82,
SystemProcessorIdleCycleTimeInformation = 83,
SystemVerifierCancellationInformation = 84,
SystemProcessorPowerInformationEx = 85,
SystemRefTraceInformation = 86,
SystemSpecialPoolInformation = 87,
SystemProcessIdInformation = 88,
SystemErrorPortInformation = 89,
SystemBootEnvironmentInformation = 90,
SystemHypervisorInformation = 91,
SystemVerifierInformationEx = 92,
SystemTimeZoneInformation = 93,
SystemImageFileExecutionOptionsInformation = 94,
SystemCoverageInformation = 95,
SystemPrefetchPatchInformation = 96,
SystemVerifierFaultsInformation = 97,
SystemSystemPartitionInformation = 98,
SystemSystemDiskInformation = 99,
SystemProcessorPerformanceDistribution = 100,
SystemNumaProximityNodeInformation = 101,
SystemDynamicTimeZoneInformation = 102,
SystemCodeIntegrityInformation = 103,
SystemProcessorMicrocodeUpdateInformation = 104,
SystemProcessorBrandString = 105,
SystemVirtualAddressInformation = 106,
SystemLogicalProcessorInformationEx = 107,
SystemProcessorCycleTimeInformation = 108,
SystemStoreInformation = 109,
SystemRegistryAppendString = 110,
SystemAitSamplingValue = 111,
SystemVhdBootInformation = 112,
SystemCpuQuotaInformation = 113,
SystemNativeBasicInformation = 114,
SystemErrorPortTimeouts = 115,
SystemLowPriorityIoInformation = 116,
SystemTpmBootEntropyInformation = 117,
SystemVerifierCountersInformation = 118,
SystemPagedPoolInformationEx = 119,
SystemSystemPtesInformationEx = 120,
SystemNodeDistanceInformation = 121,
SystemAcpiAuditInformation = 122,
SystemBasicPerformanceInformation = 123,
SystemQueryPerformanceCounterInformation = 124,
SystemSessionBigPoolInformation = 125,
SystemBootGraphicsInformation = 126,
SystemScrubPhysicalMemoryInformation = 127,
SystemBadPageInformation = 128,
SystemProcessorProfileControlArea = 129,
SystemCombinePhysicalMemoryInformation = 130,
SystemEntropyInterruptTimingInformation = 131,
SystemConsoleInformation = 132,
SystemPlatformBinaryInformation = 133,
SystemPolicyInformation = 134,
} SYSTEM_INFORMATION_CLASS;
SystemHypervisorProcessorCountInformation = 135,
SystemDeviceDataInformation = 136,
SystemDeviceDataEnumerationInformation = 137,
SystemMemoryTopologyInformation = 138,
SystemMemoryChannelInformation = 139,
SystemBootLogoInformation = 140,
SystemProcessorPerformanceInformationEx = 141,
SystemCriticalProcessErrorLogInformation = 142,
SystemSecureBootPolicyInformation = 143,
SystemPageFileInformationEx = 144,
SystemSecureBootInformation = 145,
SystemEntropyInterruptTimingRawInformation = 146,
SystemPortableWorkspaceEfiLauncherInformation = 147,
SystemFullProcessInformation = 148,
SystemKernelDebuggerInformationEx = 149,
SystemBootMetadataInformation = 150,
SystemSoftRebootInformation = 151,
SystemElamCertificateInformation = 152,
SystemOfflineDumpConfigInformation = 153,
SystemProcessorFeaturesInformation = 154,
SystemRegistryReconciliationInformation = 155,
SystemEdidInformation = 156,
SystemManufacturingInformation = 157,
SystemEnergyEstimationConfigInformation = 158,
SystemHypervisorDetailInformation = 159,
SystemProcessorCycleStatsInformation = 160,
SystemVmGenerationCountInformation = 161,
SystemTrustedPlatformModuleInformation = 162,
SystemKernelDebuggerFlags = 163,
SystemCodeIntegrityPolicyInformation = 164,
SystemIsolatedUserModeInformation = 165,
SystemHardwareSecurityTestInterfaceResultsInformation = 166,
SystemSingleModuleInformation = 167,
SystemAllowedCpuSetsInformation = 168,
SystemVsmProtectionInformation = 169,
SystemInterruptCpuSetsInformation = 170,
SystemSecureBootPolicyFullInformation = 171,
SystemCodeIntegrityPolicyFullInformation = 172,
SystemAffinitizedInterruptProcessorInformation = 173,
SystemRootSiloInformation = 174,
SystemCpuSetInformation = 175,
SystemCpuSetTagInformation = 176,
SystemWin32WerStartCallout = 177,
SystemSecureKernelProfileInformation = 178,
SystemCodeIntegrityPlatformManifestInformation = 179,
SystemInterruptSteeringInformation = 180,
SystemSupportedProcessorArchitectures = 181,
SystemMemoryUsageInformation = 182,
SystemCodeIntegrityCertificateInformation = 183,
SystemPhysicalMemoryInformation = 184,
SystemControlFlowTransition = 185,
SystemKernelDebuggingAllowed = 186,
SystemActivityModerationExeState = 187,
SystemActivityModerationUserSettings = 188,
SystemCodeIntegrityPoliciesFullInformation = 189,
SystemCodeIntegrityUnlockInformation = 190,
SystemIntegrityQuotaInformation = 191,
SystemFlushInformation = 192,
SystemProcessorIdleMaskInformation = 193,
SystemSecureDumpEncryptionInformation = 194,
SystemWriteConstraintInformation = 195,
SystemKernelVaShadowInformation = 196,
SystemHypervisorSharedPageInformation = 197,
SystemFirmwareBootPerformanceInformation = 198,
SystemCodeIntegrityVerificationInformation = 199,
SystemFirmwarePartitionInformation = 200,
SystemSpeculationControlInformation = 201,
SystemDmaGuardPolicyInformation = 202,
SystemEnclaveLaunchControlInformation = 203,
SystemWorkloadAllowedCpuSetsInformation = 204,
SystemCodeIntegrityUnlockModeInformation = 205,
SystemLeapSecondInformation = 206,
SystemFlags2Information = 207,
SystemSecurityModelInformation = 208,
SystemCodeIntegritySyntheticCacheInformation = 209,
SystemFeatureConfigurationInformation = 210,
SystemFeatureConfigurationSectionInformation = 211,
SystemFeatureUsageSubscriptionInformation = 212,
SystemSecureSpeculationControlInformation = 213,
SystemSpacesBootInformation = 214,
SystemFwRamdiskInformation = 215,
SystemWheaIpmiHardwareInformation = 216,
SystemDifSetRuleClassInformation = 217,
SystemDifClearRuleClassInformation = 218,
SystemDifApplyPluginVerificationOnDriver = 219,
SystemDifRemovePluginVerificationOnDriver = 220,
SystemShadowStackInformation = 221,
SystemBuildVersionInformation = 222,
SystemPoolLimitInformation = 223,
SystemCodeIntegrityAddDynamicStore = 224,
SystemCodeIntegrityClearDynamicStores = 225,
SystemDifPoolTrackingInformation = 226,
SystemPoolZeroingInformation = 227,
SystemDpcWatchdogInformation = 228,
SystemDpcWatchdogInformation2 = 229,
SystemSupportedProcessorArchitectures2 = 230,
SystemSingleProcessorRelationshipInformation = 231,
SystemXfgCheckFailureInformation = 232,
SystemIommuStateInformation = 233,
SystemHypervisorMinrootInformation = 234,
SystemHypervisorBootPagesInformation = 235,
SystemPointerAuthInformation = 236,
SystemSecureKernelDebuggerInformation = 237,
SystemOriginalImageFeatureInformation = 238,
#ifdef __WINESRC__
SystemWineVersionInformation = 1000,
#endif
} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
typedef struct _SYSTEM_BASIC_INFORMATION
{

View File

@@ -163,6 +163,50 @@ typedef struct _CLIENT_ID
HANDLE UniqueThread;
} CLIENT_ID, *PCLIENT_ID;
typedef struct
{
UINT next;
UINT id;
ULONGLONG addr;
ULONGLONG size;
UINT args[4];
} CROSS_PROCESS_WORK_ENTRY;
typedef union
{
struct
{
UINT first;
UINT counter;
};
volatile LONGLONG hdr;
} CROSS_PROCESS_WORK_HDR;
typedef struct
{
CROSS_PROCESS_WORK_HDR free_list;
CROSS_PROCESS_WORK_HDR work_list;
ULONGLONG unknown[4];
CROSS_PROCESS_WORK_ENTRY entries[1];
} CROSS_PROCESS_WORK_LIST;
typedef enum
{
CrossProcessPreVirtualAlloc = 0,
CrossProcessPostVirtualAlloc = 1,
CrossProcessPreVirtualFree = 2,
CrossProcessPostVirtualFree = 3,
CrossProcessPreVirtualProtect = 4,
CrossProcessPostVirtualProtect = 5,
CrossProcessFlushCache = 6,
CrossProcessFlushCacheHeavy = 7,
CrossProcessMemoryWrite = 8,
} CROSS_PROCESS_NOTIFICATION;
#define CROSS_PROCESS_LIST_FLUSH 0x80000000
#define CROSS_PROCESS_LIST_ENTRY(list,pos) \
((CROSS_PROCESS_WORK_ENTRY *)((char *)(list) + ((pos) & ~CROSS_PROCESS_LIST_FLUSH)))
typedef struct _CURDIR
{
UNICODE_STRING DosPath;
@@ -507,6 +551,19 @@ typedef enum _FILE_INFORMATION_CLASS {
FileReplaceCompletionInformation,
FileHardLinkFullIdInformation,
FileIdExtdBothDirectoryInformation,
FileDispositionInformationEx,
FileRenameInformationEx,
FileRenameInformationExBypassAccessCheck,
FileDesiredStorageClassInformation,
FileStatInformation,
FileMemoryPartitionInformation,
FileStatLxInformation,
FileCaseSensitiveInformation,
FileLinkInformationEx,
FileLinkInformationExBypassAccessCheck,
FileStorageReserveIdInformation,
FileCaseSensitiveInformationForceAccessCheck,
FileKnownFolderInformation,
FileMaximumInformation
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
@@ -792,6 +849,21 @@ typedef struct _FILE_REPARSE_POINT_INFORMATION {
#define FILE_PIPE_CONNECTED_STATE 0x03
#define FILE_PIPE_CLOSING_STATE 0x04
typedef struct _FILE_OBJECTID_BUFFER
{
BYTE ObjectId[16];
union
{
struct
{
BYTE BirthVolumeId[16];
BYTE BirthObjectId[16];
BYTE DomainId[16];
} DUMMYSTRUCTNAME;
BYTE ExtendedInfo[48];
} DUMMYUNIONNAME;
} FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER;
typedef struct _FILE_ALL_INFORMATION {
FILE_BASIC_INFORMATION BasicInformation;
FILE_STANDARD_INFORMATION StandardInformation;
@@ -1003,7 +1075,7 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
typedef enum _THREADINFOCLASS {
ThreadBasicInformation,
ThreadBasicInformation = 0,
ThreadTimes,
ThreadPriority,
ThreadBasePriority,
@@ -1037,7 +1109,32 @@ typedef enum _THREADINFOCLASS {
ThreadUmsInformation,
ThreadCounterProfiling,
ThreadIdealProcessorEx,
MaxThreadInfoClass
ThreadCpuAccountingInformation,
ThreadSuspendCount,
ThreadHeterogeneousCpuPolicy,
ThreadContainerId,
ThreadNameInformation,
ThreadSelectedCpuSets,
ThreadSystemThreadInformation,
ThreadActualGroupAffinity,
ThreadDynamicCodePolicyInfo,
ThreadExplicitCaseSensitivity,
ThreadWorkOnBehalfTicket,
ThreadSubsystemInformation,
ThreadDbgkWerReportActive,
ThreadAttachContainer,
ThreadManageWritesToExecutableMemory,
ThreadPowerThrottlingState,
ThreadWorkloadClass,
ThreadCreateStateChange,
ThreadApplyStateChange,
ThreadStrongerBadHandleChecks,
ThreadEffectiveIoPriority,
ThreadEffectivePagePriority,
MaxThreadInfoClass,
#ifdef __WINESRC__
ThreadWineNativeThreadName = 1000,
#endif
} THREADINFOCLASS;
typedef struct _THREAD_BASIC_INFORMATION
@@ -2340,6 +2437,173 @@ typedef struct _SYSTEM_MODULE
BYTE Name[MAXIMUM_FILENAME_LENGTH]; /* 1c/28 */
} SYSTEM_MODULE, *PSYSTEM_MODULE;
typedef struct _WOW64_CPURESERVED
{
USHORT Flags;
USHORT Machine;
/* CONTEXT context */
/* CONTEXT_EX *context_ex */
} WOW64_CPURESERVED, *PWOW64_CPURESERVED;
#define WOW64_CPURESERVED_FLAG_RESET_STATE 1
typedef struct _WOW64_CPU_AREA_INFO
{
void *Context;
void *ContextEx;
void *ContextFlagsLocation;
WOW64_CPURESERVED *CpuReserved;
ULONG ContextFlag;
USHORT Machine;
} WOW64_CPU_AREA_INFO, *PWOW64_CPU_AREA_INFO;
typedef struct _RTL_PROCESS_MODULE_INFORMATION
{
PVOID Section; /* 00/00 */
PVOID MappedBaseAddress; /* 04/08 */
PVOID ImageBaseAddress; /* 08/10 */
ULONG ImageSize; /* 0c/18 */
ULONG Flags; /* 10/1c */
WORD LoadOrderIndex; /* 14/20 */
WORD InitOrderIndex; /* 16/22 */
WORD LoadCount; /* 18/24 */
WORD NameOffset; /* 1a/26 */
BYTE Name[MAXIMUM_FILENAME_LENGTH]; /* 1c/28 */
} RTL_PROCESS_MODULE_INFORMATION, *PRTL_PROCESS_MODULE_INFORMATION;
typedef struct _RTL_PROCESS_MODULES
{
ULONG ModulesCount;
RTL_PROCESS_MODULE_INFORMATION Modules[1]; /* FIXME: should be Modules[0] */
} RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES;
#define PROCESS_CREATE_FLAGS_BREAKAWAY 0x00000001
#define PROCESS_CREATE_FLAGS_NO_DEBUG_INHERIT 0x00000002
#define PROCESS_CREATE_FLAGS_INHERIT_HANDLES 0x00000004
#define PROCESS_CREATE_FLAGS_OVERRIDE_ADDRESS_SPACE 0x00000008
#define PROCESS_CREATE_FLAGS_LARGE_PAGES 0x00000010
#define PROCESS_CREATE_FLAGS_LARGE_PAGE_SYSTEM_DLL 0x00000020
#define PROCESS_CREATE_FLAGS_PROTECTED_PROCESS 0x00000040
#define PROCESS_CREATE_FLAGS_CREATE_SESSION 0x00000080
#define PROCESS_CREATE_FLAGS_INHERIT_FROM_PARENT 0x00000100
#define PROCESS_CREATE_FLAGS_SUSPENDED 0x00000200
#define PROCESS_CREATE_FLAGS_EXTENDED_UNKNOWN 0x00000400
typedef struct _RTL_PROCESS_MODULE_INFORMATION_EX
{
USHORT NextOffset;
RTL_PROCESS_MODULE_INFORMATION BaseInfo;
ULONG ImageCheckSum;
ULONG TimeDateStamp;
void *DefaultBase;
} RTL_PROCESS_MODULE_INFORMATION_EX;
#define THREAD_CREATE_FLAGS_CREATE_SUSPENDED 0x00000001
#define THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH 0x00000002
#define THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER 0x00000004
#define THREAD_CREATE_FLAGS_HAS_SECURITY_DESCRIPTOR 0x00000010
#define THREAD_CREATE_FLAGS_ACCESS_CHECK_IN_TARGET 0x00000020
#define THREAD_CREATE_FLAGS_INITIAL_THREAD 0x00000080
#ifdef __WINESRC__
/* Wine-specific exceptions codes */
#define EXCEPTION_WINE_STUB 0x80000100 /* stub entry point called */
#define EXCEPTION_WINE_ASSERTION 0x80000101 /* assertion failed */
/* Wine extension; Windows doesn't have a name for this code. This is an
undocumented exception understood by MS VC debugger, allowing the program
to name a particular thread. */
#define EXCEPTION_WINE_NAME_THREAD 0x406D1388
/* used for C++ exceptions in msvcrt
* parameters:
* [0] CXX_FRAME_MAGIC
* [1] pointer to exception object
* [2] pointer to type
*/
#define EXCEPTION_WINE_CXX_EXCEPTION 0xe06d7363
#define EXCEPTION_WINE_CXX_FRAME_MAGIC 0x19930520
#endif
typedef LONG (CALLBACK *PRTL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS);
typedef void (CALLBACK *PTP_IO_CALLBACK)(PTP_CALLBACK_INSTANCE,void*,void*,IO_STATUS_BLOCK*,PTP_IO);
#define PS_ATTRIBUTE_THREAD 0x00010000
#define PS_ATTRIBUTE_INPUT 0x00020000
#define PS_ATTRIBUTE_ADDITIVE 0x00040000
typedef enum _PS_ATTRIBUTE_NUM
{
PsAttributeParentProcess,
PsAttributeDebugPort,
PsAttributeToken,
PsAttributeClientId,
PsAttributeTebAddress,
PsAttributeImageName,
PsAttributeImageInfo,
PsAttributeMemoryReserve,
PsAttributePriorityClass,
PsAttributeErrorMode,
PsAttributeStdHandleInfo,
PsAttributeHandleList,
PsAttributeGroupAffinity,
PsAttributePreferredNode,
PsAttributeIdealProcessor,
PsAttributeUmsThread,
PsAttributeMitigationOptions,
PsAttributeProtectionLevel,
PsAttributeSecureProcess,
PsAttributeJobList,
PsAttributeChildProcessPolicy,
PsAttributeAllApplicationPackagesPolicy,
PsAttributeWin32kFilter,
PsAttributeSafeOpenPromptOriginClaim,
PsAttributeBnoIsolation,
PsAttributeDesktopAppPolicy,
PsAttributeChpe,
PsAttributeMitigationAuditOptions,
PsAttributeMachineType,
PsAttributeComponentFilter,
PsAttributeEnableOptionalXStateFeatures,
PsAttributeMax
} PS_ATTRIBUTE_NUM;
#define PS_ATTRIBUTE_PARENT_PROCESS (PsAttributeParentProcess | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE)
#define PS_ATTRIBUTE_DEBUG_PORT (PsAttributeDebugPort | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE)
#define PS_ATTRIBUTE_TOKEN (PsAttributeToken | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE)
#define PS_ATTRIBUTE_CLIENT_ID (PsAttributeClientId | PS_ATTRIBUTE_THREAD)
#define PS_ATTRIBUTE_TEB_ADDRESS (PsAttributeTebAddress | PS_ATTRIBUTE_THREAD)
#define PS_ATTRIBUTE_IMAGE_NAME (PsAttributeImageName | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_IMAGE_INFO (PsAttributeImageInfo)
#define PS_ATTRIBUTE_MEMORY_RESERVE (PsAttributeMemoryReserve | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_PRIORITY_CLASS (PsAttributePriorityClass | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_ERROR_MODE (PsAttributeErrorMode | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_STD_HANDLE_INFO (PsAttributeStdHandleInfo | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_HANDLE_LIST (PsAttributeHandleList | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_GROUP_AFFINITY (PsAttributeGroupAffinity | PS_ATTRIBUTE_THREAD | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_PREFERRED_NODE (PsAttributePreferredNode | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_IDEAL_PROCESSOR (PsAttributeIdealProcessor | PS_ATTRIBUTE_THREAD | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_MITIGATION_OPTIONS (PsAttributeMitigationOptions | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_PROTECTION_LEVEL (PsAttributeProtectionLevel | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE)
#define PS_ATTRIBUTE_SECURE_PROCESS (PsAttributeSecureProcess | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_JOB_LIST (PsAttributeJobList | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_CHILD_PROCESS_POLICY (PsAttributeChildProcessPolicy | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY (PsAttributeAllApplicationPackagesPolicy | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_WIN32K_FILTER (PsAttributeWin32kFilter | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_SAFE_OPEN_PROMPT_ORIGIN_CLAIM (PsAttributeSafeOpenPromptOriginClaim | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_BNO_ISOLATION (PsAttributeBnoIsolation | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_DESKTOP_APP_POLICY (PsAttributeDesktopAppPolicy | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_CHPE (PsAttributeChpe | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE)
#define PS_ATTRIBUTE_MITIGATION_AUDIT_OPTIONS (PsAttributeMitigationAuditOptions | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_MACHINE_TYPE (PsAttributeMachineType | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE)
#define PS_ATTRIBUTE_COMPONENT_FILTER (PsAttributeComponentFilter | PS_ATTRIBUTE_INPUT)
#define PS_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES (PsAttributeEnableOptionalXStateFeatures | PS_ATTRIBUTE_THREAD | PS_ATTRIBUTE_INPUT)
typedef struct _SYSTEM_MODULE_INFORMATION
{
ULONG ModulesCount;
@@ -2952,12 +3216,65 @@ NTSYSAPI NTSTATUS WINAPI RtlpNtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRI
NTSYSAPI NTSTATUS WINAPI RtlpNtEnumerateSubKey(HANDLE,UNICODE_STRING *, ULONG);
NTSYSAPI NTSTATUS WINAPI RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *);
NTSYSAPI NTSTATUS WINAPI RtlpUnWaitCriticalSection(RTL_CRITICAL_SECTION *);
NTSYSAPI NTSTATUS WINAPI TpAllocCleanupGroup(TP_CLEANUP_GROUP **);
NTSYSAPI NTSTATUS WINAPI TpAllocIoCompletion(TP_IO **,HANDLE,PTP_IO_CALLBACK,void *,TP_CALLBACK_ENVIRON *);
NTSYSAPI NTSTATUS WINAPI TpAllocPool(TP_POOL **,PVOID);
NTSYSAPI NTSTATUS WINAPI TpAllocTimer(TP_TIMER **,PTP_TIMER_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *);
NTSYSAPI NTSTATUS WINAPI TpAllocWait(TP_WAIT **,PTP_WAIT_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *);
NTSYSAPI NTSTATUS WINAPI TpAllocWork(TP_WORK **,PTP_WORK_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *);
NTSYSAPI void WINAPI TpCallbackLeaveCriticalSectionOnCompletion(TP_CALLBACK_INSTANCE *,RTL_CRITICAL_SECTION *);
NTSYSAPI NTSTATUS WINAPI TpCallbackMayRunLong(TP_CALLBACK_INSTANCE *);
NTSYSAPI void WINAPI TpCallbackReleaseMutexOnCompletion(TP_CALLBACK_INSTANCE *,HANDLE);
NTSYSAPI void WINAPI TpCallbackReleaseSemaphoreOnCompletion(TP_CALLBACK_INSTANCE *,HANDLE,DWORD);
NTSYSAPI void WINAPI TpCallbackSetEventOnCompletion(TP_CALLBACK_INSTANCE *,HANDLE);
NTSYSAPI void WINAPI TpCallbackUnloadDllOnCompletion(TP_CALLBACK_INSTANCE *,HMODULE);
NTSYSAPI void WINAPI TpCancelAsyncIoOperation(TP_IO *);
NTSYSAPI void WINAPI TpDisassociateCallback(TP_CALLBACK_INSTANCE *);
NTSYSAPI BOOL WINAPI TpIsTimerSet(TP_TIMER *);
NTSYSAPI void WINAPI TpPostWork(TP_WORK *);
NTSYSAPI NTSTATUS WINAPI TpQueryPoolStackInformation(TP_POOL *, TP_POOL_STACK_INFORMATION *stack_info);
NTSYSAPI void WINAPI TpReleaseCleanupGroup(TP_CLEANUP_GROUP *);
NTSYSAPI void WINAPI TpReleaseCleanupGroupMembers(TP_CLEANUP_GROUP *,BOOL,PVOID);
NTSYSAPI void WINAPI TpReleaseIoCompletion(TP_IO *);
NTSYSAPI void WINAPI TpReleasePool(TP_POOL *);
NTSYSAPI void WINAPI TpReleaseTimer(TP_TIMER *);
NTSYSAPI void WINAPI TpReleaseWait(TP_WAIT *);
NTSYSAPI void WINAPI TpReleaseWork(TP_WORK *);
NTSYSAPI void WINAPI TpSetPoolMaxThreads(TP_POOL *,DWORD);
NTSYSAPI BOOL WINAPI TpSetPoolMinThreads(TP_POOL *,DWORD);
NTSYSAPI NTSTATUS WINAPI TpSetPoolStackInformation(TP_POOL *, TP_POOL_STACK_INFORMATION *stack_info);
NTSYSAPI void WINAPI TpSetTimer(TP_TIMER *, LARGE_INTEGER *,LONG,LONG);
NTSYSAPI void WINAPI TpSetWait(TP_WAIT *,HANDLE,LARGE_INTEGER *);
NTSYSAPI NTSTATUS WINAPI TpSimpleTryPost(PTP_SIMPLE_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *);
NTSYSAPI void WINAPI TpStartAsyncIoOperation(TP_IO *);
NTSYSAPI void WINAPI TpWaitForIoCompletion(TP_IO *,BOOL);
NTSYSAPI void WINAPI TpWaitForTimer(TP_TIMER *,BOOL);
NTSYSAPI void WINAPI TpWaitForWait(TP_WAIT *,BOOL);
NTSYSAPI void WINAPI TpWaitForWork(TP_WORK *,BOOL);
NTSYSAPI NTSTATUS WINAPI vDbgPrintEx(ULONG,ULONG,LPCSTR,__ms_va_list);
NTSYSAPI NTSTATUS WINAPI vDbgPrintExWithPrefix(LPCSTR,ULONG,ULONG,LPCSTR,__ms_va_list);
/* 32-bit only functions */
#ifndef _WIN64
#ifdef _WIN64
NTSYSAPI void WINAPI RtlOpenCrossProcessEmulatorWorkConnection(HANDLE,HANDLE*,void**);
NTSYSAPI NTSTATUS WINAPI RtlWow64GetCpuAreaInfo(WOW64_CPURESERVED*,ULONG,WOW64_CPU_AREA_INFO*);
NTSYSAPI NTSTATUS WINAPI RtlWow64GetCurrentCpuArea(USHORT*,void**,void**);
NTSYSAPI NTSTATUS WINAPI RtlWow64GetThreadContext(HANDLE,WOW64_CONTEXT*);
NTSYSAPI NTSTATUS WINAPI RtlWow64GetThreadSelectorEntry(HANDLE,THREAD_DESCRIPTOR_INFORMATION*,ULONG,ULONG*);
NTSYSAPI CROSS_PROCESS_WORK_ENTRY * WINAPI RtlWow64PopAllCrossProcessWorkFromWorkList(CROSS_PROCESS_WORK_HDR*,BOOLEAN*);
NTSYSAPI CROSS_PROCESS_WORK_ENTRY * WINAPI RtlWow64PopCrossProcessWorkFromFreeList(CROSS_PROCESS_WORK_HDR*);
NTSYSAPI BOOLEAN WINAPI RtlWow64PushCrossProcessWorkOntoFreeList(CROSS_PROCESS_WORK_HDR*,CROSS_PROCESS_WORK_ENTRY*);
NTSYSAPI BOOLEAN WINAPI RtlWow64PushCrossProcessWorkOntoWorkList(CROSS_PROCESS_WORK_HDR*,CROSS_PROCESS_WORK_ENTRY*,void**);
NTSYSAPI BOOLEAN WINAPI RtlWow64RequestCrossProcessHeavyFlush(CROSS_PROCESS_WORK_HDR*);
NTSYSAPI NTSTATUS WINAPI RtlWow64SetThreadContext(HANDLE,const WOW64_CONTEXT*);
#else
NTSYSAPI NTSTATUS WINAPI NtWow64AllocateVirtualMemory64(HANDLE,ULONG64*,ULONG64,ULONG64*,ULONG,ULONG);
NTSYSAPI NTSTATUS WINAPI NtWow64GetNativeSystemInformation(SYSTEM_INFORMATION_CLASS,void*,ULONG,ULONG*);
NTSYSAPI NTSTATUS WINAPI NtWow64IsProcessorFeaturePresent(UINT);
NTSYSAPI NTSTATUS WINAPI NtWow64QueryInformationProcess64(HANDLE,PROCESSINFOCLASS,void*,ULONG,ULONG*);
NTSYSAPI NTSTATUS WINAPI NtWow64ReadVirtualMemory64(HANDLE,ULONG64,void*,ULONG64,ULONG64*);
NTSYSAPI NTSTATUS WINAPI NtWow64WriteVirtualMemory64(HANDLE,ULONG64,const void*,ULONG64,ULONG64*);
NTSYSAPI LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG);
NTSYSAPI ULONGLONG WINAPI RtlConvertUlongToLargeInteger(ULONG);
NTSYSAPI LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT,INT);
@@ -2966,9 +3283,9 @@ NTSYSAPI UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG,UINT,UINT *);
NTSYSAPI LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG,LONGLONG,INT);
NTSYSAPI LONGLONG WINAPI RtlExtendedIntegerMultiply(LONGLONG,INT);
NTSYSAPI LONGLONG WINAPI RtlExtendedLargeIntegerDivide(LONGLONG,INT,INT *);
NTSYSAPI LONGLONG WINAPI RtlInterlockedCompareExchange64(LONGLONG*,LONGLONG,LONGLONG);
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG,LONGLONG);
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerArithmeticShift(LONGLONG,INT);
NTSYSAPI ULONGLONG WINAPI RtlLargeIntegerDivide( ULONGLONG,ULONGLONG,ULONGLONG *);
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerNegate(LONGLONG);
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerShiftLeft(LONGLONG,INT);
NTSYSAPI LONGLONG WINAPI RtlLargeIntegerShiftRight(LONGLONG,INT);

View File

@@ -134,6 +134,7 @@ list(APPEND SOURCE_VISTA
condvar.c
runonce.c
srw.c
threadpool.c
utf8.c)
add_library(rtl_vista ${SOURCE_VISTA})