-/* $Id: rtl.h,v 1.58 2001/09/24 00:51:15 chorns Exp $
+/* $Id: rtl.h,v 1.59 2002/01/14 01:41:08 ekohl Exp $
*
*/
#include <pe.h>
-typedef struct _INITIAL_TEB
-{
- ULONG StackCommit;
- ULONG StackReserve;
- PVOID StackBase;
- PVOID StackLimit;
- PVOID StackAllocate;
-} INITIAL_TEB, *PINITIAL_TEB;
-
-typedef struct _CONTROLLER_OBJECT
-{
- CSHORT Type;
- CSHORT Size;
- PVOID ControllerExtension;
- KDEVICE_QUEUE DeviceWaitQueue;
- ULONG Spare1;
- LARGE_INTEGER Spare2;
-} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
-
-typedef struct _STRING
-{
- /*
- * Length in bytes of the string stored in buffer
- */
- USHORT Length;
-
- /*
- * Maximum length of the string
- */
- USHORT MaximumLength;
-
- /*
- * String
- */
- PCHAR Buffer;
-} STRING, *PSTRING;
-
-typedef STRING ANSI_STRING;
-typedef PSTRING PANSI_STRING;
-
-typedef STRING OEM_STRING;
-typedef PSTRING POEM_STRING;
-
-
-typedef struct _TIME_FIELDS
-{
- CSHORT Year;
- CSHORT Month;
- CSHORT Day;
- CSHORT Hour;
- CSHORT Minute;
- CSHORT Second;
- CSHORT Milliseconds;
- CSHORT Weekday;
-} TIME_FIELDS, *PTIME_FIELDS;
-
-typedef struct _RTL_BITMAP
-{
- ULONG SizeOfBitMap;
- PULONG Buffer;
-} RTL_BITMAP, *PRTL_BITMAP;
-
-typedef struct {
- ULONG Length;
- ULONG Unknown[11];
-} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
-
-typedef struct _RTL_ATOM_TABLE
-{
- ULONG TableSize;
- ULONG NumberOfAtoms;
- PVOID Lock; /* fast mutex (kernel mode)/ critical section (user mode) */
- PVOID HandleTable;
- LIST_ENTRY Slot[0];
-} RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
-
-struct _LB_RANGE
-{
- ULONG dummy;
-};
-
-typedef struct _RTL_NLS_DATA
-{
- USHORT CodePage;
- USHORT MaxCharacterSize; // SBCS = 1, DBCS = 2
- WCHAR DefaultCharacter;
- WCHAR char1;
- WCHAR char2;
- WCHAR char3;
- USHORT DbcsFlag;
- struct _LB_RANGE LeadByteRange[6];
- USHORT reserved;
- PWCHAR MultiByteToUnicode;
- PCHAR UnicodeToMultiByte;
- ULONG unknown;
- PCHAR DbcsTags;
-} RTL_NLS_DATA, *PRTL_NLS_DATA;
-
-
-typedef struct _RTL_GENERIC_TABLE
-{
- PVOID RootElement;
- ULONG Unknown2;
- ULONG Unknown3;
- ULONG Unknown4;
- ULONG Unknown5;
- ULONG ElementCount;
- PVOID CompareRoutine;
- PVOID AllocateRoutine;
- PVOID FreeRoutine;
- ULONG UserParameter;
-} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
-
-
-typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
-{
- USHORT Length;
- USHORT Flags;
- UCHAR Text[1];
-} RTL_MESSAGE_RESOURCE_ENTRY, *PRTL_MESSAGE_RESOURCE_ENTRY;
-
-typedef struct _RTL_MESSAGE_RESOURCE_BLOCK
-{
- ULONG LowId;
- ULONG HighId;
- ULONG OffsetToEntries;
-} RTL_MESSAGE_RESOURCE_BLOCK, *PRTL_MESSAGE_RESOURCE_BLOCK;
-
-typedef struct _RTL_MESSAGE_RESOURCE_DATA
-{
- ULONG NumberOfBlocks;
- RTL_MESSAGE_RESOURCE_BLOCK Blocks[1];
-} RTL_MESSAGE_RESOURCE_DATA, *PRTL_MESSAGE_RESOURCE_DATA;
/*
#define RTL_QUERY_REGISTRY_DELETE (0x00000040)
-typedef NTSTATUS STDCALL
-(*PRTL_QUERY_REGISTRY_ROUTINE)(PWSTR ValueName,
- ULONG ValueType,
- PVOID ValueData,
- ULONG ValueLength,
- PVOID Context,
- PVOID EntryContext);
-
-typedef struct _RTL_QUERY_REGISTRY_TABLE
-{
- PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
- ULONG Flags;
- PWSTR Name;
- PVOID EntryContext;
- ULONG DefaultType;
- PVOID DefaultData;
- ULONG DefaultLength;
-} RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
-
/*
* PURPOSE: Used with RtlCheckRegistryKey, RtlCreateRegistryKey,
* RtlDeleteRegistryKey