Hasta la vista ntdll/napi headers

svn path=/trunk/; revision=16281
This commit is contained in:
Alex Ionescu 2005-06-26 06:27:34 +00:00
parent e91e67f144
commit ee15175e82
23 changed files with 8 additions and 1584 deletions

View file

@ -11,7 +11,6 @@
/* INCLUDES ******************************************************************/
#include <ntifs.h>
#include <napi/npipe.h>
#include "npfs.h"
#define NDEBUG

View file

@ -1,68 +0,0 @@
#ifndef __INCLUDE_NAPI_DBG_H
#define __INCLUDE_NAPI_DBG_H
#define DBG_EVENT_EXCEPTION (1)
#define DBG_EVENT_CREATE_THREAD (2)
#define DBG_EVENT_CREATE_PROCESS (3)
#define DBG_EVENT_EXIT_THREAD (4)
#define DBG_EVENT_EXIT_PROCESS (5)
#define DBG_EVENT_LOAD_DLL (6)
#define DBG_EVENT_UNLOAD_DLL (7)
typedef struct _LPC_DBG_MESSAGE
{
LPC_MESSAGE Header;
ULONG Type;
ULONG Status;
union
{
struct
{
EXCEPTION_RECORD ExceptionRecord;
ULONG FirstChance;
} Exception;
struct
{
ULONG Reserved;
PVOID StartAddress;
} CreateThread;
struct
{
ULONG Reserved;
HANDLE FileHandle;
PVOID Base;
ULONG PointerToSymbolTable;
ULONG NumberOfSymbols;
ULONG Reserved2;
PVOID EntryPoint;
} CreateProcess;
struct
{
ULONG ExitCode;
} ExitThread;
struct
{
ULONG ExitCode;
} ExitProcess;
struct
{
HANDLE FileHandle;
PVOID Base;
ULONG PointerToSymbolTable;
ULONG NumberOfSymbols;
} LoadDll;
struct
{
PVOID Base;
} UnloadDll;
} Data;
} LPC_DBG_MESSAGE, *PLPC_DBG_MESSAGE;
typedef struct _LPC_TERMINATION_MESSAGE
{
LPC_MESSAGE Header;
LARGE_INTEGER CreationTime;
} LPC_TERMINATION_MESSAGE, *PLPC_TERMINATION_MESSAGE;
#endif /* __INCLUDE_NAPI_DBG_H */

View file

@ -1,11 +0,0 @@
#ifndef __NAPI_I386_FLOATSAVE_H__
#define __NAPI_I386_FLOATSAVE_H__
#define FLOAT_SAVE_CONTROL (0xFFFF037F)
#define FLOAT_SAVE_STATUS (0xFFFF0000)
#define FLOAT_SAVE_TAG (0xFFFFFFFF)
#define FLOAT_SAVE_DATA (0xFFFF0000)
#endif /* __NAPI_I386_FLOATSAVE_H__ */
/* EOF */

View file

@ -1,12 +0,0 @@
#ifndef _ASM_SEGMENT_H
#define _ASM_SEGMENT_H
#define KERNEL_CS (0x8)
#define KERNEL_DS (0x10)
#define USER_CS (0x18 + 0x3)
#define USER_DS (0x20 + 0x3)
#define RESERVED_FOR_TSS (0x28)
#define PCR_SELECTOR (0x30)
#define TEB_SELECTOR (0x38 + 0x3)
#endif /* _ASM_SEGMENT_H */

View file

@ -1,76 +0,0 @@
#ifndef __INCLUDE_NAPI_NPIPE_H
#define __INCLUDE_NAPI_NPIPE_H
#ifndef __NTDDK_H
#error you must not include <napi/npipe.h> directly, include <ddk/ntddk.h> instead
#endif /* __NTDDK_H */
#define FSCTL_PIPE_ASSIGN_EVENT \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_DISCONNECT \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_LISTEN \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_PEEK \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA)
#define FSCTL_PIPE_QUERY_EVENT \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_TRANSCEIVE \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
#define FSCTL_PIPE_WAIT \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_IMPERSONATE \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_SET_CLIENT_PROCESS \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_QUERY_CLIENT_PROCESS \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_PIPE_INTERNAL_READ \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA)
#define FSCTL_PIPE_INTERNAL_WRITE \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA)
#define FSCTL_PIPE_INTERNAL_TRANSCEIVE \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
#define FSCTL_PIPE_INTERNAL_READ_OVFLOW \
CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
#define FILE_PIPE_BYTE_STREAM_TYPE 0x00000000
#define FILE_PIPE_MESSAGE_TYPE 0x00000001
#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
#define FILE_PIPE_MESSAGE_MODE 0x00000001
#define FILE_PIPE_QUEUE_OPERATION 0x00000000
#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
#define FILE_PIPE_INBOUND 0x00000000
#define FILE_PIPE_OUTBOUND 0x00000001
#define FILE_PIPE_FULL_DUPLEX 0x00000002
#define FILE_PIPE_DISCONNECTED_STATE 0x00000001
#define FILE_PIPE_LISTENING_STATE 0x00000002
#define FILE_PIPE_CONNECTED_STATE 0x00000003
#define FILE_PIPE_CLOSING_STATE 0x00000004
#define FILE_PIPE_CLIENT_END 0x00000000
#define FILE_PIPE_SERVER_END 0x00000001
#define FILE_PIPE_READ_DATA 0x00000000
#define FILE_PIPE_WRITE_SPACE 0x00000001
#endif /* __INCLUDE_NAPI_NPIPE_H */

View file

@ -1,41 +0,0 @@
#ifndef __INCLUDE_NAPI_SHARED_DATA_H
#define __INCLUDE_NAPI_SHARED_DATA_H
#define PF_FLOATING_POINT_PRECISION_ERRATA 0
#define PF_FLOATING_POINT_EMULATED 1
#define PF_COMPARE_EXCHANGE_DOUBLE 2
#define PF_MMX_INSTRUCTIONS_AVAILABLE 3
#define PF_PPC_MOVEMEM_64BIT_OK 4
#define PF_ALPHA_BYTE_INSTRUCTIONS 5
#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
#define PF_PAE_ENABLED 9
#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
/* Values for DosDeviceDriveType */
#define DOSDEVICE_DRIVE_UNKNOWN 0
#define DOSDEVICE_DRIVE_CALCULATE 1
#define DOSDEVICE_DRIVE_REMOVABLE 2
#define DOSDEVICE_DRIVE_FIXED 3
#define DOSDEVICE_DRIVE_REMOTE 4
#define DOSDEVICE_DRIVE_CDROM 5
#define DOSDEVICE_DRIVE_RAMDISK 6
#define KERNEL_SHARED_DATA (0xFFDF0000)
#define USER_SHARED_DATA (0x7FFE0000)
#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__)
#ifdef SharedUserData
#undef SharedUserData
#endif
#define SharedUserData ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA)
#else
#undef SharedUserData
#define SharedUserData ((KUSER_SHARED_DATA * const)USER_SHARED_DATA)
#endif
#define KUSER_SHARED_SYSCALL 0x7FFE0300
#define KUSER_SHARED_SYSCALL_RET 0x7FFE0304
#endif /* __INCLUDE_NAPI_SHARED_DATA_H */

