Commit 26c9b074 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

Implemented NTDLL atom support.

parent 63342353
...@@ -8,6 +8,7 @@ IMPORTLIB = libntdll.$(IMPLIBEXT) ...@@ -8,6 +8,7 @@ IMPORTLIB = libntdll.$(IMPLIBEXT)
EXTRALIBS = $(LIBUNICODE) @IOKITLIB@ EXTRALIBS = $(LIBUNICODE) @IOKITLIB@
C_SRCS = \ C_SRCS = \
atom.c \
cdrom.c \ cdrom.c \
critsection.c \ critsection.c \
debugbuffer.c \ debugbuffer.c \
......
...@@ -66,6 +66,7 @@ ...@@ -66,6 +66,7 @@
@ stdcall NtAcceptConnectPort(ptr long ptr long long ptr) @ stdcall NtAcceptConnectPort(ptr long ptr long long ptr)
@ stdcall NtAccessCheck(ptr long long ptr ptr ptr ptr ptr) @ stdcall NtAccessCheck(ptr long long ptr ptr ptr ptr ptr)
@ stub NtAccessCheckAndAuditAlarm @ stub NtAccessCheckAndAuditAlarm
@ stdcall NtAddAtom(ptr long ptr)
@ stdcall NtAdjustGroupsToken(long long ptr long ptr ptr) @ stdcall NtAdjustGroupsToken(long long ptr long ptr ptr)
@ stdcall NtAdjustPrivilegesToken(long long long long long long) @ stdcall NtAdjustPrivilegesToken(long long long long long long)
@ stub NtAlertResumeThread @ stub NtAlertResumeThread
...@@ -103,6 +104,7 @@ ...@@ -103,6 +104,7 @@
@ stub NtCreateToken @ stub NtCreateToken
@ stdcall NtCurrentTeb() @ stdcall NtCurrentTeb()
@ stdcall NtDelayExecution(long ptr) @ stdcall NtDelayExecution(long ptr)
@ stdcall NtDeleteAtom(long)
@ stdcall NtDeleteFile(ptr) @ stdcall NtDeleteFile(ptr)
@ stdcall NtDeleteKey(long) @ stdcall NtDeleteKey(long)
@ stdcall NtDeleteValueKey(long ptr) @ stdcall NtDeleteValueKey(long ptr)
...@@ -114,6 +116,7 @@ ...@@ -114,6 +116,7 @@
@ stdcall NtEnumerateKey (long long long long long long) @ stdcall NtEnumerateKey (long long long long long long)
@ stdcall NtEnumerateValueKey (long long long long long long) @ stdcall NtEnumerateValueKey (long long long long long long)
@ stub NtExtendSection @ stub NtExtendSection
@ stdcall NtFindAtom(ptr long ptr)
@ stdcall NtFlushBuffersFile(long ptr) @ stdcall NtFlushBuffersFile(long ptr)
@ stdcall NtFlushInstructionCache(long ptr long) @ stdcall NtFlushInstructionCache(long ptr long)
@ stdcall NtFlushKey(long) @ stdcall NtFlushKey(long)
...@@ -169,6 +172,7 @@ ...@@ -169,6 +172,7 @@
@ stub NtQueryEaFile @ stub NtQueryEaFile
@ stdcall NtQueryEvent(long long ptr long ptr) @ stdcall NtQueryEvent(long long ptr long ptr)
@ stdcall NtQueryFullAttributesFile(ptr ptr) @ stdcall NtQueryFullAttributesFile(ptr ptr)
@ stdcall NtQueryInformationAtom(long long ptr ptr)
@ stdcall NtQueryInformationFile(long ptr ptr long long) @ stdcall NtQueryInformationFile(long ptr ptr long long)
@ stub NtQueryInformationPort @ stub NtQueryInformationPort
@ stdcall NtQueryInformationProcess(long long ptr long ptr) @ stdcall NtQueryInformationProcess(long long ptr long ptr)
...@@ -292,6 +296,7 @@ ...@@ -292,6 +296,7 @@
@ stdcall RtlAddAccessDeniedAceEx(ptr long long long ptr) @ stdcall RtlAddAccessDeniedAceEx(ptr long long long ptr)
@ stdcall RtlAddAce(ptr long long ptr long) @ stdcall RtlAddAce(ptr long long ptr long)
@ stub RtlAddActionToRXact @ stub RtlAddActionToRXact
@ stdcall RtlAddAtomToAtomTable(ptr wstr ptr)
@ stub RtlAddAttributeActionToRXact @ stub RtlAddAttributeActionToRXact
@ stub RtlAddAuditAccessAce @ stub RtlAddAuditAccessAce
@ stdcall RtlAddVectoredExceptionHandler(long ptr) @ stdcall RtlAddVectoredExceptionHandler(long ptr)
...@@ -341,6 +346,7 @@ ...@@ -341,6 +346,7 @@
@ stdcall RtlCopyUnicodeString(ptr ptr) @ stdcall RtlCopyUnicodeString(ptr ptr)
@ stdcall RtlCreateAcl(ptr long long) @ stdcall RtlCreateAcl(ptr long long)
@ stub RtlCreateAndSetSD @ stub RtlCreateAndSetSD
@ stdcall RtlCreateAtomTable(long ptr)
@ stdcall RtlCreateEnvironment(long ptr) @ stdcall RtlCreateEnvironment(long ptr)
@ stdcall RtlCreateHeap(long ptr long long ptr ptr) @ stdcall RtlCreateHeap(long ptr long long ptr ptr)
@ stdcall RtlCreateProcessParameters(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall RtlCreateProcessParameters(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr)
...@@ -364,7 +370,7 @@ ...@@ -364,7 +370,7 @@
@ stub RtlDefaultNpAcl @ stub RtlDefaultNpAcl
@ stub RtlDelete @ stub RtlDelete
@ stdcall RtlDeleteAce(ptr long) @ stdcall RtlDeleteAce(ptr long)
@ stub RtlDeleteAtomFromAtomTable @ stdcall RtlDeleteAtomFromAtomTable(ptr long)
@ stdcall RtlDeleteCriticalSection(ptr) @ stdcall RtlDeleteCriticalSection(ptr)
@ stub RtlDeleteElementGenericTable @ stub RtlDeleteElementGenericTable
@ stub RtlDeleteElementGenericTableAvl @ stub RtlDeleteElementGenericTableAvl
...@@ -374,6 +380,7 @@ ...@@ -374,6 +380,7 @@
@ stdcall RtlDeleteRegistryValue(long ptr ptr) @ stdcall RtlDeleteRegistryValue(long ptr ptr)
@ stdcall RtlDeleteResource(ptr) @ stdcall RtlDeleteResource(ptr)
@ stdcall RtlDeleteSecurityObject(long) @ stdcall RtlDeleteSecurityObject(long)
@ stdcall RtlDestroyAtomTable(ptr)
@ stdcall RtlDestroyEnvironment(ptr) @ stdcall RtlDestroyEnvironment(ptr)
@ stdcall RtlDestroyHandleTable(ptr) @ stdcall RtlDestroyHandleTable(ptr)
@ stdcall RtlDestroyHeap(long) @ stdcall RtlDestroyHeap(long)
...@@ -387,6 +394,7 @@ ...@@ -387,6 +394,7 @@
@ stdcall RtlDowncaseUnicodeString(ptr ptr long) @ stdcall RtlDowncaseUnicodeString(ptr ptr long)
@ stdcall RtlDumpResource(ptr) @ stdcall RtlDumpResource(ptr)
@ stdcall RtlDuplicateUnicodeString(long ptr ptr) @ stdcall RtlDuplicateUnicodeString(long ptr ptr)
@ stdcall RtlEmptyAtomTable(ptr long)
@ stdcall -ret64 RtlEnlargedIntegerMultiply(long long) @ stdcall -ret64 RtlEnlargedIntegerMultiply(long long)
@ stdcall RtlEnlargedUnsignedDivide(long long long ptr) @ stdcall RtlEnlargedUnsignedDivide(long long long ptr)
@ stdcall -ret64 RtlEnlargedUnsignedMultiply(long long) @ stdcall -ret64 RtlEnlargedUnsignedMultiply(long long)
...@@ -507,6 +515,7 @@ ...@@ -507,6 +515,7 @@
@ stdcall RtlLengthSid(ptr) @ stdcall RtlLengthSid(ptr)
@ stdcall RtlLocalTimeToSystemTime(ptr ptr) @ stdcall RtlLocalTimeToSystemTime(ptr ptr)
@ stdcall RtlLockHeap(long) @ stdcall RtlLockHeap(long)
@ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr)
@ stub RtlLookupElementGenericTable @ stub RtlLookupElementGenericTable
@ stdcall RtlMakeSelfRelativeSD(ptr ptr ptr) @ stdcall RtlMakeSelfRelativeSD(ptr ptr ptr)
@ stdcall RtlMapGenericMask(long ptr) @ stdcall RtlMapGenericMask(long ptr)
...@@ -527,10 +536,11 @@ ...@@ -527,10 +536,11 @@
@ stdcall RtlOemToUnicodeN(ptr long ptr ptr long) @ stdcall RtlOemToUnicodeN(ptr long ptr ptr long)
@ stdcall RtlOpenCurrentUser(long ptr) @ stdcall RtlOpenCurrentUser(long ptr)
@ stub RtlPcToFileHeader @ stub RtlPcToFileHeader
@ stdcall RtlPinAtomInAtomTable(ptr long)
@ stdcall RtlPrefixString(ptr ptr long) @ stdcall RtlPrefixString(ptr ptr long)
@ stdcall RtlPrefixUnicodeString(ptr ptr long) @ stdcall RtlPrefixUnicodeString(ptr ptr long)
@ stub RtlProtectHeap @ stub RtlProtectHeap
@ stub RtlQueryAtomInAtomTable @ stdcall RtlQueryAtomInAtomTable(ptr long ptr ptr ptr ptr)
@ stub RtlQueryDepthSList @ stub RtlQueryDepthSList
@ stdcall RtlQueryEnvironmentVariable_U(ptr ptr ptr) @ stdcall RtlQueryEnvironmentVariable_U(ptr ptr ptr)
@ stub RtlQueryHeapInformation @ stub RtlQueryHeapInformation
...@@ -660,6 +670,7 @@ ...@@ -660,6 +670,7 @@
@ stdcall ZwAcceptConnectPort(ptr long ptr long long ptr) NtAcceptConnectPort @ stdcall ZwAcceptConnectPort(ptr long ptr long long ptr) NtAcceptConnectPort
@ stdcall ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck @ stdcall ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck
@ stub ZwAccessCheckAndAuditAlarm @ stub ZwAccessCheckAndAuditAlarm
@ stdcall ZwAddAtom(ptr long ptr) NtAddAtom
@ stdcall ZwAdjustGroupsToken(long long long long long long) NtAdjustGroupsToken @ stdcall ZwAdjustGroupsToken(long long long long long long) NtAdjustGroupsToken
@ stdcall ZwAdjustPrivilegesToken(long long long long long long) NtAdjustPrivilegesToken @ stdcall ZwAdjustPrivilegesToken(long long long long long long) NtAdjustPrivilegesToken
@ stub ZwAlertResumeThread @ stub ZwAlertResumeThread
...@@ -696,6 +707,7 @@ ...@@ -696,6 +707,7 @@
@ stdcall ZwCreateTimer(ptr long ptr long) NtCreateTimer @ stdcall ZwCreateTimer(ptr long ptr long) NtCreateTimer
@ stub ZwCreateToken @ stub ZwCreateToken
@ stdcall ZwDelayExecution(long ptr) NtDelayExecution @ stdcall ZwDelayExecution(long ptr) NtDelayExecution
@ stdcall ZwDeleteAtom(long) NtDeleteAtom
@ stdcall ZwDeleteFile(ptr) NtDeleteFile @ stdcall ZwDeleteFile(ptr) NtDeleteFile
@ stdcall ZwDeleteKey(long) NtDeleteKey @ stdcall ZwDeleteKey(long) NtDeleteKey
@ stdcall ZwDeleteValueKey(long ptr) NtDeleteValueKey @ stdcall ZwDeleteValueKey(long ptr) NtDeleteValueKey
...@@ -707,6 +719,7 @@ ...@@ -707,6 +719,7 @@
@ stdcall ZwEnumerateKey(long long long ptr long ptr) NtEnumerateKey @ stdcall ZwEnumerateKey(long long long ptr long ptr) NtEnumerateKey
@ stdcall ZwEnumerateValueKey(long long long ptr long ptr) NtEnumerateValueKey @ stdcall ZwEnumerateValueKey(long long long ptr long ptr) NtEnumerateValueKey
@ stub ZwExtendSection @ stub ZwExtendSection
@ stdcall ZwFindAtom(ptr long ptr) NtFindAtom
@ stdcall ZwFlushBuffersFile(long ptr) NtFlushBuffersFile @ stdcall ZwFlushBuffersFile(long ptr) NtFlushBuffersFile
@ stdcall ZwFlushInstructionCache(long ptr long) NtFlushInstructionCache @ stdcall ZwFlushInstructionCache(long ptr long) NtFlushInstructionCache
@ stdcall ZwFlushKey(long) NtFlushKey @ stdcall ZwFlushKey(long) NtFlushKey
...@@ -758,6 +771,7 @@ ...@@ -758,6 +771,7 @@
@ stdcall ZwQueryDirectoryObject(long ptr long long long ptr ptr) NtQueryDirectoryObject @ stdcall ZwQueryDirectoryObject(long ptr long long long ptr ptr) NtQueryDirectoryObject
@ stub ZwQueryEaFile @ stub ZwQueryEaFile
@ stdcall ZwQueryEvent(long long ptr long ptr) NtQueryEvent @ stdcall ZwQueryEvent(long long ptr long ptr) NtQueryEvent
@ stdcall ZwQueryInformationAtom(long long ptr ptr) NtQueryInformationAtom
@ stdcall ZwQueryInformationFile(long ptr ptr long long) NtQueryInformationFile @ stdcall ZwQueryInformationFile(long ptr ptr long long) NtQueryInformationFile
@ stub ZwQueryInformationPort @ stub ZwQueryInformationPort
@ stdcall ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess @ stdcall ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess
...@@ -973,15 +987,9 @@ ...@@ -973,15 +987,9 @@
@ cdecl wcstol(wstr ptr long) NTDLL_wcstol @ cdecl wcstol(wstr ptr long) NTDLL_wcstol
@ cdecl wcstombs(ptr ptr long) NTDLL_wcstombs @ cdecl wcstombs(ptr ptr long) NTDLL_wcstombs
@ cdecl wcstoul(wstr ptr long) NTDLL_wcstoul @ cdecl wcstoul(wstr ptr long) NTDLL_wcstoul
@ stub NtAddAtom
@ stub NtDeleteAtom
@ stub NtFindAtom
@ stub NtReadFileScatter @ stub NtReadFileScatter
@ stdcall NtSignalAndWaitForSingleObject(long long long ptr) @ stdcall NtSignalAndWaitForSingleObject(long long long ptr)
@ stub NtWriteFileGather @ stub NtWriteFileGather
@ stub RtlAddAtomToAtomTable
@ stub RtlCreateAtomTable
@ stub RtlLookupAtomInAtomTable
@ stdcall RtlTryEnterCriticalSection(ptr) @ stdcall RtlTryEnterCriticalSection(ptr)
@ stub RtlEnumerateProperties @ stub RtlEnumerateProperties
@ stub RtlSetPropertyClassId @ stub RtlSetPropertyClassId
......
...@@ -1225,6 +1225,26 @@ typedef struct _PORT_MESSAGE_HEADER { ...@@ -1225,6 +1225,26 @@ typedef struct _PORT_MESSAGE_HEADER {
ULONG SectionSize; ULONG SectionSize;
} PORT_MESSAGE_HEADER, *PPORT_MESSAGE_HEADER, PORT_MESSAGE, *PPORT_MESSAGE; } PORT_MESSAGE_HEADER, *PPORT_MESSAGE_HEADER, PORT_MESSAGE, *PPORT_MESSAGE;
typedef unsigned short RTL_ATOM, *PRTL_ATOM;
/* Wine doesn't implement atom table as NT does:
* - in NT, atom tables are user space tables, which ntdll directly accesses
* - on Wine, (even local) atom tables are wineserver object, hence a HANDLE
*/
typedef struct atom_table *RTL_ATOM_TABLE, **PRTL_ATOM_TABLE;
typedef enum _ATOM_INFORMATION_CLASS {
AtomBasicInformation = 0,
AtomTableInformation = 1,
} ATOM_INFORMATION_CLASS;
typedef struct _ATOM_BASIC_INFORMATION {
USHORT ReferenceCount;
USHORT Pinned;
USHORT NameLength;
WCHAR Name[1];
} ATOM_BASIC_INFORMATION, *PATOM_BASIC_INFORMATION;
/* FIXME: names probably not correct */ /* FIXME: names probably not correct */
typedef struct _RTL_HANDLE typedef struct _RTL_HANDLE
{ {
...@@ -1433,6 +1453,7 @@ NTSTATUS WINAPI LdrLoadDll(LPCWSTR, DWORD, const UNICODE_STRING*, HMODULE*); ...@@ -1433,6 +1453,7 @@ NTSTATUS WINAPI LdrLoadDll(LPCWSTR, DWORD, const UNICODE_STRING*, HMODULE*);
void WINAPI LdrShutdownProcess(void); void WINAPI LdrShutdownProcess(void);
void WINAPI LdrShutdownThread(void); void WINAPI LdrShutdownThread(void);
NTSTATUS WINAPI NtAccessCheck(PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,PGENERIC_MAPPING,PPRIVILEGE_SET,PULONG,PULONG,NTSTATUS*); NTSTATUS WINAPI NtAccessCheck(PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,PGENERIC_MAPPING,PPRIVILEGE_SET,PULONG,PULONG,NTSTATUS*);
NTSTATUS WINAPI NtAddAtom(const WCHAR*,ULONG,RTL_ATOM*);
NTSTATUS WINAPI NtAdjustGroupsToken(HANDLE,BOOLEAN,PTOKEN_GROUPS,ULONG,PTOKEN_GROUPS,PULONG); NTSTATUS WINAPI NtAdjustGroupsToken(HANDLE,BOOLEAN,PTOKEN_GROUPS,ULONG,PTOKEN_GROUPS,PULONG);
NTSTATUS WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD); NTSTATUS WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
NTSTATUS WINAPI NtAlertThread(HANDLE ThreadHandle); NTSTATUS WINAPI NtAlertThread(HANDLE ThreadHandle);
...@@ -1453,6 +1474,7 @@ NTSTATUS WINAPI NtCreateSection(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,co ...@@ -1453,6 +1474,7 @@ NTSTATUS WINAPI NtCreateSection(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,co
NTSTATUS WINAPI NtCreateSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,LONG,LONG); NTSTATUS WINAPI NtCreateSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,LONG,LONG);
NTSTATUS WINAPI NtCreateTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*, TIMER_TYPE); NTSTATUS WINAPI NtCreateTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*, TIMER_TYPE);
NTSTATUS WINAPI NtDelayExecution(BOOLEAN,const LARGE_INTEGER*); NTSTATUS WINAPI NtDelayExecution(BOOLEAN,const LARGE_INTEGER*);
NTSTATUS WINAPI NtDeleteAtom(RTL_ATOM);
NTSTATUS WINAPI NtDeleteFile(POBJECT_ATTRIBUTES); NTSTATUS WINAPI NtDeleteFile(POBJECT_ATTRIBUTES);
NTSTATUS WINAPI NtDeleteKey(HKEY); NTSTATUS WINAPI NtDeleteKey(HKEY);
NTSTATUS WINAPI NtDeleteValueKey(HKEY,const UNICODE_STRING *); NTSTATUS WINAPI NtDeleteValueKey(HKEY,const UNICODE_STRING *);
...@@ -1461,6 +1483,7 @@ NTSTATUS WINAPI NtDuplicateObject(HANDLE,HANDLE,HANDLE,PHANDLE,ACCESS_MASK,ULON ...@@ -1461,6 +1483,7 @@ NTSTATUS WINAPI NtDuplicateObject(HANDLE,HANDLE,HANDLE,PHANDLE,ACCESS_MASK,ULON
NTSTATUS WINAPI NtDuplicateToken(HANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE); NTSTATUS WINAPI NtDuplicateToken(HANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
NTSTATUS WINAPI NtEnumerateKey(HKEY,ULONG,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *); NTSTATUS WINAPI NtEnumerateKey(HKEY,ULONG,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *);
NTSTATUS WINAPI NtEnumerateValueKey(HKEY,ULONG,KEY_VALUE_INFORMATION_CLASS,PVOID,ULONG,PULONG); NTSTATUS WINAPI NtEnumerateValueKey(HKEY,ULONG,KEY_VALUE_INFORMATION_CLASS,PVOID,ULONG,PULONG);
NTSTATUS WINAPI NtFindAtom(const WCHAR*,ULONG,RTL_ATOM*);
NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*); NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*);
NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,ULONG); NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,ULONG);
NTSTATUS WINAPI NtFlushKey(HKEY); NTSTATUS WINAPI NtFlushKey(HKEY);
...@@ -1499,6 +1522,7 @@ NTSTATUS WINAPI NtQueryDefaultUILanguage(LANGID*); ...@@ -1499,6 +1522,7 @@ NTSTATUS WINAPI NtQueryDefaultUILanguage(LANGID*);
NTSTATUS WINAPI NtQueryDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS,BOOLEAN,PUNICODE_STRING,BOOLEAN); NTSTATUS WINAPI NtQueryDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS,BOOLEAN,PUNICODE_STRING,BOOLEAN);
NTSTATUS WINAPI NtQueryEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,BOOLEAN,PVOID,ULONG,PVOID,BOOLEAN); NTSTATUS WINAPI NtQueryEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,BOOLEAN,PVOID,ULONG,PVOID,BOOLEAN);
NTSTATUS WINAPI NtQueryFullAttributesFile(const OBJECT_ATTRIBUTES*,FILE_NETWORK_OPEN_INFORMATION*); NTSTATUS WINAPI NtQueryFullAttributesFile(const OBJECT_ATTRIBUTES*,FILE_NETWORK_OPEN_INFORMATION*);
NTSTATUS WINAPI NtQueryInformationAtom(RTL_ATOM,ATOM_INFORMATION_CLASS,RTL_ATOM_TABLE,ULONG,ULONG*);
NTSTATUS WINAPI NtQueryInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,LONG,FILE_INFORMATION_CLASS); NTSTATUS WINAPI NtQueryInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,LONG,FILE_INFORMATION_CLASS);
NTSTATUS WINAPI NtQueryInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG,PULONG); NTSTATUS WINAPI NtQueryInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG,PULONG);
NTSTATUS WINAPI NtQueryInformationThread(HANDLE,THREADINFOCLASS,PVOID,ULONG,PULONG); NTSTATUS WINAPI NtQueryInformationThread(HANDLE,THREADINFOCLASS,PVOID,ULONG,PULONG);
...@@ -1564,6 +1588,7 @@ NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL,DWORD,DWORD,PSID); ...@@ -1564,6 +1588,7 @@ NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID); NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
NTSTATUS WINAPI RtlAddAccessDeniedAce(PACL,DWORD,DWORD,PSID); NTSTATUS WINAPI RtlAddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
NTSTATUS WINAPI RtlAddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID); NTSTATUS WINAPI RtlAddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
NTSTATUS WINAPI RtlAddAtomToAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*);
PVOID WINAPI RtlAddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER); PVOID WINAPI RtlAddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
DWORD WINAPI RtlAdjustPrivilege(DWORD,DWORD,DWORD,DWORD); DWORD WINAPI RtlAdjustPrivilege(DWORD,DWORD,DWORD,DWORD);
NTSTATUS WINAPI RtlAllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *); NTSTATUS WINAPI RtlAllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
...@@ -1597,6 +1622,7 @@ BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID); ...@@ -1597,6 +1622,7 @@ BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID);
void WINAPI RtlCopyString(STRING*,const STRING*); void WINAPI RtlCopyString(STRING*,const STRING*);
void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*); void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*);
NTSTATUS WINAPI RtlCreateAcl(PACL,DWORD,DWORD); NTSTATUS WINAPI RtlCreateAcl(PACL,DWORD,DWORD);
NTSTATUS WINAPI RtlCreateAtomTable(ULONG,RTL_ATOM_TABLE*);
NTSTATUS WINAPI RtlCreateEnvironment(BOOLEAN, PWSTR*); NTSTATUS WINAPI RtlCreateEnvironment(BOOLEAN, PWSTR*);
HANDLE WINAPI RtlCreateHeap(ULONG,PVOID,ULONG,ULONG,PVOID,PRTL_HEAP_DEFINITION); HANDLE WINAPI RtlCreateHeap(ULONG,PVOID,ULONG,ULONG,PVOID,PRTL_HEAP_DEFINITION);
NTSTATUS WINAPI RtlCreateProcessParameters(RTL_USER_PROCESS_PARAMETERS**,const UNICODE_STRING*, NTSTATUS WINAPI RtlCreateProcessParameters(RTL_USER_PROCESS_PARAMETERS**,const UNICODE_STRING*,
...@@ -1610,11 +1636,13 @@ BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR); ...@@ -1610,11 +1636,13 @@ BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR);
NTSTATUS WINAPI RtlCreateUserThread(HANDLE,const SECURITY_DESCRIPTOR*,BOOLEAN,PVOID,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*); NTSTATUS WINAPI RtlCreateUserThread(HANDLE,const SECURITY_DESCRIPTOR*,BOOLEAN,PVOID,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*);
NTSTATUS WINAPI RtlDeleteAce(PACL,DWORD); NTSTATUS WINAPI RtlDeleteAce(PACL,DWORD);
NTSTATUS WINAPI RtlDeleteAtomFromAtomTable(RTL_ATOM_TABLE,RTL_ATOM);
NTSTATUS WINAPI RtlDeleteCriticalSection(RTL_CRITICAL_SECTION *); NTSTATUS WINAPI RtlDeleteCriticalSection(RTL_CRITICAL_SECTION *);
NTSTATUS WINAPI RtlDeleteRegistryValue(ULONG, PCWSTR, PCWSTR); NTSTATUS WINAPI RtlDeleteRegistryValue(ULONG, PCWSTR, PCWSTR);
void WINAPI RtlDeleteResource(LPRTL_RWLOCK); void WINAPI RtlDeleteResource(LPRTL_RWLOCK);
DWORD WINAPI RtlDeleteSecurityObject(DWORD); DWORD WINAPI RtlDeleteSecurityObject(DWORD);
PRTL_USER_PROCESS_PARAMETERS WINAPI RtlDeNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*); PRTL_USER_PROCESS_PARAMETERS WINAPI RtlDeNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*);
NTSTATUS WINAPI RtlDestroyAtomTable(RTL_ATOM_TABLE);
NTSTATUS WINAPI RtlDestroyEnvironment(PWSTR); NTSTATUS WINAPI RtlDestroyEnvironment(PWSTR);
NTSTATUS WINAPI RtlDestroyHandleTable(RTL_HANDLE_TABLE *); NTSTATUS WINAPI RtlDestroyHandleTable(RTL_HANDLE_TABLE *);
HANDLE WINAPI RtlDestroyHeap(HANDLE); HANDLE WINAPI RtlDestroyHeap(HANDLE);
...@@ -1628,6 +1656,7 @@ NTSTATUS WINAPI RtlDowncaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING*, ...@@ -1628,6 +1656,7 @@ NTSTATUS WINAPI RtlDowncaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING*,
void WINAPI RtlDumpResource(LPRTL_RWLOCK); void WINAPI RtlDumpResource(LPRTL_RWLOCK);
NTSTATUS WINAPI RtlDuplicateUnicodeString(int,const UNICODE_STRING*,UNICODE_STRING*); NTSTATUS WINAPI RtlDuplicateUnicodeString(int,const UNICODE_STRING*,UNICODE_STRING*);
NTSTATUS WINAPI RtlEmptyAtomTable(RTL_ATOM_TABLE,BOOLEAN);
LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT,INT); LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT,INT);
ULONGLONG WINAPI RtlEnlargedUnsignedMultiply(UINT,UINT); ULONGLONG WINAPI RtlEnlargedUnsignedMultiply(UINT,UINT);
UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG,UINT,UINT *); UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG,UINT,UINT *);
...@@ -1726,6 +1755,7 @@ ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR); ...@@ -1726,6 +1755,7 @@ ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR);
DWORD WINAPI RtlLengthSid(PSID); DWORD WINAPI RtlLengthSid(PSID);
NTSTATUS WINAPI RtlLocalTimeToSystemTime(const LARGE_INTEGER*,PLARGE_INTEGER); NTSTATUS WINAPI RtlLocalTimeToSystemTime(const LARGE_INTEGER*,PLARGE_INTEGER);
BOOLEAN WINAPI RtlLockHeap(HANDLE); BOOLEAN WINAPI RtlLockHeap(HANDLE);
NTSTATUS WINAPI RtlLookupAtomInAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*);
NTSTATUS WINAPI RtlMakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD); NTSTATUS WINAPI RtlMakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
void WINAPI RtlMapGenericMask(PACCESS_MASK,const GENERIC_MAPPING*); void WINAPI RtlMapGenericMask(PACCESS_MASK,const GENERIC_MAPPING*);
...@@ -1744,9 +1774,11 @@ NTSTATUS WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLE ...@@ -1744,9 +1774,11 @@ NTSTATUS WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLE
NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD); NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
DWORD WINAPI RtlOpenCurrentUser(ACCESS_MASK,PHKEY); DWORD WINAPI RtlOpenCurrentUser(ACCESS_MASK,PHKEY);
NTSTATUS WINAPI RtlPinAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM);
BOOLEAN WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN); BOOLEAN WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN);
BOOLEAN WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); BOOLEAN WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
NTSTATUS WINAPI RtlQueryAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM,ULONG*,ULONG*,WCHAR*,ULONG*);
NTSTATUS WINAPI RtlQueryEnvironmentVariable_U(PWSTR,PUNICODE_STRING,PUNICODE_STRING); NTSTATUS WINAPI RtlQueryEnvironmentVariable_U(PWSTR,PUNICODE_STRING,PUNICODE_STRING);
NTSTATUS WINAPI RtlQueryInformationAcl(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS); NTSTATUS WINAPI RtlQueryInformationAcl(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID); NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment