From 51505b12b39613d7107dcf899d7d0db71a0b8cc1 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sun, 1 Nov 1998 14:00:21 +0000 Subject: [PATCH] More Nt* and Rtl* function stubs, moved ntdll.c to dlls/ntdll/. --- Makefile.in | 2 + configure | 2 + configure.in | 1 + dlls/Makefile.in | 1 + dlls/ntdll/.cvsignore | 1 + dlls/ntdll/Makefile.in | 17 ++ dlls/ntdll/nt.c | 485 +++++++++++++++++++++++++++++++ misc/ntdll.c => dlls/ntdll/rtl.c | 391 +++++++------------------ include/ntdll.h | 2 + misc/Makefile.in | 1 - relay32/ntdll.spec | 78 ++--- 11 files changed, 653 insertions(+), 328 deletions(-) create mode 100644 dlls/ntdll/.cvsignore create mode 100644 dlls/ntdll/Makefile.in create mode 100644 dlls/ntdll/nt.c rename misc/ntdll.c => dlls/ntdll/rtl.c (72%) diff --git a/Makefile.in b/Makefile.in index 1a5649d69ac..1b73494e944 100644 --- a/Makefile.in +++ b/Makefile.in @@ -31,6 +31,7 @@ LIBSUBDIRS = \ dlls/imagehlp \ dlls/msacm \ dlls/msacm32 \ + dlls/ntdll \ dlls/psapi \ dlls/shell32 \ dlls/winaspi \ @@ -88,6 +89,7 @@ LIBOBJS = \ dlls/imagehlp/imagehlp.o \ dlls/msacm/msacm.o \ dlls/msacm32/msacm32.o \ + dlls/ntdll/ntdll.o \ dlls/psapi/psapi.o \ dlls/shell32/shell32.o \ dlls/winaspi/winaspi.o \ diff --git a/configure b/configure index 8d2328c8676..d90282ac596 100755 --- a/configure +++ b/configure @@ -3537,6 +3537,7 @@ dlls/comctl32/Makefile dlls/imagehlp/Makefile dlls/msacm/Makefile dlls/msacm32/Makefile +dlls/ntdll/Makefile dlls/psapi/Makefile dlls/shell32/Makefile dlls/winaspi/Makefile @@ -3683,6 +3684,7 @@ dlls/comctl32/Makefile dlls/imagehlp/Makefile dlls/msacm/Makefile dlls/msacm32/Makefile +dlls/ntdll/Makefile dlls/psapi/Makefile dlls/shell32/Makefile dlls/winaspi/Makefile diff --git a/configure.in b/configure.in index 76d4d75a757..b134116c87f 100644 --- a/configure.in +++ b/configure.in @@ -488,6 +488,7 @@ dlls/comctl32/Makefile dlls/imagehlp/Makefile dlls/msacm/Makefile dlls/msacm32/Makefile +dlls/ntdll/Makefile dlls/psapi/Makefile dlls/shell32/Makefile dlls/winaspi/Makefile diff --git a/dlls/Makefile.in b/dlls/Makefile.in index 341bfb2ec37..88192d499c9 100644 --- a/dlls/Makefile.in +++ b/dlls/Makefile.in @@ -3,6 +3,7 @@ SUBDIRS = \ imagehlp \ msacm \ msacm32 \ + ntdll \ psapi \ shell32 \ winaspi \ diff --git a/dlls/ntdll/.cvsignore b/dlls/ntdll/.cvsignore new file mode 100644 index 00000000000..f3c7a7c5da6 --- /dev/null +++ b/dlls/ntdll/.cvsignore @@ -0,0 +1 @@ +Makefile diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in new file mode 100644 index 00000000000..ff1ff1898de --- /dev/null +++ b/dlls/ntdll/Makefile.in @@ -0,0 +1,17 @@ +DEFS = @DLLFLAGS@ -D__WINE__ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = ntdll + +C_SRCS = \ + nt.c \ + rtl.c + +all: $(MODULE).o + +@MAKE_RULES@ + +### Dependencies: + diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c new file mode 100644 index 00000000000..721669323db --- /dev/null +++ b/dlls/ntdll/nt.c @@ -0,0 +1,485 @@ +/* + * NT basis DLL + * + * This file contains the Nt* API functions of NTDLL.DLL. + * In the original ntdll.dll they all seem to just call int 0x2e (down to the + * HAL), so parameter counts/parameters are just guesswork from -debugmsg + * +relay. + * + * Copyright 1996-1998 Marcus Meissner + */ + +#include +#include +#include +#include "win.h" +#include "file.h" +#include "windows.h" +#include "winnls.h" +#include "ntdll.h" +#include "heap.h" +#include "debug.h" +#include "module.h" +#include "debugstr.h" +#include "winreg.h" + +/************************************************************************** + * NtOpenFile [NTDLL.127] + */ +NTSTATUS WINAPI NtOpenFile( + DWORD x1, DWORD flags, DWORD x3, DWORD x4, DWORD alignment, DWORD x6 +) { + FIXME(ntdll,"(%08lx,0x%08lx,%08lx,%08lx,%08lx,%08lx): stub\n", + x1,flags,x3,x4,alignment,x6); + return 0; +} + +/************************************************************************** + * NtCreateFile [NTDLL.73] + */ +NTSTATUS WINAPI NtCreateFile( + PHANDLE filehandle, DWORD access, LPLONG attributes, LPLONG status, + LPVOID x5, DWORD x6, DWORD x7, LPLONG x8, DWORD x9, DWORD x10, + LPLONG x11 +) { + FIXME(ntdll,"(%p,%lx,%lx,%lx,%p,%08lx,%08lx,%p,%08lx,%08lx,%p): empty stub\n", + filehandle,access,*attributes,*status,x5,x6,x7,x8,x9,x10,x11); + return 0; +} +/************************************************************************** + * NtCreateTimer [NTDLL.87] + */ +NTSTATUS WINAPI NtCreateTimer(DWORD x1, DWORD x2, DWORD x3) +{ + FIXME(ntdll,"(%08lx,%08lx,%08lx), empty stub\n",x1,x2,x3); + return 0; +} +/************************************************************************** + * NtSetTimer [NTDLL.221] + */ +NTSTATUS WINAPI NtSetTimer(DWORD x1,DWORD x2,DWORD x3,DWORD x4, DWORD x5,DWORD x6) +{ + FIXME(ntdll,"(%08lx,%08lx,%08lx,%08lx,%08lx,%08lx): empty stub\n", + x1,x2,x3,x4,x5,x6); + return 0; +} + +/************************************************************************** + * NtCreateEvent [NTDLL.71] + */ +NTSTATUS WINAPI NtCreateEvent(PHANDLE eventhandle, DWORD desiredaccess, + DWORD attributes, DWORD eventtype, DWORD initialstate) +{ + FIXME(ntdll,"(%p,%08lx,%08lx,%08lx,%08lx): empty stub\n", + eventhandle,desiredaccess,attributes,eventtype,initialstate); + return 0; +} +/************************************************************************** + * NtDeviceIoControlFile [NTDLL.94] + */ +NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE32 filehandle, HANDLE32 event, + DWORD x3, DWORD x4, DWORD x5, UINT32 iocontrolcode, + LPVOID inputbuffer, DWORD inputbufferlength, + LPVOID outputbuffer, DWORD outputbufferlength) +{ + FIXME(ntdll,"(%x,%x,%08lx,%08lx,%08lx,%08x,%lx,%lx): empty stub\n", + filehandle,event,x3,x4,x5,iocontrolcode,inputbufferlength,outputbufferlength); + return 0; +} + +/************************************************************************** + * NtOpenDirectoryObject [NTDLL.124] + */ +NTSTATUS WINAPI NtOpenDirectoryObject(DWORD x1,DWORD x2,LPUNICODE_STRING name) +{ + FIXME(ntdll,"(0x%08lx,0x%08lx,%s): stub\n",x1,x2,debugstr_w(name->Buffer)); + return 0; +} + + +/****************************************************************************** + * NtQueryDirectoryObject [NTDLL.149] + */ +NTSTATUS WINAPI NtQueryDirectoryObject( DWORD x1, DWORD x2, DWORD x3, DWORD x4, + DWORD x5, DWORD x6, DWORD x7 ) +{ + FIXME(ntdll,"(%lx,%lx,%lx,%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4,x5,x6,x7); + return 0xc0000000; /* We don't have any. Whatever. (Yet.) */ +} + +/****************************************************************************** + * NtQuerySystemInformation [NTDLL.168] + */ +NTSTATUS WINAPI NtQuerySystemInformation( DWORD x1, DWORD x2, DWORD x3, DWORD x4 ) +{ + FIXME(ntdll,"(%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * NtQueryObject [NTDLL.161] + */ +NTSTATUS WINAPI NtQueryObject( DWORD x1, DWORD x2 ,DWORD x3, DWORD x4, DWORD x5 ) +{ + FIXME(ntdll,"(0x%lx,%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4,x5); + return 0; +} + + +/****************************************************************************** + * NtSetInformationProcess [NTDLL.207] + */ +NTSTATUS WINAPI NtSetInformationProcess( DWORD x1, DWORD x2, DWORD x3, DWORD x4 ) +{ + FIXME(ntdll,"(%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * NtFsControlFile [NTDLL.108] + */ +NTSTATUS WINAPI NtFsControlFile( + DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8, + DWORD x9,DWORD x10 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx): stub\n",x1,x2,x3,x4,x5,x6,x7,x8,x9,x10); + return 0; +} + +/****************************************************************************** + * NtOpenKey [NTDLL.129] + */ +NTSTATUS WINAPI NtOpenKey(DWORD x1,DWORD x2,LPUNICODE_STRING key) { + FIXME(ntdll,"(0x%08lx,0x%08lx,%s),stub!\n",x1,x2,debugstr_w(key->Buffer)); + return RegOpenKey32W(HKEY_LOCAL_MACHINE,key->Buffer,x1); +} + +/****************************************************************************** + * NtQueryValueKey [NTDLL.129] + */ +NTSTATUS WINAPI NtQueryValueKey(DWORD x1,LPUNICODE_STRING key,DWORD x3,DWORD x4,DWORD x5,DWORD x6) { + FIXME(ntdll,"(%08lx,%s,%08lx,%08lx,%08lx,%08lx),stub!\n", + x1,debugstr_w(key->Buffer),x3,x4,x5,x6 + ); + return 0; +} + +NTSTATUS WINAPI NtQueryTimerResolution(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx), stub!\n",x1,x2,x3); + return 1; +} + +/************************************************************************** + * NtClose [NTDLL.65] + */ +NTSTATUS WINAPI NtClose(DWORD x1) { + FIXME(ntdll,"(0x%08lx),stub!\n",x1); + return 1; +} +/****************************************************************************** +* NtQueryInformationProcess [NTDLL.] +* +*/ +NTSTATUS WINAPI NtQueryInformationProcess(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n", + x1,x2,x3,x4,x5 + ); + return 0; +} +/****************************************************************************** +* NtQueryInformationThread [NTDLL.] +* +*/ +NTSTATUS WINAPI NtQueryInformationThread(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n", + x1,x2,x3,x4,x5 + ); + return 0; +} +/****************************************************************************** +* NtQueryInformationToken [NTDLL.156] +* +*/ +NTSTATUS WINAPI NtQueryInformationToken(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n", + x1,x2,x3,x4,x5 + ); + return 0; +} + +/****************************************************************************** + * NtCreatePagingFile [NTDLL] + */ +NTSTATUS WINAPI NtCreatePagingFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * NtDuplicateObject [NTDLL] + */ +NTSTATUS WINAPI NtDuplicateObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5, + DWORD x6,DWORD x7 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7); + return 0; +} + +/****************************************************************************** + * NtDuplicateToken [NTDLL] + */ +NTSTATUS WINAPI NtDuplicateToken( + DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6); + return 0; +} + +/****************************************************************************** + * NtAdjustPrivilegesToken [NTDLL] + */ +NTSTATUS WINAPI NtAdjustPrivilegesToken( + DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6); + return 0; +} + +/****************************************************************************** + * NtOpenProcessToken [NTDLL] + */ +NTSTATUS WINAPI NtOpenProcessToken(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); + return 0; +} + +/****************************************************************************** + * NtSetInformationThread [NTDLL] + */ +NTSTATUS WINAPI NtSetInformationThread(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * NtOpenThreadToken [NTDLL] + */ +NTSTATUS WINAPI NtOpenThreadToken(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * NtSetVolumeInformationFile [NTDLL] + */ +NTSTATUS WINAPI NtSetVolumeInformationFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4, + DWORD x5 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5); + return 0; +} + +/****************************************************************************** + * NtCreatePort [NTDLL] + */ +NTSTATUS WINAPI NtCreatePort(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5); + return 0; +} + +/****************************************************************************** + * NtSetInformationFile [NTDLL] + */ +NTSTATUS WINAPI NtSetInformationFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx)\n",x1,x2,x3,x4,x5); + return 0; +} + +/****************************************************************************** + * NtSetEvent [NTDLL] + */ +NTSTATUS WINAPI NtSetEvent(DWORD x1,DWORD x2) { + FIXME(ntdll,"(0x%08lx,0x%08lx)\n",x1,x2); + return 0; +} + +/****************************************************************************** + * NtCreateKey [NTDLL] + */ +NTSTATUS WINAPI NtCreateKey(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7); + return 0; +} + +/****************************************************************************** + * NtQueryInformationFile [NTDLL] + */ +NTSTATUS WINAPI NtQueryInformationFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5); + return 0; +} + +/****************************************************************************** + * NtSetValueKey [NTDLL] + */ +NTSTATUS WINAPI NtSetValueKey(DWORD x1,LPUNICODE_STRING key,DWORD x3,DWORD x4,DWORD x5,DWORD x6) { + FIXME(ntdll,"(0x%08lx,%s,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,debugstr_w(key->Buffer),x3,x4,x5,x6); + return 0; +} + +/****************************************************************************** + * NtOpenEvent [NTDLL] + */ +NTSTATUS WINAPI NtOpenEvent(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); + return 0; +} + +/****************************************************************************** + * NtWaitForSingleObject [NTDLL] + */ +NTSTATUS WINAPI NtWaitForSingleObject(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); + return 0; +} + +/****************************************************************************** + * NtConnectPort [NTDLL] + */ +NTSTATUS WINAPI NtConnectPort(DWORD x1,LPUNICODE_STRING uni,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8) { + FIXME(ntdll,"(0x%08lx,%s,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,debugstr_w(uni->Buffer),x3,x4,x5,x6,x7,x8); + return 0; +} + +/****************************************************************************** + * NtListenPort [NTDLL] + */ +NTSTATUS WINAPI NtListenPort(DWORD x1,DWORD x2) { + FIXME(ntdll,"(0x%08lx,0x%08lx),stub!\n",x1,x2); + return 0; +} + +/****************************************************************************** + * NtRequestWaitReplyPort [NTDLL] + */ +NTSTATUS WINAPI NtRequestWaitReplyPort(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); + return 0; +} + +/****************************************************************************** + * NtCreateDirectoryObject [NTDLL] + */ +NTSTATUS WINAPI NtCreateDirectoryObject(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); + return 0; +} + +/****************************************************************************** + * NtMapViewOfSection [NTDLL] + */ +NTSTATUS WINAPI NtMapViewOfSection( + DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7, + DWORD x8,DWORD x9,DWORD x10 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7,x8,x9,x10); + return 0; +} + +/****************************************************************************** + * NtCreateMailSlotFile [NTDLL] + */ +NTSTATUS WINAPI NtCreateMailslotFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7,x8); + return 0; +} + +/****************************************************************************** + * NtReadFile [NTDLL] + */ +NTSTATUS WINAPI NtReadFile( + DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7, + DWORD x8,DWORD x9 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7,x8,x9); + return 0; +} + + +/****************************************************************************** + * NtCreateSection [NTDLL] + */ +NTSTATUS WINAPI NtCreateSection( + DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7 +) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7); + return 0; +} + +/****************************************************************************** + * NtResumeThread [NTDLL] + */ +NTSTATUS WINAPI NtResumeThread(DWORD x1,DWORD x2) { + FIXME(ntdll,"(0x%08lx,0x%08lx),stub!\n",x1,x2); + return 0; +} + +/****************************************************************************** + * NtReplyWaitReceivePort [NTDLL] + */ +NTSTATUS WINAPI NtReplyWaitReceivePort(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * NtAcceptConnectPort [NTDLL] + */ +NTSTATUS WINAPI NtAcceptConnectPort(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6); + return 0; +} + +/****************************************************************************** + * NtCompleteConnectPort [NTDLL] + */ +NTSTATUS WINAPI NtCompleteConnectPort(DWORD x1) { + FIXME(ntdll,"(0x%08lx),stub!\n",x1); + return 0; +} + +/****************************************************************************** + * NtRegisterThreadTerminatePort [NTDLL] + */ +NTSTATUS WINAPI NtRegisterThreadTerminatePort(DWORD x1) { + FIXME(ntdll,"(0x%08lx),stub!\n",x1); + return 0; +} + +/****************************************************************************** + * NtTerminateThread [NTDLL] + */ +NTSTATUS WINAPI NtTerminateThread(HANDLE32 hThread,DWORD exitcode) { + BOOL32 ret = TerminateThread(hThread,exitcode); + + if (ret) + return 0; + return 0xc0000000; /* FIXME: lasterror->ntstatus */ +} + +/****************************************************************************** + * NtSetIntervalProfile [NTDLL] + */ +NTSTATUS WINAPI NtSetIntervalProfile(DWORD x1,DWORD x2) { + FIXME(ntdll,"(0x%08lx,0x%08lx),stub!\n",x1,x2); + return 0; +} + +/****************************************************************************** + * NtOpenSection [NTDLL] + */ +NTSTATUS WINAPI NtOpenSection(DWORD x1,DWORD x2,DWORD x3) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); + return 0; +} + diff --git a/misc/ntdll.c b/dlls/ntdll/rtl.c similarity index 72% rename from misc/ntdll.c rename to dlls/ntdll/rtl.c index 3e863f15813..5e2a2972639 100644 --- a/misc/ntdll.c +++ b/dlls/ntdll/rtl.c @@ -1,7 +1,9 @@ /* * NT basis DLL * - * Copyright 1996 Marcus Meissner + * This file contains the Rtl* API functions. These should be implementable. + * + * Copyright 1996-1998 Marcus Meissner */ #include @@ -10,6 +12,8 @@ #include #include #include "win.h" +#include "stackframe.h" +#include "file.h" #include "windows.h" #include "winnls.h" #include "ntdll.h" @@ -393,6 +397,16 @@ VOID WINAPI RtlFreeUnicodeString(LPUNICODE_STRING str) HeapFree(GetProcessHeap(),0,str->Buffer); } +/************************************************************************** + * RtlFreeAnsiString [NTDLL.373] + */ +VOID WINAPI RtlFreeAnsiString(LPANSI_STRING AnsiString) +{ + if( AnsiString->Buffer ) + HeapFree( GetProcessHeap(),0,AnsiString->Buffer ); +} + + /************************************************************************** * RtlUnicodeToOemN [NTDLL.515] */ @@ -442,6 +456,17 @@ WINAPI RtlUnicodeStringToAnsiString(LPANSI_STRING oem,LPUNICODE_STRING uni,BOOL3 return 0; } +/************************************************************************** + * RtlEqualUnicodeString [NTDLL] + */ +DWORD WINAPI RtlEqualUnicodeString(LPUNICODE_STRING s1,LPUNICODE_STRING s2,DWORD x) { + FIXME(ntdll,"(%s,%s,%ld),stub!\n",debugstr_w(s1->Buffer),debugstr_w(s2->Buffer),x); + return 0; + if (s1->Length != s2->Length) + return 1; + return !lstrncmp32W(s1->Buffer,s2->Buffer,s1->Length/2); +} + /************************************************************************** * RtlNtStatusToDosErro [NTDLL.442] */ @@ -561,142 +586,15 @@ BOOL32 WINAPI RtlDosPathNameToNtPathName_U( return TRUE; } -/************************************************************************** - * NtOpenFile [NTDLL.127] - */ -DWORD WINAPI NtOpenFile(DWORD x1,DWORD flags,DWORD x3,DWORD x4,DWORD alignment,DWORD x6) -{ - FIXME(ntdll,"(%08lx,0x%08lx,%08lx,%08lx,%08lx,%08lx): stub\n", - x1,flags,x3,x4,alignment,x6); - /* returns file io completion status */ - return 0; -} - -/************************************************************************** - * NtCreateFile [NTDLL.73] - */ -DWORD /* NTSTATUS */ -WINAPI NtCreateFile(PHANDLE filehandle,DWORD access,LPLONG attributes, - LPLONG status,LPVOID x5,DWORD x6,DWORD x7, - LPLONG x8,DWORD x9,DWORD x10,LPLONG x11) -{ - /* parameter count checked with wine debugger */ - FIXME(ntdll,"(%p,%lx,%lx,%lx,%p,%08lx,%08lx,%p,%08lx,%08lx,%p): empty stub\n", - filehandle,access,*attributes,*status,x5,x6,x7,x8,x9,x10,x11); - return 0; -} -/************************************************************************** - * NtCreateTimer [NTDLL.87] - */ -DWORD WINAPI NtCreateTimer(DWORD x1, DWORD x2, DWORD x3) -{ - /* parameter count checked (obscure doc from internet said 4, debugger showed only 3) */ - FIXME(ntdll,"(%08lx,%08lx,%08lx): empty stub\n", - x1,x2,x3); - return 0; -} -/************************************************************************** - * NtSetTimer [NTDLL.221] - */ -DWORD WINAPI NtSetTimer(DWORD x1,DWORD x2,DWORD x3,DWORD x4, - DWORD x5,DWORD x6) -{ - /* parameter count checked (obscure doc from internet said 7, debugger showed only 6) */ - FIXME(ntdll,"(%08lx,%08lx,%08lx,%08lx,%08lx,%08lx): empty stub\n", - x1,x2,x3,x4,x5,x6); - return 0; -} - -/************************************************************************** - * NtCreateEvent [NTDLL.71] - */ -DWORD /* NTSTATUS */ -WINAPI NtCreateEvent(PHANDLE eventhandle, DWORD desiredaccess, - DWORD attributes, DWORD eventtype, DWORD initialstate) -{ - /* parameter count checked with wine debugger */ - FIXME(ntdll,"(%p,%08lx,%08lx,%08lx,%08lx): empty stub\n", - eventhandle,desiredaccess,attributes,eventtype,initialstate); - return 0; -} -/************************************************************************** - * NtDeviceIoControlFile [NTDLL.94] - */ -DWORD /* NTSTATUS */ -WINAPI NtDeviceIoControlFile(HANDLE32 filehandle, HANDLE32 event, - DWORD x3, DWORD x4, DWORD x5, UINT32 iocontrolcode, - LPVOID inputbuffer, DWORD inputbufferlength, - LPVOID outputbuffer, DWORD outputbufferlength) -{ - /* parameter count checked with wine debugger */ - FIXME(ntdll,"(%x,%x,%08lx,%08lx,%08lx,%08x,%lx,%lx): empty stub\n", - filehandle,event,x3,x4,x5,iocontrolcode,inputbufferlength,outputbufferlength); - return 0; -} /************************************************************************** * NTDLL_chkstk [NTDLL.862] */ - -VOID WINAPI NTDLL_chkstk (DWORD x1, DWORD x2, DWORD x3, DWORD x4, - DWORD x5, DWORD x6, DWORD x7, DWORD x8, - DWORD x9, DWORD x10) +REGS_ENTRYPOINT(NTDLL_chkstk) { /* FIXME: should subtract %eax bytes from stack pointer */ - FIXME(ntdll, "(void): stub\n"); + FIXME(ntdll, "(eax=%ld): stub\n",EAX_reg(context)); } - -/************************************************************************** - * NtOpenDirectoryObject [NTDLL.124] - */ -DWORD WINAPI NtOpenDirectoryObject(DWORD x1,DWORD x2,DWORD x3) -{ - FIXME(ntdll,"(%lx,%lx,%lx): stub\n",x1,x2,x3); - return 0; -} - - -/****************************************************************************** - * NtQueryDirectoryObject [NTDLL.149] - */ -DWORD WINAPI NtQueryDirectoryObject( DWORD x1, DWORD x2, DWORD x3, DWORD x4, - DWORD x5, DWORD x6, DWORD x7 ) -{ - FIXME(ntdll,"(%lx,%lx,%lx,%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4,x5,x6,x7); - return 0; -} - - -/************************************************************************** - * RtlFreeAnsiString [NTDLL.373] - */ -VOID WINAPI RtlFreeAnsiString(LPANSI_STRING AnsiString) -{ - if( AnsiString->Buffer ) - HeapFree( GetProcessHeap(),0,AnsiString->Buffer ); -} - - -/****************************************************************************** - * NtQuerySystemInformation [NTDLL.168] - */ -DWORD WINAPI NtQuerySystemInformation( DWORD x1, DWORD x2, DWORD x3, DWORD x4 ) -{ - FIXME(ntdll,"(%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4); - return 0; -} - - -/****************************************************************************** - * NtQueryObject [NTDLL.161] - */ -DWORD WINAPI NtQueryObject( DWORD x1, DWORD x2 ,DWORD x3, DWORD x4, DWORD x5 ) -{ - FIXME(ntdll,"(0x%lx,%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4,x5); - return 0; -} - - /****************************************************************************** * RtlTimeToElapsedTimeFields [NTDLL.502] */ @@ -707,23 +605,6 @@ DWORD WINAPI RtlTimeToElapsedTimeFields( DWORD x1, DWORD x2 ) } -/****************************************************************************** - * NtSetInformationProcess [NTDLL.207] - */ -DWORD WINAPI NtSetInformationProcess( DWORD x1, DWORD x2, DWORD x3, DWORD x4 ) -{ - FIXME(ntdll,"(%lx,%lx,%lx,%lx): stub\n",x1,x2,x3,x4); - return 0; -} - -/****************************************************************************** - * NtFsControlFile [NTDLL.108] - */ -VOID WINAPI NtFsControlFile(VOID) -{ - FIXME(ntdll,"(void): stub\n"); -} - /****************************************************************************** * RtlExtendedLargeIntegerDivide [NTDLL.359] */ @@ -761,69 +642,18 @@ WINAPI RtlExtendedIntegerMultiply( #endif } -DWORD WINAPI NtOpenKey(DWORD x1,DWORD x2,LPUNICODE_STRING key) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx(%s)),stub!\n",x1,x2,key,key->Buffer); - return RegOpenKey32W(HKEY_LOCAL_MACHINE,key->Buffer,x1); -} - -DWORD WINAPI NtQueryValueKey(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6) { - FIXME(ntdll,"(%08lx,%08lx,%08lx,%08lx,%08lx,%08lx),stub!\n", - x1,x2,x3,x4,x5,x6 - ); - return 0; -} - -DWORD WINAPI NtQueryTimerResolution(DWORD x1,DWORD x2,DWORD x3) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx), stub!\n",x1,x2,x3); - return 1; -} - -/************************************************************************** - * NtClose [NTDLL.65] +/****************************************************************************** + * RtlFormatCurrentUserKeyPath [NTDLL.371] */ -DWORD WINAPI NtClose(DWORD x1) { - FIXME(ntdll,"(0x%08lx),stub!\n",x1); - return 1; -} -/****************************************************************************** -* NtQueryInformationProcess [NTDLL.] -* -*/ -DWORD WINAPI NtQueryInformationProcess(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n", - x1,x2,x3,x4,x5 - ); - return 0; -} -/****************************************************************************** -* NtQueryInformationThread [NTDLL.] -* -*/ -DWORD WINAPI NtQueryInformationThread(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n", - x1,x2,x3,x4,x5 - ); - return 0; -} -/****************************************************************************** -* NtQueryInformationToken [NTDLL.156] -* -*/ -DWORD WINAPI NtQueryInformationToken(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n", - x1,x2,x3,x4,x5 - ); - return 0; -} -/****************************************************************************** -* RtlFormatCurrentUserKeyPath [NTDLL.371] -* -*/ -DWORD WINAPI RtlFormatCurrentUserKeyPath() +DWORD WINAPI RtlFormatCurrentUserKeyPath(DWORD x) { - FIXME(ntdll,"(): stub\n"); + FIXME(ntdll,"(0x%08lx): stub\n",x); return 1; } + +/****************************************************************************** + * RtlOpenCurrentUser [NTDLL] + */ DWORD WINAPI RtlOpenCurrentUser(DWORD x1, DWORD *x2) { /* Note: this is not the correct solution, @@ -837,9 +667,9 @@ DWORD WINAPI RtlOpenCurrentUser(DWORD x1, DWORD *x2) return FALSE; } /****************************************************************************** -* RtlAllocateAndInitializeSid [NTDLL.265] -* -*/ + * RtlAllocateAndInitializeSid [NTDLL.265] + * + */ BOOL32 WINAPI RtlAllocateAndInitializeSid (LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,DWORD nSubAuthorityCount, DWORD x3,DWORD x4,DWORD x5,DWORD x6,DWORD x7,DWORD x8,DWORD x9,DWORD x10, LPSID pSid) { FIXME(ntdll,"(%p,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,%p),stub!\n", @@ -847,11 +677,11 @@ BOOL32 WINAPI RtlAllocateAndInitializeSid (LPSID_IDENTIFIER_AUTHORITY pIdentifie return 0; } /****************************************************************************** -* RtlEqualSid [NTDLL.352] -* -*/ -DWORD WINAPI RtlEqualSid(DWORD x1,DWORD x2) -{ FIXME(ntdll,"(0x%08lx,0x%08lx),stub!\n", x1,x2); + * RtlEqualSid [NTDLL.352] + * + */ +DWORD WINAPI RtlEqualSid(DWORD x1,DWORD x2) { + FIXME(ntdll,"(0x%08lx,0x%08lx),stub!\n", x1,x2); return TRUE; } @@ -863,14 +693,6 @@ DWORD WINAPI RtlFreeSid(DWORD x1) return TRUE; } -/****************************************************************************** - * NtCreatePagingFile [NTDLL] - */ -DWORD WINAPI NtCreatePagingFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); - return 0; -} - /****************************************************************************** * RtlGetDaclSecurityDescriptor [NTDLL] */ @@ -879,16 +701,6 @@ DWORD WINAPI RtlGetDaclSecurityDescriptor(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { return 0; } -/****************************************************************************** - * NtDuplicateObject [NTDLL] - */ -DWORD WINAPI NtDuplicateObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5, - DWORD x6,DWORD x7 -) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6,x7); - return 0; -} - /****************************************************************************** * RtlCreateEnvironment [NTDLL] */ @@ -897,6 +709,7 @@ DWORD WINAPI RtlCreateEnvironment(DWORD x1,DWORD x2) { return 0; } + /****************************************************************************** * RtlDestroyEnvironment [NTDLL] */ @@ -908,60 +721,16 @@ DWORD WINAPI RtlDestroyEnvironment(DWORD x) { /****************************************************************************** * RtlQueryEnvironmentVariable_U [NTDLL] */ -DWORD WINAPI RtlQueryEnvironmentVariable_U(DWORD x1,DWORD x2,DWORD x3) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); +DWORD WINAPI RtlQueryEnvironmentVariable_U(DWORD x1,LPUNICODE_STRING key,LPUNICODE_STRING val) { + FIXME(ntdll,"(0x%08lx,%s,%p),stub!\n",x1,debugstr_w(key->Buffer),val); return 0; } /****************************************************************************** * RtlSetEnvironmentVariable [NTDLL] */ -DWORD WINAPI RtlSetEnvironmentVariable(DWORD x1,DWORD x2,DWORD x3) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); - return 0; -} - -/****************************************************************************** - * NtDuplicateToken [NTDLL] - */ -DWORD WINAPI NtDuplicateToken( - DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6 -) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6); - return 0; -} - -/****************************************************************************** - * NtAdjustPrivilegesToken [NTDLL] - */ -DWORD WINAPI NtAdjustPrivilegesToken( - DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6 -) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5,x6); - return 0; -} - -/****************************************************************************** - * NtOpenProcessToken [NTDLL] - */ -DWORD WINAPI NtOpenProcessToken(DWORD x1,DWORD x2,DWORD x3) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3); - return 0; -} - -/****************************************************************************** - * NtSetInformationThread [NTDLL] - */ -DWORD WINAPI NtSetInformationThread(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); - return 0; -} - -/****************************************************************************** - * NtOpenThreadToken [NTDLL] - */ -DWORD WINAPI NtOpenThreadToken(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); +DWORD WINAPI RtlSetEnvironmentVariable(DWORD x1,LPUNICODE_STRING key,LPUNICODE_STRING val) { + FIXME(ntdll,"(0x%08lx,%s,%s),stub!\n",x1,debugstr_w(key->Buffer),debugstr_w(val->Buffer)); return 0; } @@ -982,20 +751,66 @@ DWORD WINAPI RtlDeleteSecurityObject(DWORD x1) { } /****************************************************************************** - * NtSetVolumeInformationFile [NTDLL] + * RtlToTimeInSecondsSince1980 [NTDLL] */ -DWORD WINAPI NtSetVolumeInformationFile(DWORD x1,DWORD x2,DWORD x3,DWORD x4, - DWORD x5 -) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5); +BOOL32 WINAPI RtlTimeToSecondsSince1980(LPFILETIME ft,LPDWORD timeret) { + /* 1980 = 1970+10*365 days + 29. februar 1972 + 29.februar 1976 */ + *timeret = DOSFS_FileTimeToUnixTime(ft,NULL) - (10*365+2)*24*3600; + return 1; +} + +/****************************************************************************** + * RtlToTimeInSecondsSince1970 [NTDLL] + */ +BOOL32 WINAPI RtlTimeToSecondsSince1970(LPFILETIME ft,LPDWORD timeret) { + *timeret = DOSFS_FileTimeToUnixTime(ft,NULL); + return 1; +} + +/****************************************************************************** + * RtlAcquirePebLock [NTDLL] + */ +VOID WINAPI RtlAcquirePebLock(void) { + FIXME(ntdll,"()\n"); + /* enter critical section ? */ +} + +/****************************************************************************** + * RtlReleasePebLock [NTDLL] + */ +VOID WINAPI RtlReleasePebLock(void) { + FIXME(ntdll,"()\n"); + /* leave critical section ? */ +} + +/****************************************************************************** + * RtlAddAccessAllowedAce [NTDLL] + */ +DWORD WINAPI RtlAddAccessAllowedAce(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); return 0; } /****************************************************************************** - * NtCreatePort [NTDLL] + * RtlGetAce [NTDLL] */ -DWORD WINAPI NtCreatePort(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { - FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4,x5); +DWORD WINAPI RtlGetAce(LPACL pAcl,DWORD dwAceIndex,LPVOID *pAce ) { + FIXME(ntdll,"(%p,%ld,%p),stub!\n",pAcl,dwAceIndex,pAce); return 0; } +/****************************************************************************** + * RtlAdjustPrivilege [NTDLL] + */ +DWORD WINAPI RtlAdjustPrivilege(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); + return 0; +} + +/****************************************************************************** + * RtlIntegerToChar [NTDLL] + */ +DWORD WINAPI RtlIntegerToChar(DWORD x1,DWORD x2,DWORD x3,DWORD x4) { + FIXME(ntdll,"(0x%08lx,0x%08lx,0x%08lx,0x%08lx),stub!\n",x1,x2,x3,x4); + return 0; +} diff --git a/include/ntdll.h b/include/ntdll.h index 1791a6dc748..2b1120710c5 100644 --- a/include/ntdll.h +++ b/include/ntdll.h @@ -13,6 +13,8 @@ extern "C" { #endif +typedef DWORD NTSTATUS; + /* Security Ids of NT */ /* Moved to windows.h diff --git a/misc/Makefile.in b/misc/Makefile.in index 2ab8f547641..81ed9936943 100644 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -19,7 +19,6 @@ C_SRCS = \ lzexpand.c \ main.c \ network.c \ - ntdll.c \ port.c \ printdrv.c \ registry.c \ diff --git a/relay32/ntdll.spec b/relay32/ntdll.spec index e1f905f6dc8..9477dd412ee 100644 --- a/relay32/ntdll.spec +++ b/relay32/ntdll.spec @@ -51,7 +51,7 @@ type win32 048 stub NPXEMULATORTABLE 049 stub NlsMbCodePageTag 050 stub NlsMbOemCodePageTag -051 stub NtAcceptConnectPort +051 stdcall NtAcceptConnectPort(long long long long long long) NtAcceptConnectPort 052 stub NtAccessCheck 053 stub NtAccessCheckAndAuditAlarm 054 stub NtAdjustGroupsToken @@ -67,23 +67,23 @@ type win32 064 stub NtClearEvent 065 stdcall NtClose(long) NtClose 066 stub NtCloseObjectAuditAlarm -067 stub NtCompleteConnectPort -068 stub NtConnectPort +067 stdcall NtCompleteConnectPort(long) NtCompleteConnectPort +068 stdcall NtConnectPort(long long long long long long long long) NtConnectPort 069 stub NtContinue -070 stub NtCreateDirectoryObject +070 stdcall NtCreateDirectoryObject(long long long) NtCreateDirectoryObject 071 stdcall NtCreateEvent(long long long long long) NtCreateEvent 072 stub NtCreateEventPair 073 stdcall NtCreateFile(ptr long ptr ptr long long long ptr long long ptr) NtCreateFile 074 stub NtCreateIoCompletion -075 stub NtCreateKey -076 stub NtCreateMailslotFile +075 stdcall NtCreateKey(long long long long long long long) NtCreateKey +076 stdcall NtCreateMailslotFile(long long long long long long long long) NtCreateMailslotFile 077 stub NtCreateMutant 078 stub NtCreateNamedPipeFile 079 stdcall NtCreatePagingFile(long long long long) NtCreatePagingFile 080 stdcall NtCreatePort(long long long long long) NtCreatePort 081 stub NtCreateProcess 082 stub NtCreateProfile -083 stub NtCreateSection +083 stdcall NtCreateSection(long long long long long long long) NtCreateSection 084 stub NtCreateSemaphore 085 stub NtCreateSymbolicLinkObject 086 stub NtCreateThread @@ -115,17 +115,17 @@ type win32 112 stub NtImpersonateClientOfPort 113 stub NtImpersonateThread 114 stub NtInitializeRegistry -115 stub NtListenPort +115 stdcall NtListenPort(long long) NtListenPort 116 stub NtLoadDriver 117 stub NtLoadKey 118 stub NtLockFile 119 stub NtLockVirtualMemory 120 stub NtMakeTemporaryObject -121 stub NtMapViewOfSection +121 stdcall NtMapViewOfSection(long long long long long long long long long long) NtMapViewOfSection 122 stub NtNotifyChangeDirectoryFile 123 stub NtNotifyChangeKey 124 stdcall NtOpenDirectoryObject(long long long) NtOpenDirectoryObject -125 stub NtOpenEvent +125 stdcall NtOpenEvent(long long long) NtOpenEvent 126 stub NtOpenEventPair 127 stdcall NtOpenFile(ptr long ptr ptr long long) NtOpenFile 128 stub NtOpenIoCompletion @@ -134,7 +134,7 @@ type win32 131 stub NtOpenObjectAuditAlarm 132 stub NtOpenProcess 133 stdcall NtOpenProcessToken(long long long) NtOpenProcessToken -134 stub NtOpenSection +134 stdcall NtOpenSection(long long long) NtOpenSection 135 stub NtOpenSemaphore 136 stub NtOpenSymbolicLinkObject 137 stub NtOpenThread @@ -152,7 +152,7 @@ type win32 149 stdcall NtQueryDirectoryObject(long long long long long long long) NtQueryDirectoryObject 150 stub NtQueryEaFile 151 stub NtQueryEvent -152 stub NtQueryInformationFile +152 stdcall NtQueryInformationFile(long long long long long) NtQueryInformationFile 153 stub NtQueryInformationPort 154 stdcall NtQueryInformationProcess(long long long long long) NtQueryInformationProcess 155 stdcall NtQueryInformationThread (long long long long long) NtQueryInformationThread @@ -177,40 +177,40 @@ type win32 174 stub NtQueryVolumeInformationFile 175 stub NtRaiseException 176 stub NtRaiseHardError -177 stub NtReadFile +177 stdcall NtReadFile(long long long long long long long long long) NtReadFile 178 stub NtReadRequestData 179 stub NtReadVirtualMemory 180 stub NtRegisterNewDevice -181 stub NtRegisterThreadTerminatePort +181 stdcall NtRegisterThreadTerminatePort(long) NtRegisterThreadTerminatePort 182 stub NtReleaseMutant 183 stub NtReleaseProcessMutant 184 stub NtReleaseSemaphore 185 stub NtRemoveIoCompletion 186 stub NtReplaceKey 187 stub NtReplyPort -188 stub NtReplyWaitReceivePort +188 stdcall NtReplyWaitReceivePort(long long long long) NtReplyWaitReceivePort 189 stub NtReplyWaitReplyPort 190 stub NtRequestPort -191 stub NtRequestWaitReplyPort +191 stdcall NtRequestWaitReplyPort(long long long) NtRequestWaitReplyPort 192 stub NtResetEvent 193 stub NtRestoreKey -194 stub NtResumeThread +194 stdcall NtResumeThread(long long) NtResumeThread 195 stub NtSaveKey 196 stub NtSetContextThread 197 stub NtSetDefaultHardErrorPort 198 stub NtSetDefaultLocale 199 stub NtSetEaFile -200 stub NtSetEvent +200 stdcall NtSetEvent(long long) NtSetEvent 201 stub NtSetHighEventPair 202 stub NtSetHighWaitLowEventPair 203 stub NtSetHighWaitLowThread -204 stub NtSetInformationFile +204 stdcall NtSetInformationFile(long long long long long) NtSetInformationFile 205 stub NtSetInformationKey 206 stub NtSetInformationObject 207 stdcall NtSetInformationProcess(long long long long) NtSetInformationProcess 208 stdcall NtSetInformationThread(long long long long) NtSetInformationThread 209 stub NtSetInformationToken -210 stub NtSetIntervalProfile +210 stdcall NtSetIntervalProfile(long long) NtSetIntervalProfile 211 stub NtSetIoCompletion 212 stub NtSetLdtEntries 213 stub NtSetLowEventPair @@ -223,7 +223,7 @@ type win32 220 stub NtSetSystemTime 221 stdcall NtSetTimer(long long long long long long) NtSetTimer 222 stub NtSetTimerResolution -223 stub NtSetValueKey +223 stdcall NtSetValueKey(long long long long long long) NtSetValueKey 224 stdcall NtSetVolumeInformationFile(long long long long long) NtSetVolumeInformationFile 225 stub NtShutdownSystem 226 stub NtStartProfile @@ -231,7 +231,7 @@ type win32 228 stub NtSuspendThread 229 stub NtSystemDebugControl 230 stub NtTerminateProcess -231 stub NtTerminateThread +231 stdcall NtTerminateThread(long long) NtTerminateThread 232 stub NtTestAlert 233 stub NtUnloadDriver 234 stub NtUnloadKey @@ -242,7 +242,7 @@ type win32 239 stub NtW32Call 240 stub NtWaitForMultipleObjects 241 stub NtWaitForProcessMutant -242 stub NtWaitForSingleObject +242 stdcall NtWaitForSingleObject(long long long) NtWaitForSingleObject 243 stub NtWaitHighEventPair 244 stub NtWaitLowEventPair 245 stub NtWriteFile @@ -255,16 +255,16 @@ type win32 252 stub RestoreEm87Context 253 stub RtlAbortRXact 254 stub RtlAbsoluteToSelfRelativeSD -255 stub RtlAcquirePebLock +255 stdcall RtlAcquirePebLock() RtlAcquirePebLock 256 stub RtlAcquireResourceExclusive 257 stub RtlAcquireResourceShared -258 stub RtlAddAccessAllowedAce +258 stdcall RtlAddAccessAllowedAce(long long long long) RtlAddAccessAllowedAce 259 stub RtlAddAccessDeniedAce 260 stdcall RtlAddAce(ptr long long ptr long) RtlAddAce 261 stub RtlAddActionToRXact 262 stub RtlAddAttributeActionToRXact 263 stub RtlAddAuditAccessAce -264 stub RtlAdjustPrivilege +264 stdcall RtlAdjustPrivilege(long long long long) RtlAdjustPrivilege 265 stdcall RtlAllocateAndInitializeSid (ptr long long long long long long long long long ptr) RtlAllocateAndInitializeSid 266 stdcall RtlAllocateHeap(long long long) HeapAlloc 267 stub RtlAnsiCharToUnicodeChar @@ -333,7 +333,7 @@ type win32 330 stub RtlDeleteResource 331 stdcall RtlDeleteSecurityObject(long) RtlDeleteSecurityObject 332 stdcall RtlDestroyEnvironment(long) RtlDestroyEnvironment -333 stub RtlDestroyHeap +333 stdcall RtlDestroyHeap(long) HeapDestroy 334 stub RtlDestroyProcessParameters 335 stub RtlDestroyQueryDebugBuffer 336 stub RtlDetermineDosPathNameType_U @@ -354,7 +354,7 @@ type win32 351 stub RtlEqualPrefixSid 352 stdcall RtlEqualSid (long long) RtlEqualSid 353 stub RtlEqualString -354 stub RtlEqualUnicodeString +354 stdcall RtlEqualUnicodeString(long long long) RtlEqualUnicodeString 355 stub RtlEraseUnicodeString 356 stub RtlExpandEnvironmentStrings_U 357 stub RtlExtendHeap @@ -379,7 +379,7 @@ type win32 376 stdcall RtlFreeSid (long) RtlFreeSid 377 stdcall RtlFreeUnicodeString(ptr) RtlFreeUnicodeString 378 stub RtlGenerate8dot3Name -379 stub RtlGetAce +379 stdcall RtlGetAce(ptr long ptr) RtlGetAce 380 stub RtlGetCallersAddress 381 stub RtlGetCompressionWorkSpaceSize 382 stub RtlGetControlSecurityDescriptor @@ -412,7 +412,7 @@ type win32 409 stub RtlInitializeResource 410 stdcall RtlInitializeSid(ptr ptr long) RtlInitializeSid 411 stub RtlInsertElementGenericTable -412 stub RtlIntegerToChar +412 stdcall RtlIntegerToChar(long long long long) RtlIntegerToChar 413 stub RtlIntegerToUnicodeString 414 stub RtlIsDosDeviceName_U 415 stub RtlIsGenericTableEmpty @@ -470,7 +470,7 @@ type win32 467 stub RtlReAllocateHeap 468 stub RtlRealPredecessor 469 stub RtlRealSuccessor -470 stub RtlReleasePebLock +470 stdcall RtlReleasePebLock() RtlReleasePebLock 471 stub RtlReleaseResource 472 stub RtlRemoteCall 473 stub RtlResetRtlTranslations @@ -503,8 +503,8 @@ type win32 500 stub RtlSystemTimeToLocalTime 501 stub RtlTimeFieldsToTime 502 stdcall RtlTimeToElapsedTimeFields(long long) RtlTimeToElapsedTimeFields -503 stub RtlTimeToSecondsSince1970 -504 stub RtlTimeToSecondsSince1980 +503 stdcall RtlTimeToSecondsSince1970(ptr ptr) RtlTimeToSecondsSince1970 +504 stdcall RtlTimeToSecondsSince1980(ptr ptr) RtlTimeToSecondsSince1980 505 stub RtlTimeToTimeFields 506 stub RtlUnicodeStringToAnsiSize 507 stdcall RtlUnicodeStringToAnsiString(ptr ptr long) RtlUnicodeStringToAnsiString @@ -570,7 +570,7 @@ type win32 567 stub ZwClose 568 stub ZwCloseObjectAuditAlarm 569 stub ZwCompleteConnectPort -570 stub ZwConnectPort +570 stdcall ZwConnectPort(long long long long long long long long) NtConnectPort 571 stub ZwContinue 572 stub ZwCreateDirectoryObject 573 stub ZwCreateEvent @@ -692,7 +692,7 @@ type win32 689 stub ZwReplyWaitReceivePort 690 stub ZwReplyWaitReplyPort 691 stub ZwRequestPort -692 stub ZwRequestWaitReplyPort +692 stdcall ZwRequestWaitReplyPort(long long long) NtRequestWaitReplyPort 693 stub ZwResetEvent 694 stub ZwRestoreKey 695 stub ZwResumeThread @@ -862,7 +862,7 @@ type win32 859 stub __eFYL2XP1 860 stub __eGetStatusWord 861 stub _alloca_probe -862 cdecl _chkstk() NTDLL_chkstk +862 register _chkstk() NTDLL_chkstk 863 stub _fltused 864 cdecl _ftol(double) CRTDLL__ftol 865 stub _itoa @@ -941,14 +941,14 @@ type win32 938 stub wcscspn 939 cdecl wcslen(wstr) CRTDLL_wcslen 940 stub wcsncat -941 stub wcsncmp +941 cdecl wcsncmp(wstr wstr long) CRTDLL_wcsncmp 942 cdecl wcsncpy(ptr wstr long) CRTDLL_wcsncpy 943 stub wcspbrk 944 cdecl wcsrchr(wstr long) CRTDLL_wcsrchr 945 cdecl wcsspn(wstr wstr) CRTDLL_wcsspn 946 cdecl wcsstr(wstr wstr) CRTDLL_wcsstr -947 stub wcstok -948 stub wcstol +947 cdecl wcstok(wstr wstr) CRTDLL_wcstok +948 cdecl wcstol(wstr ptr long) CRTDLL_wcstol 949 cdecl wcstombs(ptr ptr long) CRTDLL_wcstombs 950 stub wcstoul