/* * 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,(LPHKEY)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; } /****************************************************************************** * NtQueryPerformanceCounter [NTDLL] */ BOOL32 WINAPI NtQueryPerformanceCounter(DWORD x1,DWORD x2) { FIXME(ntdll,"(0x%08lx, 0x%08lx) stub!\n",x1,x2); return 0; } /****************************************************************************** * NtQuerySection [NTDLL] */ NTSTATUS WINAPI NtQuerySection(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; } /****************************************************************************** * NtQuerySecurityObject [NTDLL] */ NTSTATUS WINAPI NtQuerySecurityObject(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; } /****************************************************************************** * NtQuerySemaphore [NTDLL] */ NTSTATUS WINAPI NtQuerySemaphore(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; } /****************************************************************************** * NtEnumerateValueKey [NTDLL] */ NTSTATUS WINAPI NtEnumerateValueKey(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 1; }