View file

@ -1,214 +0,0 @@
/* TEB/PEB parameters */
#ifndef __INCLUDE_INTERNAL_TEB
#define __INCLUDE_INTERNAL_TEB
#include <napi/types.h>
#ifdef __USE_W32API
#include <w32api.h>
#include <ddk/ntapi.h>
#endif /* !__USE_W32API */
typedef struct _CURDIR
{
UNICODE_STRING DosPath;
PVOID Handle;
} CURDIR, *PCURDIR;
typedef struct RTL_DRIVE_LETTER_CURDIR
{
USHORT Flags;
USHORT Length;
ULONG TimeStamp;
UNICODE_STRING DosPath;
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
typedef struct _PEB_FREE_BLOCK
{
struct _PEB_FREE_BLOCK* Next;
ULONG Size;
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
/* RTL_USER_PROCESS_PARAMETERS.Flags */
#define PPF_NORMALIZED (1)
#define TEB_BASE (0x7FFDE000)
#define PEB_BASE (0x7FFDF000)
typedef struct _PEB_LDR_DATA
{
ULONG Length;
BOOLEAN Initialized;
PVOID SsHandle;
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;
typedef VOID (STDCALL *PPEBLOCKROUTINE)(PVOID);
typedef struct _PEB
{
UCHAR InheritedAddressSpace; /* 00h */
UCHAR ReadImageFileExecOptions; /* 01h */
UCHAR BeingDebugged; /* 02h */
BOOLEAN SpareBool; /* 03h */
HANDLE Mutant; /* 04h */
PVOID ImageBaseAddress; /* 08h */
PPEB_LDR_DATA Ldr; /* 0Ch */
PRTL_USER_PROCESS_PARAMETERS ProcessParameters; /* 10h */
PVOID SubSystemData; /* 14h */
PVOID ProcessHeap; /* 18h */
PVOID FastPebLock; /* 1Ch */
PPEBLOCKROUTINE FastPebLockRoutine; /* 20h */
PPEBLOCKROUTINE FastPebUnlockRoutine; /* 24h */
ULONG EnvironmentUpdateCount; /* 28h */
PVOID* KernelCallbackTable; /* 2Ch */
PVOID EventLogSection; /* 30h */
PVOID EventLog; /* 34h */
PPEB_FREE_BLOCK FreeList; /* 38h */
ULONG TlsExpansionCounter; /* 3Ch */
PVOID TlsBitmap; /* 40h */
ULONG TlsBitmapBits[0x2]; /* 44h */
PVOID ReadOnlySharedMemoryBase; /* 4Ch */
PVOID ReadOnlySharedMemoryHeap; /* 50h */
PVOID* ReadOnlyStaticServerData; /* 54h */
PVOID AnsiCodePageData; /* 58h */
PVOID OemCodePageData; /* 5Ch */
PVOID UnicodeCaseTableData; /* 60h */
ULONG NumberOfProcessors; /* 64h */
ULONG NtGlobalFlag; /* 68h */
LARGE_INTEGER CriticalSectionTimeout; /* 70h */
ULONG HeapSegmentReserve; /* 78h */
ULONG HeapSegmentCommit; /* 7Ch */
ULONG HeapDeCommitTotalFreeThreshold; /* 80h */
ULONG HeapDeCommitFreeBlockThreshold; /* 84h */
ULONG NumberOfHeaps; /* 88h */
ULONG MaximumNumberOfHeaps; /* 8Ch */
PVOID* ProcessHeaps; /* 90h */
PVOID GdiSharedHandleTable; /* 94h */
PVOID ProcessStarterHelper; /* 98h */
PVOID GdiDCAttributeList; /* 9Ch */
PVOID LoaderLock; /* A0h */
ULONG OSMajorVersion; /* A4h */
ULONG OSMinorVersion; /* A8h */
USHORT OSBuildNumber; /* ACh */
USHORT OSCSDVersion; /* AEh */
ULONG OSPlatformId; /* B0h */
ULONG ImageSubSystem; /* B4h */
ULONG ImageSubSystemMajorVersion; /* B8h */
ULONG ImageSubSystemMinorVersion; /* BCh */
ULONG ImageProcessAffinityMask; /* C0h */
ULONG GdiHandleBuffer[0x22]; /* C4h */
PVOID PostProcessInitRoutine; /* 14Ch */
PVOID *TlsExpansionBitmap; /* 150h */
ULONG TlsExpansionBitmapBits[0x20]; /* 154h */
ULONG SessionId; /* 1D4h */
PVOID AppCompatInfo; /* 1D8h */
UNICODE_STRING CSDVersion; /* 1DCh */
} PEB;
typedef struct _GDI_TEB_BATCH
{
ULONG Offset;
ULONG HDC;
ULONG Buffer[0x136];
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
typedef struct _TEB
{
NT_TIB Tib; /* 00h */
PVOID EnvironmentPointer; /* 1Ch */
CLIENT_ID Cid; /* 20h */
PVOID ActiveRpcInfo; /* 28h */
PVOID ThreadLocalStoragePointer; /* 2Ch */
PPEB Peb; /* 30h */
ULONG LastErrorValue; /* 34h */
ULONG CountOfOwnedCriticalSections; /* 38h */
PVOID CsrClientThread; /* 3Ch */
struct _W32THREAD* Win32ThreadInfo; /* 40h */
ULONG Win32ClientInfo[0x1F]; /* 44h */
PVOID WOW32Reserved; /* C0h */
LCID CurrentLocale; /* C4h */
ULONG FpSoftwareStatusRegister; /* C8h */
PVOID SystemReserved1[0x36]; /* CCh */
PVOID Spare1; /* 1A4h */
LONG ExceptionCode; /* 1A8h */
UCHAR SpareBytes1[0x28]; /* 1ACh */
PVOID SystemReserved2[0xA]; /* 1D4h */
GDI_TEB_BATCH GdiTebBatch; /* 1FCh */
ULONG gdiRgn; /* 6DCh */
ULONG gdiPen; /* 6E0h */
ULONG gdiBrush; /* 6E4h */
CLIENT_ID RealClientId; /* 6E8h */
PVOID GdiCachedProcessHandle; /* 6F0h */
ULONG GdiClientPID; /* 6F4h */
ULONG GdiClientTID; /* 6F8h */
PVOID GdiThreadLocaleInfo; /* 6FCh */
PVOID UserReserved[5]; /* 700h */
PVOID glDispatchTable[0x118]; /* 714h */
ULONG glReserved1[0x1A]; /* B74h */
PVOID glReserved2; /* BDCh */
PVOID glSectionInfo; /* BE0h */
PVOID glSection; /* BE4h */
PVOID glTable; /* BE8h */
PVOID glCurrentRC; /* BECh */
PVOID glContext; /* BF0h */
NTSTATUS LastStatusValue; /* BF4h */
UNICODE_STRING StaticUnicodeString; /* BF8h */
WCHAR StaticUnicodeBuffer[0x105]; /* C00h */
PVOID DeallocationStack; /* E0Ch */
PVOID TlsSlots[0x40]; /* E10h */
LIST_ENTRY TlsLinks; /* F10h */
PVOID Vdm; /* F18h */
PVOID ReservedForNtRpc; /* F1Ch */
PVOID DbgSsReserved[0x2]; /* F20h */
ULONG HardErrorDisabled; /* F28h */
PVOID Instrumentation[0x10]; /* F2Ch */
PVOID WinSockData; /* F6Ch */
ULONG GdiBatchCount; /* F70h */
USHORT Spare2; /* F74h */
BOOLEAN IsFiber; /* F76h */
UCHAR Spare3; /* F77h */
ULONG Spare4; /* F78h */
ULONG Spare5; /* F7Ch */
PVOID ReservedForOle; /* F80h */
ULONG WaitingOnLoaderLock; /* F84h */
ULONG Unknown[11]; /* F88h */
PVOID FlsSlots; /* FB4h */
PVOID WineDebugInfo; /* Needed for WINE DLL's */
} TEB, *PTEB;
#ifdef _M_IX86
static inline struct _PEB * NtCurrentPeb(void)
{
struct _PEB * pPeb;
#if defined(__GNUC__)
__asm__ __volatile__
(
"movl %%fs:0x30, %0\n" /* fs:30h == Teb->Peb */
: "=r" (pPeb) /* can't have two memory operands */
: /* no inputs */
);
#elif defined(_MSC_VER)
__asm mov eax, fs:0x30;
__asm mov pPeb, eax
#else
#error Unknown compiler for inline assembler
#endif
return pPeb;
}
#else
/* generic NtCurrentPeb() */
#define NtCurrentPeb() (NtCurrentTeb()->Peb)
#endif
#endif /* __INCLUDE_INTERNAL_TEB */

View file

@ -1,19 +0,0 @@
#ifndef __INCLUDE_NAPI_TYPES_H
#define __INCLUDE_NAPI_TYPES_H
/* these should be moved to a file like ntdef.h */
/*
* General type for status information
*/
#ifndef __USE_W32API
typedef enum _NT_PRODUCT_TYPE
{
NtProductWinNt = 1,
NtProductLanManNt,
NtProductServer
} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
#endif
typedef ULARGE_INTEGER TIME, *PTIME;
#endif /* __INCLUDE_NAPI_TYPES_H */

View file

@ -1 +0,0 @@
#define NTDLL_BASE (0x77f60000)

View file

@ -1,38 +0,0 @@
/* $Id$
*
*/
#ifndef __INCLUDE_NTDLL_CSR_H
#define __INCLUDE_NTDLL_CSR_H
#include <csrss/csrss.h>
extern HANDLE WindowsApiPort; /* lpc.c */
NTSTATUS STDCALL CsrClientConnectToServer(VOID);
NTSTATUS STDCALL CsrClientCallServer(PCSRSS_API_REQUEST Request,
PCSRSS_API_REPLY Reply OPTIONAL,
ULONG Length,
ULONG ReplyLength);
NTSTATUS STDCALL CsrIdentifyAlertableThread(VOID);
NTSTATUS STDCALL CsrNewThread(VOID);
NTSTATUS STDCALL CsrSetPriorityClass(HANDLE Process,
PULONG PriorityClass);
VOID STDCALL CsrProbeForRead(IN CONST PVOID Address,
IN ULONG Length,
IN ULONG Alignment);
VOID STDCALL CsrProbeForWrite(IN CONST PVOID Address,
IN ULONG Length,
IN ULONG Alignment);
NTSTATUS STDCALL
CsrCaptureParameterBuffer(PVOID ParameterBuffer,
ULONG ParameterBufferSize,
PVOID* ClientAddress,
PVOID* ServerAddress);
NTSTATUS STDCALL
CsrReleaseParameterBuffer(PVOID ClientAddress);
#endif /* __INCLUDE_NTDLL_CSR_H */
/* EOF */

View file

@ -1,43 +0,0 @@
/* $Id$
*
*/
#ifndef __INCLUDE_NTDLL_DBG_H
#define __INCLUDE_NTDLL_DBG_H
NTSTATUS
STDCALL
DbgSsInitialize (
HANDLE ReplyPort,
ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3
);
NTSTATUS
STDCALL
DbgUiConnectToDbg (
VOID
);
NTSTATUS
STDCALL
DbgUiContinue (
PCLIENT_ID ClientId,
ULONG ContinueStatus
);
NTSTATUS
STDCALL
DbgUiWaitStateChange (
ULONG Unknown1,
ULONG Unknown2
);
NTSTATUS STDCALL DbgUiRemoteBreakin(VOID);
NTSTATUS STDCALL DbgUiIssueRemoteBreakin(HANDLE Process);
#endif /* __INCLUDE_NTDLL_DBG_H */
/* EOF */

View file

@ -1,178 +0,0 @@
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
#define __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
#include <roscfg.h>
#ifndef _NTNDK_
#include <napi/teb.h>
#endif
#include <reactos/rossym.h>
typedef NTSTATUS (STDCALL *PEPFUNC)(PPEB);
/* Type for a DLL's entry point */
typedef BOOL
(STDCALL *PDLLMAIN_FUNC)(HANDLE hInst,
ULONG ul_reason_for_call,
LPVOID lpReserved);
#if defined(__USE_W32API) || defined(__NTDLL__)
/*
* Fu***ng headers hell made me do this...i'm sick of it
*/
typedef struct _LOCK_INFORMATION
{
ULONG LockCount;
DEBUG_LOCK_INFORMATION LockEntry[1];
} LOCK_INFORMATION, *PLOCK_INFORMATION;
typedef struct _HEAP_INFORMATION
{
ULONG HeapCount;
DEBUG_HEAP_INFORMATION HeapEntry[1];
} HEAP_INFORMATION, *PHEAP_INFORMATION;
typedef struct _MODULE_INFORMATION
{
ULONG ModuleCount;
DEBUG_MODULE_INFORMATION ModuleEntry[1];
} MODULE_INFORMATION, *PMODULE_INFORMATION;
NTSTATUS STDCALL
LdrQueryProcessModuleInformation(IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
IN ULONG Size OPTIONAL,
OUT PULONG ReturnedSize);
#endif /* __USE_W32API */
/* Module flags */
#define IMAGE_DLL 0x00000004
#define LOAD_IN_PROGRESS 0x00001000
#define UNLOAD_IN_PROGRESS 0x00002000
#define ENTRY_PROCESSED 0x00004000
#define DONT_CALL_FOR_THREAD 0x00040000
#define PROCESS_ATTACH_CALLED 0x00080000
#define IMAGE_NOT_AT_BASE 0x00200000
typedef struct _LDR_DATA_TABLE_ENTRY
{
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
PVOID DllBase;
PVOID EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
ULONG Flags;
USHORT LoadCount;
USHORT TlsIndex;
LIST_ENTRY HashLinks;
PVOID SectionPointer;
ULONG CheckSum;
ULONG TimeDateStamp;
PVOID LoadedImports;
PVOID EntryPointActivationContext;
PVOID PatchInformation;
#if defined(DBG) || defined(KDBG)
PROSSYM_INFO RosSymInfo; /* FIXME: THIS _REALLY_ NEEDS TO GO (TLS?)!!! */
#endif /* KDBG */
} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
typedef struct _LDR_SYMBOL_INFO {
PLDR_DATA_TABLE_ENTRY ModuleObject;
ULONG_PTR ImageBase;
PVOID SymbolsBuffer;
ULONG SymbolsBufferLength;
PVOID SymbolStringsBuffer;
ULONG SymbolStringsBufferLength;
} LDR_SYMBOL_INFO, *PLDR_SYMBOL_INFO;
#define RVA(m, b) ((ULONG)b + m)
#if defined(KDBG) || defined(DBG)
VOID
LdrpLoadUserModuleSymbols(PLDR_DATA_TABLE_ENTRY LdrModule);
#endif
ULONG
LdrpGetResidentSize(PIMAGE_NT_HEADERS NTHeaders);
PEPFUNC LdrPEStartup (PVOID ImageBase,
HANDLE SectionHandle,
PLDR_DATA_TABLE_ENTRY* Module,
PWSTR FullDosName);
NTSTATUS LdrMapSections(HANDLE ProcessHandle,
PVOID ImageBase,
HANDLE SectionHandle,
PIMAGE_NT_HEADERS NTHeaders);
NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle,
PHANDLE NTDllSectionHandle);
BOOLEAN LdrMappedAsDataFile(PVOID *BaseAddress);
NTSTATUS STDCALL
LdrDisableThreadCalloutsForDll(IN PVOID BaseAddress);
NTSTATUS STDCALL
LdrGetDllHandle(IN PWCHAR Path OPTIONAL,
IN ULONG Unknown2,
IN PUNICODE_STRING DllName,
OUT PVOID *BaseAddress);
NTSTATUS STDCALL
LdrFindEntryForAddress(IN PVOID Address,
OUT PLDR_DATA_TABLE_ENTRY *Module);
NTSTATUS STDCALL
LdrGetProcedureAddress(IN PVOID BaseAddress,
IN PANSI_STRING Name,
IN ULONG Ordinal,
OUT PVOID *ProcedureAddress);
VOID STDCALL
LdrInitializeThunk(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4);
NTSTATUS STDCALL
LdrLoadDll(IN PWSTR SearchPath OPTIONAL,
IN ULONG LoadFlags,
IN PUNICODE_STRING Name,
OUT PVOID *BaseAddress OPTIONAL);
PIMAGE_BASE_RELOCATION STDCALL
LdrProcessRelocationBlock(IN PVOID Address,
IN USHORT Count,
IN PUSHORT TypeOffset,
IN ULONG_PTR Delta);
NTSTATUS STDCALL
LdrQueryImageFileExecutionOptions (IN PUNICODE_STRING SubKey,
IN PCWSTR ValueName,
IN ULONG ValueSize,
OUT PVOID Buffer,
IN ULONG BufferSize,
OUT PULONG RetunedLength OPTIONAL);
NTSTATUS STDCALL
LdrShutdownProcess(VOID);
NTSTATUS STDCALL
LdrShutdownThread(VOID);
NTSTATUS STDCALL
LdrUnloadDll(IN PVOID BaseAddress);
NTSTATUS STDCALL
LdrVerifyImageMatchesChecksum (IN HANDLE FileHandle,
ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3);
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_LDR_H */
/* EOF */

View file

@ -1,29 +0,0 @@
#ifndef _NTNDK_
#include <ntos/ntdef.h>
#endif
/* Macros expanding to the appropriate inline assembly to raise a breakpoint */
#if defined(_M_IX86)
#define ASM_BREAKPOINT "\nint $3\n"
#elif defined(_M_ALPHA)
#define ASM_BREAKPOINT "\ncall_pal bpt\n"
#elif defined(_M_MIPS)
#define ASM_BREAKPOINT "\nbreak\n"
#else
#error Unsupported architecture.
#endif
#define ROUNDUP(a,b) ((((a)+(b)-1)/(b))*(b))
#define ROUNDDOWN(a,b) (((a)/(b))*(b))
#define MAGIC(c1,c2,c3,c4) ((c1) + ((c2)<<8) + ((c3)<<16) + ((c4)<<24))
#define MAGIC_HEAP MAGIC( 'H','E','A','P' )
#ifdef DBG
extern VOID FASTCALL CHECK_PAGED_CODE_RTL(char *file, int line);
#define PAGED_CODE_RTL() CHECK_PAGED_CODE_RTL(__FILE__, __LINE__)
#else
#define PAGED_CODE_RTL()
#endif

View file

@ -1,7 +0,0 @@
/*
*
*/
#ifdef i386
#define PAGE_SIZE (4096)
#endif

View file

@ -1,823 +0,0 @@
/* $Id$
*
*/
#ifndef __INCLUDE_NTDLL_RTL_H
#define __INCLUDE_NTDLL_RTL_H
#ifndef _NTNDK_
#include <ddk/ntifs.h>
#include <ntos/types.h>
#include <ntos/zwtypes.h>
#include <napi/teb.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef DBG
extern VOID FASTCALL CHECK_PAGED_CODE_RTL(char *file, int line);
#define PAGED_CODE_RTL() CHECK_PAGED_CODE_RTL(__FILE__, __LINE__)
#else
#define PAGED_CODE_RTL()
#endif
#if !defined(__USE_W32API) || defined(_NTNDK_)
#define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
{ \
sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
sizeof(__SOURCE_STRING__), \
(__SOURCE_STRING__) \
}
typedef struct _DEBUG_BUFFER
{
HANDLE SectionHandle;
PVOID SectionBase;
PVOID RemoteSectionBase;
ULONG SectionBaseDelta;
HANDLE EventPairHandle;
ULONG Unknown[2];
HANDLE RemoteThreadHandle;
ULONG InfoClassMask;
ULONG SizeOfInfo;
ULONG AllocatedSize;
ULONG SectionSize;
PVOID ModuleInformation;
PVOID BackTraceInformation;
PVOID HeapInformation;
PVOID LockInformation;
PVOID Reserved[8];
} DEBUG_BUFFER, *PDEBUG_BUFFER;
/* DEBUG_MODULE_INFORMATION.Flags constants */
#define LDRP_STATIC_LINK 0x00000002
#define LDRP_IMAGE_DLL 0x00000004
#define LDRP_LOAD_IN_PROGRESS 0x00001000
#define LDRP_UNLOAD_IN_PROGRESS 0x00002000
#define LDRP_ENTRY_PROCESSED 0x00004000
#define LDRP_ENTRY_INSERTED 0x00008000
#define LDRP_CURRENT_LOAD 0x00010000
#define LDRP_FAILED_BUILTIN_LOAD 0x00020000
#define LDRP_DONT_CALL_FOR_THREADS 0x00040000
#define LDRP_PROCESS_ATTACH_CALLED 0x00080000
#define LDRP_DEBUG_SYMBOLS_LOADED 0x00100000
#define LDRP_IMAGE_NOT_AT_BASE 0x00200000
#define LDRP_WX86_IGNORE_MACHINETYPE 0x00400000
typedef struct _DEBUG_MODULE_INFORMATION {
ULONG Reserved[2];
PVOID Base;
ULONG Size;
ULONG Flags;
USHORT Index;
USHORT Unknown;
USHORT LoadCount;
USHORT ModuleNameOffset;
CHAR ImageName[256];
} DEBUG_MODULE_INFORMATION, *PDEBUG_MODULE_INFORMATION;
typedef struct _DEBUG_HEAP_INFORMATION {
PVOID Base;
ULONG Flags;
USHORT Granularity;
USHORT Unknown;
ULONG Allocated;
ULONG Committed;
ULONG TagCount;
ULONG BlockCount;
ULONG Reserved[7];
PVOID Tags;
PVOID Blocks;
} DEBUG_HEAP_INFORMATION, *PDEBUG_HEAP_INFORMATION;
typedef struct _DEBUG_LOCK_INFORMATION {
PVOID Address;
USHORT Type;
USHORT CreatorBackTraceIndex;
ULONG OwnerThreadId;
ULONG ActiveCount;
ULONG ContentionCount;
ULONG EntryCount;
ULONG RecursionCount;
ULONG NumberOfSharedWaiters;
ULONG NumberOfExclusiveWaiters;
} DEBUG_LOCK_INFORMATION, *PDEBUG_LOCK_INFORMATION;
#endif
#ifndef _NTNDK_
typedef struct _RTL_PROCESS_INFO
{
ULONG Size;
HANDLE ProcessHandle;
HANDLE ThreadHandle;
CLIENT_ID ClientId;
SECTION_IMAGE_INFORMATION ImageInfo;
} RTL_PROCESS_INFO, *PRTL_PROCESS_INFO;
#endif
typedef struct _RTL_RESOURCE
{
RTL_CRITICAL_SECTION Lock;
HANDLE SharedSemaphore;
ULONG SharedWaiters;
HANDLE ExclusiveSemaphore;
ULONG ExclusiveWaiters;
LONG NumberActive;
HANDLE OwningThread;
ULONG TimeoutBoost; /* ?? */
PVOID DebugInfo; /* ?? */
} RTL_RESOURCE, *PRTL_RESOURCE;
typedef struct _RTL_HANDLE_TABLE_ENTRY
{
ULONG Flags;
struct _RTL_HANDLE_TABLE_ENTRY *NextFree;
} RTL_HANDLE_TABLE_ENTRY, *PRTL_HANDLE_TABLE_ENTRY;
typedef struct _RTL_HANDLE_TABLE
{
ULONG MaximumNumberOfHandles;
ULONG SizeOfHandleTableEntry;
ULONG Reserved[2];
PRTL_HANDLE_TABLE_ENTRY FreeHandles;
PRTL_HANDLE_TABLE_ENTRY CommittedHandles;
PRTL_HANDLE_TABLE_ENTRY UnCommittedHandles;
PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles;
} RTL_HANDLE_TABLE, *PRTL_HANDLE_TABLE;
/* RtlQueryProcessDebugInformation */
#define PDI_MODULES 0x01 /* The loaded modules of the process */
#define PDI_BACKTRACE 0x02 /* The heap stack back traces */
#define PDI_HEAPS 0x04 /* The heaps of the process */
#define PDI_HEAP_TAGS 0x08 /* The heap tags */
#define PDI_HEAP_BLOCKS 0x10 /* The heap blocks */
#define PDI_LOCKS 0x20 /* The locks created by the process */
NTSTATUS
STDCALL
RtlpWaitForCriticalSection(
PRTL_CRITICAL_SECTION CriticalSection
);
VOID
STDCALL
RtlpUnWaitCriticalSection(
PRTL_CRITICAL_SECTION CriticalSection
);
VOID
STDCALL
RtlpCreateCriticalSectionSem(
PRTL_CRITICAL_SECTION CriticalSection
);
VOID
STDCALL
RtlpInitDeferedCriticalSection(
VOID
);
VOID
STDCALL
RtlpFreeDebugInfo(
PRTL_CRITICAL_SECTION_DEBUG DebugInfo
);
PRTL_CRITICAL_SECTION_DEBUG
STDCALL
RtlpAllocateDebugInfo(
VOID
);
NTSTATUS STDCALL
RtlAddAccessAllowedAceEx (IN OUT PACL Acl,
IN ULONG Revision,
IN ULONG Flags,
IN ACCESS_MASK AccessMask,
IN PSID Sid);
NTSTATUS STDCALL
RtlAddAccessDeniedAceEx (IN OUT PACL Acl,
IN ULONG Revision,
IN ULONG Flags,
IN ACCESS_MASK AccessMask,
IN PSID Sid);
NTSTATUS STDCALL
RtlAddAuditAccessAceEx(IN OUT PACL Acl,
IN ULONG Revision,
IN ULONG Flags,
IN ACCESS_MASK AccessMask,
IN PSID Sid,
IN BOOLEAN Success,
IN BOOLEAN Failure);
NTSTATUS STDCALL
RtlDeleteCriticalSection (PRTL_CRITICAL_SECTION CriticalSection);
WCHAR STDCALL
RtlDowncaseUnicodeChar(IN WCHAR Source);
NTSTATUS STDCALL
RtlEnterCriticalSection (PRTL_CRITICAL_SECTION CriticalSection);
NTSTATUS STDCALL
RtlInitializeCriticalSection (PRTL_CRITICAL_SECTION CriticalSection);
NTSTATUS STDCALL
RtlInitializeCriticalSectionAndSpinCount (PRTL_CRITICAL_SECTION CriticalSection,
ULONG SpinCount);
NTSTATUS STDCALL
RtlInt64ToUnicodeString (IN ULONGLONG Value,
IN ULONG Base,
PUNICODE_STRING String);
NTSTATUS STDCALL
RtlLeaveCriticalSection (PRTL_CRITICAL_SECTION CriticalSection);
BOOLEAN STDCALL
RtlTryEnterCriticalSection (PRTL_CRITICAL_SECTION CriticalSection);
DWORD STDCALL
RtlCompactHeap (
HANDLE heap,
DWORD flags
);
ULONG STDCALL
RtlComputeCrc32 (IN ULONG Initial,
IN PUCHAR Data,
IN ULONG Length);
PDEBUG_BUFFER STDCALL
RtlCreateQueryDebugBuffer(IN ULONG Size,
IN BOOLEAN EventPair);
NTSTATUS STDCALL
RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer);
BOOLEAN STDCALL
RtlEqualComputerName (
IN PUNICODE_STRING ComputerName1,
IN PUNICODE_STRING ComputerName2
);
BOOLEAN STDCALL
RtlEqualDomainName (
IN PUNICODE_STRING DomainName1,
IN PUNICODE_STRING DomainName2
);
VOID STDCALL
RtlEraseUnicodeString (
IN PUNICODE_STRING String
);
NTSTATUS STDCALL
RtlLargeIntegerToChar (
IN PLARGE_INTEGER Value,
IN ULONG Base,
IN ULONG Length,
IN OUT PCHAR String
);
/* Path functions */
typedef enum
{
INVALID_PATH = 0,
UNC_PATH, /* "//foo" */
ABSOLUTE_DRIVE_PATH, /* "c:/foo" */
RELATIVE_DRIVE_PATH, /* "c:foo" */
ABSOLUTE_PATH, /* "/foo" */
RELATIVE_PATH, /* "foo" */
DEVICE_PATH, /* "//./foo" */
UNC_DOT_PATH /* "//." */
} DOS_PATHNAME_TYPE;
ULONG
STDCALL
RtlDetermineDosPathNameType_U (
PCWSTR Path
);
BOOLEAN
STDCALL
RtlDoesFileExists_U (
PWSTR FileName
);
BOOLEAN
STDCALL
RtlDosPathNameToNtPathName_U (
PWSTR dosname,
PUNICODE_STRING ntname,
PWSTR *shortname,
PCURDIR nah
);
ULONG
STDCALL
RtlDosSearchPath_U (
WCHAR *sp,
WCHAR *name,
WCHAR *ext,
ULONG buf_sz,
WCHAR *buffer,
WCHAR **shortname
);
ULONG
STDCALL
RtlGetCurrentDirectory_U (
ULONG MaximumLength,
PWSTR Buffer
);
ULONG
STDCALL
RtlGetFullPathName_U (
const WCHAR *dosname,
ULONG size,
WCHAR *buf,
WCHAR **shortname
);
ULONG
STDCALL
RtlGetLongestNtPathLength (
VOID
);
ULONG STDCALL
RtlGetNtGlobalFlags (VOID);
BOOLEAN STDCALL
RtlGetNtProductType (PNT_PRODUCT_TYPE ProductType);
ULONG
STDCALL
RtlGetProcessHeaps (
ULONG HeapCount,
HANDLE *HeapArray
);
ULONG
STDCALL
RtlIsDosDeviceName_U (
PWSTR DeviceName
);
NTSTATUS
STDCALL
RtlSetCurrentDirectory_U (
PUNICODE_STRING name
);
/* Environment functions */
VOID
STDCALL
RtlAcquirePebLock (
VOID
);
VOID
STDCALL
RtlReleasePebLock (
VOID
);
NTSTATUS
STDCALL
RtlCreateEnvironment (
BOOLEAN Inherit,
PWSTR *Environment
);
VOID
STDCALL
RtlDestroyEnvironment (
PWSTR Environment
);
NTSTATUS
STDCALL
RtlExpandEnvironmentStrings_U (
PWSTR Environment,
PUNICODE_STRING Source,
PUNICODE_STRING Destination,
PULONG Length
);
NTSTATUS
STDCALL
RtlQueryEnvironmentVariable_U (
PWSTR Environment,
PUNICODE_STRING Name,
PUNICODE_STRING Value
);
NTSTATUS STDCALL
RtlQueryProcessDebugInformation(IN ULONG ProcessId,
IN ULONG DebugInfoClassMask,
IN OUT PDEBUG_BUFFER DebugBuffer);
VOID
STDCALL
RtlSetCurrentEnvironment (
PWSTR NewEnvironment,
PWSTR *OldEnvironment
);
NTSTATUS
STDCALL
RtlSetEnvironmentVariable (
PWSTR *Environment,
PUNICODE_STRING Name,
PUNICODE_STRING Value
);
NTSTATUS
STDCALL
RtlCreateUserThread (
IN HANDLE ProcessHandle,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN BOOLEAN CreateSuspended,
IN LONG StackZeroBits,
IN OUT PULONG StackReserve,
IN OUT PULONG StackCommit,
IN PTHREAD_START_ROUTINE StartAddress,
IN PVOID Parameter,
IN OUT PHANDLE ThreadHandle,
IN OUT PCLIENT_ID ClientId
);
NTSTATUS STDCALL
RtlExitUserThread (NTSTATUS Status);
NTSTATUS
STDCALL
RtlFreeUserThreadStack (
IN HANDLE ProcessHandle,
IN HANDLE ThreadHandle
);
NTSTATUS
STDCALL
RtlCreateUserProcess (
IN PUNICODE_STRING ImageFileName,
IN ULONG Attributes,
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters,
IN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor OPTIONAL,
IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor OPTIONAL,
IN HANDLE ParentProcess OPTIONAL,
IN BOOLEAN CurrentDirectory,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL,
OUT PRTL_PROCESS_INFO ProcessInfo
);
NTSTATUS
STDCALL
RtlCreateProcessParameters (
OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
IN PUNICODE_STRING ImagePathName OPTIONAL,
IN PUNICODE_STRING DllPath OPTIONAL,
IN PUNICODE_STRING CurrentDirectory OPTIONAL,
IN PUNICODE_STRING CommandLine OPTIONAL,
IN PWSTR Environment OPTIONAL,
IN PUNICODE_STRING WindowTitle OPTIONAL,
IN PUNICODE_STRING DesktopInfo OPTIONAL,
IN PUNICODE_STRING ShellInfo OPTIONAL,
IN PUNICODE_STRING RuntimeInfo OPTIONAL
);
PRTL_USER_PROCESS_PARAMETERS
STDCALL
RtlDeNormalizeProcessParams (
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
NTSTATUS
STDCALL
RtlDestroyProcessParameters (
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
PRTL_USER_PROCESS_PARAMETERS
STDCALL
RtlNormalizeProcessParams (
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
NTSTATUS
STDCALL
RtlLocalTimeToSystemTime (
PLARGE_INTEGER LocalTime,
PLARGE_INTEGER SystemTime
);
NTSTATUS
STDCALL
RtlSystemTimeToLocalTime (
PLARGE_INTEGER SystemTime,
PLARGE_INTEGER LocalTime
);
VOID STDCALL
RtlTimeToElapsedTimeFields(IN PLARGE_INTEGER Time,
OUT PTIME_FIELDS TimeFields);
VOID
STDCALL
RtlRaiseStatus (
IN NTSTATUS Status
);
/* resource functions */
BOOLEAN
STDCALL
RtlAcquireResourceExclusive (
IN PRTL_RESOURCE Resource,
IN BOOLEAN Wait
);
BOOLEAN
STDCALL
RtlAcquireResourceShared (
IN PRTL_RESOURCE Resource,
IN BOOLEAN Wait
);
VOID
STDCALL
RtlConvertExclusiveToShared (
IN PRTL_RESOURCE Resource
);
VOID
STDCALL
RtlConvertSharedToExclusive (
IN PRTL_RESOURCE Resource
);
VOID
STDCALL
RtlDeleteResource (
IN PRTL_RESOURCE Resource
);
VOID
STDCALL
RtlDumpResource (
IN PRTL_RESOURCE Resource
);
VOID
STDCALL
RtlInitializeResource (
IN PRTL_RESOURCE Resource
);
VOID
STDCALL
RtlReleaseResource (
IN PRTL_RESOURCE Resource
);
/* handle table functions */
PRTL_HANDLE_TABLE_ENTRY
STDCALL
RtlAllocateHandle (
IN PRTL_HANDLE_TABLE HandleTable,
IN OUT PULONG Index
);
VOID
STDCALL
RtlDestroyHandleTable (
IN PRTL_HANDLE_TABLE HandleTable
);
BOOLEAN
STDCALL
RtlFreeHandle (
IN PRTL_HANDLE_TABLE HandleTable,
IN PRTL_HANDLE_TABLE_ENTRY Handle
);
VOID
STDCALL
RtlInitializeHandleTable (
IN ULONG TableSize,
IN ULONG HandleSize,
IN PRTL_HANDLE_TABLE HandleTable
);
BOOLEAN
STDCALL
RtlIsValidHandle (
IN PRTL_HANDLE_TABLE HandleTable,
IN PRTL_HANDLE_TABLE_ENTRY Handle
);
BOOLEAN
STDCALL
RtlIsValidIndexHandle (
IN PRTL_HANDLE_TABLE HandleTable,
IN OUT PRTL_HANDLE_TABLE_ENTRY *Handle,
IN ULONG Index
);
NTSTATUS STDCALL
RtlAdjustPrivilege(IN ULONG Privilege,
IN BOOLEAN Enable,
IN BOOLEAN CurrentThread,
OUT PBOOLEAN Enabled);
NTSTATUS
STDCALL
RtlImpersonateSelf (
IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);
NTSTATUS
STDCALL
RtlpNtCreateKey (
OUT HANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG Unused1,
OUT PULONG Disposition,
IN ULONG Unused2
);
NTSTATUS
STDCALL
RtlpNtEnumerateSubKey (
IN HANDLE KeyHandle,
OUT PUNICODE_STRING SubKeyName,
IN ULONG Index,
IN ULONG Unused
);
NTSTATUS
STDCALL
RtlpNtMakeTemporaryKey (
IN HANDLE KeyHandle
);
NTSTATUS
STDCALL
RtlpNtOpenKey (
OUT HANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG Unused
);
NTSTATUS
STDCALL
RtlpNtQueryValueKey (
IN HANDLE KeyHandle,
OUT PULONG Type OPTIONAL,
OUT PVOID Data OPTIONAL,
IN OUT PULONG DataLength OPTIONAL,
IN ULONG Unused
);
NTSTATUS
STDCALL
RtlpNtSetValueKey (
IN HANDLE KeyHandle,
IN ULONG Type,
IN PVOID Data,
IN ULONG DataLength
);
VOID STDCALL
RtlRunDecodeUnicodeString (IN UCHAR Hash,
IN OUT PUNICODE_STRING String);
VOID STDCALL
RtlRunEncodeUnicodeString (IN OUT PUCHAR Hash,
IN OUT PUNICODE_STRING String);
/* Timer Queue functions */
#include <winnt.h>
NTSTATUS
STDCALL
RtlCreateTimer(HANDLE TimerQueue,PHANDLE phNewTimer, WAITORTIMERCALLBACKFUNC Callback,PVOID Parameter,DWORD DueTime,DWORD Period,ULONG Flags);
NTSTATUS
STDCALL
RtlCreateTimerQueue(PHANDLE TimerQueue);
NTSTATUS
STDCALL
RtlDeleteTimer(HANDLE TimerQueue,HANDLE Timer,HANDLE CompletionEvent);
NTSTATUS
STDCALL
RtlUpdateTimer(HANDLE TimerQueue,HANDLE Timer,ULONG DueTime,ULONG Period);
NTSTATUS
STDCALL
RtlDeleteTimerQueueEx(HANDLE TimerQueue,HANDLE CompletionEvent);
NTSTATUS
STDCALL
RtlDeleteTimerQueue(HANDLE TimerQueue);
PVOID
STDCALL
RtlEncodePointer(IN PVOID Pointer);
PVOID
STDCALL
RtlDecodePointer(IN PVOID Pointer);
#ifndef __NTDRIVER__
#ifndef __INTERLOCKED_DECLARED
#define __INTERLOCKED_DECLARED
LONG
STDCALL
InterlockedIncrement (
PLONG Addend
);
LONG
STDCALL
InterlockedDecrement (
PLONG lpAddend
);
LONG
STDCALL
InterlockedExchange (
PLONG Target,
LONG Value
);
LONG
STDCALL
InterlockedCompareExchange (
PLONG Destination,
LONG Exchange,
LONG Comperand
);
LONG
STDCALL
InterlockedExchangeAdd (
PLONG Addend,
LONG Increment
);
#ifndef InterlockedExchangePointer
#ifdef _WIN64
#define InterlockedExchangePointer(Target, Value) \
(PVOID)InterlockedExchange64((PLONGLONG)(Target), (LONGLONG)(Value))
#else
#define InterlockedExchangePointer(Target, Value) \
(PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
#endif
#endif
#ifndef InterlockedCompareExchangePointer
#ifdef _WIN64
#define InterlockedCompareExchangePointer(Target, Exchange, Comperand) \
(PVOID)InterlockedCompareExchange64((PLONGLONG)(Target), (LONGLONG)(Exchange), (LONGLONG)(Comperand))
#else
#define InterlockedCompareExchangePointer(Target, Exchange, Comperand) \
(PVOID)InterlockedCompareExchange((PLONG)Target, (LONG)Exchange, (LONG)Comperand)
#endif
#endif
#endif /* __INTERLOCKED_DECLARED */
#endif /* __NTDRIVER__ */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __INCLUDE_NTDLL_RTL_H */
/* EOF */

View file

@ -1,18 +0,0 @@
#ifndef __INCLUDE_NTDLL_TRACE_H
#define __INCLUDE_NTDLL_TRACE_H
typedef struct _NTDLL_TRACE_TABLE
{
CHAR Flags[4096];
} NTDLL_TABLE_TABLE, *PNTDLL_TABLE_TRACE;
#define TRACE_NTDLL (1)
#define TRACE_KERNEL32 (2)
#define TRACE_CRTDLL (3)
VOID
RtlPrintTrace(ULONG Flag, PCH Format, ...);
#define TPRINTF(F, X...) RtlPrintTrace(F, ## X)
#endif /* __INCLUDE_NTDLL_TRACE_H */

View file

@ -116,3 +116,7 @@
#define KTRAP_FRAME_V86_GS (0x88)
#define KTRAP_FRAME_RESERVED9 (0x8A)
#define KTRAP_FRAME_SIZE (0x8C)
/* User Shared Data */
#define KUSER_SHARED_SYSCALL 0x7FFE0300
#define KUSER_SHARED_SYSCALL_RET 0x7FFE0304

View file

@ -14,7 +14,6 @@
#include <internal/i386/ke.h>
#include <internal/asm.h>
#include <ndk/i386/segment.h>
#include <napi/shared_data.h>
#define UserMode (1)

View file

@ -11,7 +11,7 @@
/* INCLUDES *****************************************************************/
#include <ntoskrnl.h>
#include <ntdll/napi.h>
#include <internal/napi.h>
#define NDEBUG
#include <internal/debug.h>

View file

@ -22,7 +22,6 @@
#include <windows.h> /* FIXME ? */
#include <windowsx.h> /* FIXME ? */
#include <ndk/ntndk.h>
#include <napi/win32.h> /* FIXME */
/* FIXME: ReactOS will be R-Rated if I really write what I'm about to */
NTSTATUS
@ -46,6 +45,7 @@ MmCopyToCaller(PVOID Dest, const VOID *Src, ULONG NumberOfBytes);
/* External Win32K Header */
#include <win32k/win32k.h>
#include <win32k/win32.h>
/* Internal Win32K Header */
#include "include/win32k.h"

View file

@ -49,7 +49,7 @@ WIN32K_USER_STUBS = lib$(SEP)user32$(SEP)misc$(SEP)win32k.S
# NTOSKRNL.EXE
KERNEL_SVC_DB = $(NCI_BASE_)sysfuncs.lst
KERNEL_SERVICE_TABLE = include$(SEP)ntdll$(SEP)napi.h
KERNEL_SERVICE_TABLE = ntoskrnl$(SEP)include$(SEP)internal$(SEP)napi.h
NTDLL_STUBS = lib$(SEP)ntdll$(SEP)napi.S
KERNEL_STUBS = ntoskrnl$(SEP)ex$(SEP)zw.S

View file

@ -130,7 +130,7 @@ WriteFileHeader(FILE * StubFile,
" * PROGRAMMER: Computer Generated File. See tools/nci/ncitool.c\n"
" * REMARK: DO NOT EDIT OR COMMIT MODIFICATIONS TO THIS FILE\n"
" */\n\n\n"
"#include <napi/shared_data.h>\n\n",
"#define KUSER_SHARED_SYSCALL 0x7FFE0300\n\n",
FileDescription,
FileLocation);
}