#include <debug.h>
extern ULONG ExpInitializationPhase;
-extern BOOLEAN SysThreadCreated;
PVOID KeUserPopEntrySListEnd;
PVOID KeUserPopEntrySListFault;
PVOID PspSystemDllEntryPoint;
UNICODE_STRING PsNtDllPathName =
- RTL_CONSTANT_STRING(L"\\SystemRoot\\system32\\ntdll.dll");
+ RTL_CONSTANT_STRING(L"\\SystemRoot\\System32\\ntdll.dll");
PHANDLE_TABLE PspCidTable;
PEPROCESS PsInitialSystemProcess = NULL;
PEPROCESS PsIdleProcess = NULL;
-HANDLE PspInitialSystemProcessHandle;
+HANDLE PspInitialSystemProcessHandle = NULL;
ULONG PsMinimumWorkingSet, PsMaximumWorkingSet;
struct
/* PRIVATE FUNCTIONS *********************************************************/
+INIT_FUNCTION
USHORT
NTAPI
-INIT_FUNCTION
NameToOrdinal(IN PCHAR Name,
IN PVOID DllBase,
IN ULONG NumberOfNames,
return NameToOrdinal(Name, DllBase, NumberOfNames, NameTable, OrdinalTable);
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
LookupEntryPoint(IN PVOID DllBase,
IN PCHAR Name,
OUT PVOID *EntryPoint)
return STATUS_SUCCESS;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PspLookupSystemDllEntryPoint(IN PCHAR Name,
IN PVOID *EntryPoint)
{
return LookupEntryPoint(PspSystemDllBase, Name, EntryPoint);
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PspLookupKernelUserEntryPoints(VOID)
{
NTSTATUS Status;
NTSTATUS
NTAPI
-INIT_FUNCTION
PspMapSystemDll(IN PEPROCESS Process,
IN PVOID *DllBase,
IN BOOLEAN UseLargePages)
LARGE_INTEGER Offset = {{0, 0}};
SIZE_T ViewSize = 0;
PVOID ImageBase = 0;
-
+
/* Map the System DLL */
Status = MmMapViewOfSection(PspSystemDllSection,
Process,
/* Normalize status code */
Status = STATUS_CONFLICTING_ADDRESSES;
}
-
+
/* Write the image base and return status */
if (DllBase) *DllBase = ImageBase;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PsLocateSystemDll(VOID)
{
OBJECT_ATTRIBUTES ObjectAttributes;
return Status;
}
+INIT_FUNCTION
NTSTATUS
NTAPI
-INIT_FUNCTION
PspInitializeSystemDll(VOID)
{
NTSTATUS Status;
return Status;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
-PspInitPhase1()
+PspInitPhase1(VOID)
{
/* Initialize the System DLL and return status of operation */
if (!NT_SUCCESS(PspInitializeSystemDll())) return FALSE;
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
PspInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
NTSTATUS Status;
(PVOID*)&SysThread,
NULL);
ObCloseHandle(SysThreadHandle, KernelMode);
- SysThreadCreated = TRUE;
/* Return success */
return TRUE;
}
+INIT_FUNCTION
BOOLEAN
NTAPI
-INIT_FUNCTION
PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
/* Check the initialization phase */
*/
BOOLEAN
NTAPI
-PsGetVersion(IN PULONG MajorVersion OPTIONAL,
- IN PULONG MinorVersion OPTIONAL,
- IN PULONG BuildNumber OPTIONAL,
- IN PUNICODE_STRING CSDVersion OPTIONAL)
+PsGetVersion(OUT PULONG MajorVersion OPTIONAL,
+ OUT PULONG MinorVersion OPTIONAL,
+ OUT PULONG BuildNumber OPTIONAL,
+ OUT PUNICODE_STRING CSDVersion OPTIONAL)
{
if (MajorVersion) *MajorVersion = NtMajorVersion;
if (MinorVersion) *MinorVersion = NtMinorVersion;
- if (BuildNumber) *BuildNumber = NtBuildNumber;
+ if (BuildNumber ) *BuildNumber = NtBuildNumber & 0x3FFF;
if (CSDVersion)
{
- CSDVersion->Length = 0;
- CSDVersion->MaximumLength = 0;
- CSDVersion->Buffer = NULL;
-#if 0
CSDVersion->Length = CmCSDVersionString.Length;
- CSDVersion->MaximumLength = CmCSDVersionString.Maximum;
+ CSDVersion->MaximumLength = CmCSDVersionString.MaximumLength;
CSDVersion->Buffer = CmCSDVersionString.Buffer;
-#endif
}
- /* Check the High word */
+ /* Return TRUE if this is a Checked Build */
return (NtBuildNumber >> 28) == 0xC;
}
-NTSTATUS
-NTAPI
-NtApphelpCacheControl(IN APPHELPCACHESERVICECLASS Service,
- IN PVOID ServiceData)
-{
- UNIMPLEMENTED;
- return STATUS_NOT_IMPLEMENTED;
-}
-
/* EOF */