- Add the real NT Object Callbacks and #ifdef out the ReactOS ones.
- Add the real NT Loader Parameter Block structures & friends and #ifdef
out the ReactOS ones (thanks to Filip Navara for some work on these).
Modified: trunk/reactos/include/ndk/fixmes.txt
Modified: trunk/reactos/include/ndk/halfuncs.h
Modified: trunk/reactos/include/ndk/haltypes.h
Modified: trunk/reactos/include/ndk/obtypes.h
_____
Modified: trunk/reactos/include/ndk/fixmes.txt
--- trunk/reactos/include/ndk/fixmes.txt 2005-11-27 20:01:57 UTC
(rev 19696)
+++ trunk/reactos/include/ndk/fixmes.txt 2005-11-27 20:18:33 UTC
(rev 19697)
@@ -1,15 +1,3 @@
-Complete list of NDK Fixmes before 1.0 Release (Nov 27th 2005)
---------------------------------------------------------------
-_______________________________________________________________________
_______________
-[CRITICAL] - Breaking compatibility with official structures.
-|obtypes.h - Object callbacks are ReactOS only definitions.
IFDEF-OUT ADDREAL
-|haltypes.h - Loader Parameter Block is ReactOS Version, not NT.
IFDEF-OUT ADDREAL
-|
-[MAJOR] - Using incorrect, missing, or invalid names or
definitions.
-|extypes.h - Classes 13, 20, 30, 31, 49, 51, 52, 54+ are undefined.
WONTFIX
-|______________________________________________________________________
_______________
-
-
List of ReactOS Applications compiling with the NDK
(verify, fix, and optimize their usage)
--------------------------------------------------------------
_____
Modified: trunk/reactos/include/ndk/halfuncs.h
--- trunk/reactos/include/ndk/halfuncs.h 2005-11-27 20:01:57 UTC
(rev 19696)
+++ trunk/reactos/include/ndk/halfuncs.h 2005-11-27 20:18:33 UTC
(rev 19697)
@@ -30,24 +30,28 @@
//
// Display Functions
//
+NTHALAPI
BOOLEAN
NTAPI
HalQueryDisplayOwnership(
VOID
);
+NTHALAPI
VOID
NTAPI
HalDisplayString(
IN PCHAR String
);
+NTHALAPI
BOOLEAN
NTAPI
HalQueryDisplayOwnership(
VOID
);
+NTHALAPI
VOID
NTAPI
HalReleaseDisplayOwnership(
@@ -57,12 +61,14 @@
//
// Initialization Functions
//
+NTHALAPI
BOOLEAN
NTAPI
HalAllProcessorsStarted(
VOID
);
+NTHALAPI
VOID
NTAPI
HalInitializeProcessor(
@@ -70,6 +76,7 @@
PVOID ProcessorStack
);
+NTHALAPI
BOOLEAN
NTAPI
HalInitSystem(
@@ -77,12 +84,14 @@
PLOADER_PARAMETER_BLOCK LoaderBlock
);
+NTHALAPI
VOID
NTAPI
HalReturnToFirmware(
FIRMWARE_REENTRY Action
);
+NTHALAPI
BOOLEAN
NTAPI
HalStartNextProcessor(
@@ -93,6 +102,7 @@
//
// Interrupt Functions
//
+NTHALAPI
BOOLEAN
NTAPI
HalBeginSystemInterrupt(
@@ -101,6 +111,7 @@
PKIRQL OldIrql
);
+NTHALAPI
BOOLEAN
NTAPI
HalDisableSystemInterrupt(
@@ -108,6 +119,7 @@
KIRQL Irql
);
+NTHALAPI
BOOLEAN
NTAPI
HalEnableSystemInterrupt(
@@ -116,6 +128,7 @@
KINTERRUPT_MODE InterruptMode
);
+NTHALAPI
VOID
NTAPI
HalEndSystemInterrupt(
@@ -123,6 +136,7 @@
ULONG Vector
);
+NTHALAPI
BOOLEAN
NTAPI
HalGetEnvironmentVariable(
@@ -131,18 +145,21 @@
USHORT ValueLength
);
+NTHALAPI
VOID
NTAPI
HalReportResourceUsage(
VOID
);
+NTHALAPI
VOID
FASTCALL
HalRequestSoftwareInterrupt(
KIRQL SoftwareInterruptRequested
);
+NTHALAPI
VOID
NTAPI
HalRequestIpi(
@@ -152,6 +169,7 @@
//
// I/O Functions
//
+NTHALAPI
VOID
NTAPI
IoAssignDriveLetters(
@@ -164,6 +182,7 @@
//
// Environment Functions
//
+NTHALAPI
BOOLEAN
NTAPI
HalSetEnvironmentVariable(
_____
Modified: trunk/reactos/include/ndk/haltypes.h
--- trunk/reactos/include/ndk/haltypes.h 2005-11-27 20:01:57 UTC
(rev 19696)
+++ trunk/reactos/include/ndk/haltypes.h 2005-11-27 20:18:33 UTC
(rev 19697)
@@ -67,9 +67,125 @@
ULONG Version;
} HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
+#ifndef _REACTOS_
//
-// Loader Parameter Block Structures (FIXME)
+// NLS Data Block
//
+typedef struct _NLS_TABLE_DATA
+{
+ PVOID AnsiCodePageData;
+ PVOID OemCodePageData;
+ PVOID UnicodeCodePageData;
+} NLS_TABLE_DATA, *PNLS_TABLE_DATA;
+
+//
+// Subsystem Specific Loader Blocks
+//
+typedef struct _PROFILE_PARAMETER_BLOCK
+{
+ USHORT DockData0;
+ USHORT DockData1;
+ USHORT DockData2;
+ USHORT DockData3;
+ ULONG DockData3;
+ ULONG DockData4;
+} PROFILE_PARAMETER_BLOCK, *PPROFILE_PARAMETER_BLOCK;
+
+typedef struct _HEADLESS_LOADER_BLOCK
+{
+ UCHAR Unknown[0xC];
+} HEADLESS_LOADER_BLOCK, *PHEADLESS_LOADER_BLOCK;
+
+typedef struct _NETWORK_LOADER_BLOCK
+{
+ UCHAR Unknown[0xC];
+} NETWORK_LOADER_BLOCK, *PNETWORK_LOADER_BLOCK;
+
+//
+// Extended Loader Parameter Block
+//
+typedef struct _LOADER_PARAMETER_EXTENSION
+{
+ ULONG Size;
+ PROFILE_PARAMETER_BLOCK ProfileParameterBlock;
+ ULONG MajorVersion;
+ ULONG MinorVersion;
+ PVOID SpecialConfigInfFile;
+ ULONG SpecialConfigInfSize;
+ PVOID TriageDumpData;
+ //
+ // NT 5.1
+ //
+ ULONG NumberOfPages;
+ PHEADLESS_LOADER_BLOCK HeadlessLoaderBlock;
+ PVOID Unknown1;
+ PVOID PrefetchDatabaseBase;
+ ULONG PrefetchDatabaseSize;
+ PNETWORK_LOADER_BLOCK NetworkLoaderBlock;
+ //
+ // NT 5.2+
+ //
+ PVOID Reserved[2];
+ LIST_ENTRY FirmwareListEntry;
+ PVOID AcpiTableBase;
+ ULONG AcpiTableSize;
+} LOADER_PARAMETER_EXTENSION, *PLOADER_PARAMETER_EXTENSION;
+
+//
+// Architecture specific Loader Parameter Blocks
+//
+typedef struct _I386_LOADER_BLOCK
+{
+ PVOID CommonDataArea;
+ ULONG MachineType;
+ ULONG Reserved;
+} I386_LOADER_BLOCK, *PI386_LOADER_BLOCK;
+
+//
+// Setup Loader Parameter Block
+//
+typedef struct _SETUP_LOADER_BLOCK
+{
+ ULONG Unknown[139];
+ ULONG Flags;
+} SETUP_LOADER_BLOCK, *PSETUP_LOADER_BLOCK;
+
+//
+// Loader Parameter Block
+//
+typedef struct _LOADER_PARAMETER_BLOCK
+{
+ LIST_ENTRY LoadOrderListHead;
+ LIST_ENTRY MemoryDescriptorListHead;
+ LIST_ENTRY DriverList;
+ PVOID KernelStack;
+ PVOID Prcb;
+ PVOID Process;
+ PVOID Thread;
+ ULONG RegistryLength;
+ PVOID RegistryBase;
+ PCONFIGURATION_COMPONENT_DATA ConfigurationRoot;
+ LPSTR ArcBootDeviceName;
+ LPSTR ArcHalDeviceName;
+ LPSTR SystemRoot;
+ LPSTR BootRoot;
+ LPSTR CommandLine;
+ PNLS_TABLE_DATA NlsTables;
+ PARC_DISK_INFORMATION ArcDevices;
+ PVOID OEMFont;
+ PSETUP_LOADER_BLOCK SetupLdrBlock;
+ PLOADER_PARAMETER_EXTENSION LpbExtension;
+ union
+ {
+ I386_LOADER_BLOCK I386;
+ } u;
+} LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
+
+#else
+
+//
+// FIXME: ReactOS ONLY
+//
typedef struct _LOADER_MODULE
{
ULONG ModStart;
@@ -77,7 +193,6 @@
ULONG String;
ULONG Reserved;
} LOADER_MODULE, *PLOADER_MODULE;
-
typedef struct _LOADER_PARAMETER_BLOCK
{
ULONG Flags;
@@ -98,6 +213,7 @@
ULONG PageDirectoryEnd;
ULONG KernelBase;
} LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
+#endif
//
// Kernel Exports
_____
Modified: trunk/reactos/include/ndk/obtypes.h
--- trunk/reactos/include/ndk/obtypes.h 2005-11-27 20:01:57 UTC (rev
19696)
+++ trunk/reactos/include/ndk/obtypes.h 2005-11-27 20:18:33 UTC (rev
19697)
@@ -117,15 +117,92 @@
ObjectHandleInformation
} OBJECT_INFORMATION_CLASS;
-/* FUNCTION TYPES
************************************************************/
+//
+// Dump Control Structure for Object Debugging
+//
+typedef struct _OBJECT_DUMP_CONTROL
+{
+ PVOID Stream;
+ ULONG Detail;
+} OBJECT_DUMP_CONTROL, *POBJECT_DUMP_CONTROL;
#ifndef NTOS_MODE_USER
+#ifndef _REACTOS_
//
-// FIXME: Object Callbacks
+// Object Type Callbacks
//
+typedef VOID
+(NTAPI *OB_DUMP_METHOD)(
+ IN PVOID Object,
+ IN POB_DUMP_CONTROL Control OPTIONAL
+);
+
typedef NTSTATUS
(NTAPI *OB_OPEN_METHOD)(
+ IN OB_OPEN_REASON Reason,
+ IN PEPROCESS Process OPTIONAL,
+ IN PVOID ObjectBody,
+ IN ACCESS_MASK GrantedAccess,
+ IN ULONG HandleCount
+);
+
+typedef VOID
+(NTAPI *OB_CLOSE_METHOD)(
+ IN PEPROCESS Process OPTIONAL,
+ IN PVOID Object,
+ IN ACCESS_MASK GrantedAccess,
+ IN ULONG ProcessHandleCount,
+ IN ULONG SystemHandleCount
+);
+
+typedef VOID
+(NTAPI *OB_DELETE_METHOD)(
+ IN PVOID Object
+);
+
+typedef NTSTATUS
+(NTAPI *OB_PARSE_METHOD)(
+ IN PVOID ParseObject,
+ IN PVOID ObjectType,
+ IN OUT PACCESS_STATE AccessState,
+ IN KPROCESSOR_MODE AccessMode,
+ IN ULONG Attributes,
+ IN OUT PUNICODE_STRING CompleteName,
+ IN OUT PUNICODE_STRING RemainingName,
+ IN OUT PVOID Context OPTIONAL,
+ IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL,
+ OUT PVOID *Object
+);
+
+typedef NTSTATUS
+(NTAPI *OB_SECURITY_METHOD)(
+ IN PVOID Object,
+ IN SECURITY_OPERATION_CODE OperationType,
+ IN SECURITY_INFORMATION SecurityInformation,
+ IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+ IN OUT PULONG CapturedLength,
+ IN OUT PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor,
+ IN POOL_TYPE PoolType,
+ IN PGENERIC_MAPPING GenericMapping
+);
+
+typedef NTSTATUS
+(NTAPI *OB_QUERYNAME_METHOD)(
+ IN PVOID Object,
+ IN BOOLEAN HasObjectName,
+ OUT POBJECT_NAME_INFORMATION ObjectNameInfo,
+ IN ULONG Length,
+ OUT PULONG ReturnLength
+);
+
+#else
+
+//
+// FIXME: ReactOS ONLY Object Callbacks
+//
+typedef NTSTATUS
+(NTAPI *OB_OPEN_METHOD)(
OB_OPEN_REASON Reason,
PVOID ObjectBody,
PEPROCESS Process,
@@ -198,6 +275,8 @@
struct _OBJECT_ATTRIBUTES* ObjectAttributes
);
+#endif
+
#else
//