Additions or changes to headers: FSRTL_PER_FILEOBJECT_CONTEXT, FsRtlAreNamesEqual uses CONST buffers, KiIpiGenericCall + PKPIP_BROADCAST_WORKER, MmPageEntireDriver returns PVOID, Obf(De)referenceObject return LONG_PTR, KeGetPreviousMode is ExGetPreviousMode. KeGetCurrentPrcb is reimplemented in inline, MAX_PATH exposed to drivers.
- Changes: STATIC->static. static __inline ->FORCEINLINE. STDCALL -> NTAPI (Some). WORD/DWORD/BYTE -> NT Types.
- Kernel bugs fixed: Some string concatenations were broken, some functions had wrong return values.
svn path=/trunk/; revision=23941
#pragma GCC system_header
#endif
+#define NTKERNELAPI
+
#include "ntddk.h"
#define _NTIFS_INCLUDED_
#define NTSYSAPI
#endif
-#ifndef NTKERNELAPI
-#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined (_NTIFS_) || defined(_NTHAL_)
-#define NTKERNELAPI DECLSPEC_IMPORT
-#else
-#define NTKERNELAPI
-#endif
-#endif
-
#include "csq.h"
typedef struct _SE_EXPORTS *PSE_EXPORTS;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
+typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT
+{
+ LIST_ENTRY Links;
+ PVOID OwnerId;
+ PVOID InstanceId;
+} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;
+
#endif /* (VER_PRODUCTBUILD >= 2600) */
typedef struct _BASE_MCB
BOOLEAN
NTAPI
FsRtlAreNamesEqual (
- IN PUNICODE_STRING Name1,
- IN PUNICODE_STRING Name2,
+ IN PCUNICODE_STRING Name1,
+ IN PCUNICODE_STRING Name2,
IN BOOLEAN IgnoreCase,
- IN PWCHAR UpcaseTable OPTIONAL
+ IN PCWCH UpcaseTable OPTIONAL
);
#define FsRtlAreThereCurrentFileLocks(FL) ( \
#define DDKCDECLAPI __cdecl
/* FIXME: REMOVE THIS UNCOMPATIBLE CRUFT!!! */
-#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined (_NTIFS_) || defined(_NTHAL_)
-#define NTKERNELAPI DECLSPEC_IMPORT
-#else
#define NTKERNELAPI
-#endif
+
#ifndef NTOSAPI
#define NTOSAPI NTKERNELAPI
#endif
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL);
+typedef
+ULONG_PTR
+(*NTAPI PKIPI_BROADCAST_WORKER)(
+ IN ULONG_PTR Argument
+);
+
+NTKERNELAPI
+ULONG_PTR
+NTAPI
+KeIpiGenericCall(
+ IN PKIPI_BROADCAST_WORKER BroadcastFunction,
+ IN ULONG_PTR Context
+);
+
#if defined(_X86_)
NTHALAPI
IN KPROCESSOR_MODE AccessMode);
NTOSAPI
-VOID
+PVOID
DDKAPI
MmPageEntireDriver(
IN PVOID AddressWithinSection);
ULONG Count);
NTOSAPI
-VOID
+LONG_PTR
DDKFASTAPI
ObfDereferenceObject(
IN PVOID Object);
OUT PHANDLE Handle);
NTOSAPI
-VOID
+LONG_PTR
DDKFASTAPI
ObfReferenceObject(
IN PVOID Object);
//
// Macro to get current KPRCB
//
-#ifndef _REACTOS_ // fixme
-#define KeGetCurrentPrcb() \
- (PKPRCB)__readfsdword(KPCR_PRCB);
+#ifndef __GNUC__ // fixme
+FORCEINLINE
+struct _KPRCB *
+KeGetCurrentPrcb(VOID)
+{
+ return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KPCR, Prcb));
+}
+
+//
+// Macro to get current previous mode
+//
+#define KeGetPreviousMode ExGetPreviousMode
#endif
//
//
// Maximum Atom Length
//
-#define RTL_MAXIMUM_ATOM_LENGTH 255
+#define RTL_MAXIMUM_ATOM_LENGTH 255
//
// Process Parameters Flags
//
-#define RTL_USER_PROCESS_PARAMETERS_NORMALIZED 0x01
-#define RTL_USER_PROCESS_PARAMETERS_PROFILE_USER 0x02
-#define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x04
-#define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x08
-#define RTL_USER_PROCESS_PARAMETERS_UNKNOWN 0x10
-#define RTL_USER_PROCESS_PARAMETERS_RESERVE_1MB 0x20
-#define RTL_USER_PROCESS_PARAMETERS_DISABLE_HEAP_CHECKS 0x100
-#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_1 0x200
-#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_2 0x400
-#define RTL_USER_PROCESS_PARAMETERS_PRIVATE_DLL_PATH 0x1000
-#define RTL_USER_PROCESS_PARAMETERS_LOCAL_DLL_PATH 0x2000
-#define RTL_USER_PROCESS_PARAMETERS_NX 0x20000
+#define RTL_USER_PROCESS_PARAMETERS_NORMALIZED 0x01
+#define RTL_USER_PROCESS_PARAMETERS_PROFILE_USER 0x02
+#define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x04
+#define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x08
+#define RTL_USER_PROCESS_PARAMETERS_UNKNOWN 0x10
+#define RTL_USER_PROCESS_PARAMETERS_RESERVE_1MB 0x20
+#define RTL_USER_PROCESS_PARAMETERS_DISABLE_HEAP_CHECKS 0x100
+#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_1 0x200
+#define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_2 0x400
+#define RTL_USER_PROCESS_PARAMETERS_PRIVATE_DLL_PATH 0x1000
+#define RTL_USER_PROCESS_PARAMETERS_LOCAL_DLL_PATH 0x2000
+#define RTL_USER_PROCESS_PARAMETERS_NX 0x20000
//
// Exception Flags
//
-#define EXCEPTION_CHAIN_END ((PEXCEPTION_REGISTRATION_RECORD)-1)
-#define EXCEPTION_UNWINDING 0x02
-#define EXCEPTION_EXIT_UNWIND 0x04
-#define EXCEPTION_STACK_INVALID 0x08
-#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING + EXCEPTION_EXIT_UNWIND)
-#define EXCEPTION_NESTED_CALL 0x10
-#define EXCEPTION_TARGET_UNWIND 0x20
-#define EXCEPTION_COLLIDED_UNWIND 0x20
+#define EXCEPTION_CHAIN_END ((PEXCEPTION_REGISTRATION_RECORD)-1)
+#define EXCEPTION_UNWINDING 0x02
+#define EXCEPTION_EXIT_UNWIND 0x04
+#define EXCEPTION_STACK_INVALID 0x08
+#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING + EXCEPTION_EXIT_UNWIND)
+#define EXCEPTION_NESTED_CALL 0x10
+#define EXCEPTION_TARGET_UNWIND 0x20
+#define EXCEPTION_COLLIDED_UNWIND 0x20
//
// Range and Range List Flags
//
-#define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
-#define RTL_RANGE_LIST_ADD_SHARED 0x00000002
+#define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
+#define RTL_RANGE_LIST_ADD_SHARED 0x00000002
-#define RTL_RANGE_SHARED 0x01
-#define RTL_RANGE_CONFLICT 0x02
+#define RTL_RANGE_SHARED 0x01
+#define RTL_RANGE_CONFLICT 0x02
//
// Activation Context Frame Flags
//
// Registry Keys
//
-#define RTL_REGISTRY_ABSOLUTE 0
-#define RTL_REGISTRY_SERVICES 1
-#define RTL_REGISTRY_CONTROL 2
-#define RTL_REGISTRY_WINDOWS_NT 3
-#define RTL_REGISTRY_DEVICEMAP 4
-#define RTL_REGISTRY_USER 5
-#define RTL_REGISTRY_MAXIMUM 6
-#define RTL_REGISTRY_HANDLE 0x40000000
-#define RTL_REGISTRY_OPTIONAL 0x80000000
-#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
-#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
-#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
-#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
-#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
-#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
-#define RTL_QUERY_REGISTRY_DELETE 0x00000040
+#define RTL_REGISTRY_ABSOLUTE 0
+#define RTL_REGISTRY_SERVICES 1
+#define RTL_REGISTRY_CONTROL 2
+#define RTL_REGISTRY_WINDOWS_NT 3
+#define RTL_REGISTRY_DEVICEMAP 4
+#define RTL_REGISTRY_USER 5
+#define RTL_REGISTRY_MAXIMUM 6
+#define RTL_REGISTRY_HANDLE 0x40000000
+#define RTL_REGISTRY_OPTIONAL 0x80000000
+#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
+#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
+#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
+#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
+#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
+#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
+#define RTL_QUERY_REGISTRY_DELETE 0x00000040
//
// Versioning
//
-#define VER_MINORVERSION 0x0000001
-#define VER_MAJORVERSION 0x0000002
-#define VER_BUILDNUMBER 0x0000004
-#define VER_PLATFORMID 0x0000008
-#define VER_SERVICEPACKMINOR 0x0000010
-#define VER_SERVICEPACKMAJOR 0x0000020
-#define VER_SUITENAME 0x0000040
-#define VER_PRODUCT_TYPE 0x0000080
-#define VER_PLATFORM_WIN32s 0
-#define VER_PLATFORM_WIN32_WINDOWS 1
-#define VER_PLATFORM_WIN32_NT 2
-#define VER_EQUAL 1
-#define VER_GREATER 2
-#define VER_GREATER_EQUAL 3
-#define VER_LESS 4
-#define VER_LESS_EQUAL 5
-#define VER_AND 6
-#define VER_OR 7
-#define VER_CONDITION_MASK 7
-#define VER_NUM_BITS_PER_CONDITION_MASK 3
+#define VER_MINORVERSION 0x0000001
+#define VER_MAJORVERSION 0x0000002
+#define VER_BUILDNUMBER 0x0000004
+#define VER_PLATFORMID 0x0000008
+#define VER_SERVICEPACKMINOR 0x0000010
+#define VER_SERVICEPACKMAJOR 0x0000020
+#define VER_SUITENAME 0x0000040
+#define VER_PRODUCT_TYPE 0x0000080
+#define VER_PLATFORM_WIN32s 0
+#define VER_PLATFORM_WIN32_WINDOWS 1
+#define VER_PLATFORM_WIN32_NT 2
+#define VER_EQUAL 1
+#define VER_GREATER 2
+#define VER_GREATER_EQUAL 3
+#define VER_LESS 4
+#define VER_LESS_EQUAL 5
+#define VER_AND 6
+#define VER_OR 7
+#define VER_CONDITION_MASK 7
+#define VER_NUM_BITS_PER_CONDITION_MASK 3
//
// Timezone IDs
//
-#define TIME_ZONE_ID_UNKNOWN 0
-#define TIME_ZONE_ID_STANDARD 1
-#define TIME_ZONE_ID_DAYLIGHT 2
+#define TIME_ZONE_ID_UNKNOWN 0
+#define TIME_ZONE_ID_STANDARD 1
+#define TIME_ZONE_ID_DAYLIGHT 2
+
+//
+// Maximum Path Length
+//
+#define MAX_PATH 260
//
// RTL Lock Type (Critical Section or Resource)
#ifndef __REACTOS_LDR_H\r
#define __REACTOS_LDR_H\r
\r
-#define MB_FLAGS_MEM_INFO (0x1)
-#define MB_FLAGS_BOOT_DEVICE (0x2)
-#define MB_FLAGS_COMMAND_LINE (0x4)
-#define MB_FLAGS_MODULE_INFO (0x8)
-#define MB_FLAGS_AOUT_SYMS (0x10)
-#define MB_FLAGS_ELF_SYMS (0x20)
-#define MB_FLAGS_MMAP_INFO (0x40)
-#define MB_FLAGS_DRIVES_INFO (0x80)
-#define MB_FLAGS_CONFIG_TABLE (0x100)
-#define MB_FLAGS_BOOT_LOADER_NAME (0x200)
-#define MB_FLAGS_APM_TABLE (0x400)
-#define MB_FLAGS_GRAPHICS_TABLE (0x800)
-#define MB_FLAGS_ACPI_TABLE (0x1000)
-
-typedef struct _LOADER_MODULE
-{
- ULONG ModStart;
- ULONG ModEnd;
- ULONG String;
- ULONG Reserved;
+#define MB_FLAGS_MEM_INFO (0x1)\r
+#define MB_FLAGS_BOOT_DEVICE (0x2)\r
+#define MB_FLAGS_COMMAND_LINE (0x4)\r
+#define MB_FLAGS_MODULE_INFO (0x8)\r
+#define MB_FLAGS_AOUT_SYMS (0x10)\r
+#define MB_FLAGS_ELF_SYMS (0x20)\r
+#define MB_FLAGS_MMAP_INFO (0x40)\r
+#define MB_FLAGS_DRIVES_INFO (0x80)\r
+#define MB_FLAGS_CONFIG_TABLE (0x100)\r
+#define MB_FLAGS_BOOT_LOADER_NAME (0x200)\r
+#define MB_FLAGS_APM_TABLE (0x400)\r
+#define MB_FLAGS_GRAPHICS_TABLE (0x800)\r
+#define MB_FLAGS_ACPI_TABLE (0x1000)\r
+\r
+typedef struct _LOADER_MODULE\r
+{\r
+ ULONG ModStart;\r
+ ULONG ModEnd;\r
+ ULONG String;\r
+ ULONG Reserved;\r
} LOADER_MODULE, *PLOADER_MODULE;\r
\r
-typedef struct _ROS_LOADER_PARAMETER_BLOCK
-{
- ULONG Flags;
- ULONG MemLower;
- ULONG MemHigher;
- ULONG BootDevice;
- ULONG CommandLine;
- ULONG ModsCount;
- ULONG ModsAddr;
- UCHAR Syms[12];
- ULONG MmapLength;
- ULONG MmapAddr;
- ULONG DrivesCount;
- ULONG DrivesAddr;
- ULONG ConfigTable;
- ULONG BootLoaderName;
- ULONG PageDirectoryStart;
- ULONG PageDirectoryEnd;
- ULONG KernelBase;
+typedef struct _ROS_LOADER_PARAMETER_BLOCK\r
+{\r
+ ULONG Flags;\r
+ ULONG MemLower;\r
+ ULONG MemHigher;\r
+ ULONG BootDevice;\r
+ ULONG CommandLine;\r
+ ULONG ModsCount;\r
+ ULONG ModsAddr;\r
+ UCHAR Syms[12];\r
+ ULONG MmapLength;\r
+ ULONG MmapAddr;\r
+ ULONG DrivesCount;\r
+ ULONG DrivesAddr;\r
+ ULONG ConfigTable;\r
+ ULONG BootLoaderName;\r
+ ULONG PageDirectoryStart;\r
+ ULONG PageDirectoryEnd;\r
+ ULONG KernelBase;\r
} ROS_LOADER_PARAMETER_BLOCK, *PROS_LOADER_PARAMETER_BLOCK;\r
\r
#endif\r
return(STATUS_SUCCESS);
}
-NTSTATUS STATIC
+NTSTATUS static
CcRosCreateCacheSegment(PBCB Bcb,
ULONG FileOffset,
PCACHE_SEGMENT* CacheSeg)
}
#ifdef CACHE_BITMAP
#else
-STATIC VOID
+static VOID
CcFreeCachePage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PFN_TYPE Page, SWAPENTRY SwapEntry, BOOLEAN Dirty)
{
CmiRemoveKeyFromList(PKEY_OBJECT KeyToRemove)
{
PKEY_OBJECT ParentKey;
- DWORD Index;
+ ULONG Index;
ParentKey = KeyToRemove->ParentKey;
/* FIXME: If list maintained in alphabetic order, use dichotomic search */
}\r
}\r
\r
-STATIC VOID\r
+static VOID\r
KeIRQTrapFrameToTrapFrame(PKIRQ_TRAPFRAME IrqTrapFrame,\r
PKTRAP_FRAME TrapFrame)\r
{\r
TrapFrame->EFlags = IrqTrapFrame->Eflags;\r
}\r
\r
-STATIC VOID\r
+static VOID\r
KeTrapFrameToIRQTrapFrame(PKTRAP_FRAME TrapFrame,\r
PKIRQ_TRAPFRAME IrqTrapFrame)\r
{\r
* Optional string parameter (can be only one per error code)
*
* @param Parameters
- * Array of DWORD parameters for use in error message string
+ * Array of ULONG parameters for use in error message string
*
* @param ValidResponseOptions
* See HARDERROR_RESPONSE_OPTION for possible values description
* Optional string parameter (can be only one per error code)
*
* @param Parameters
- * Array of DWORD parameters for use in error message string
+ * Array of ULONG parameters for use in error message string
*
* @param ValidResponseOptions
* See HARDERROR_RESPONSE_OPTION for possible values description
/* Initialize the system registry location */
RtlInitUnicodeString(&KeyName,
L"\\Registry\\Machine\\System\\CurrentControlSet"
- "\\Control\\Nls\\Language");
+ L"\\Control\\Nls\\Language");
RtlInitUnicodeString(&ValueName, L"Default");
}
*/
NTSTATUS
NTAPI
-FsRtlInsertPerFileObjectContext(IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
- IN PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/ Ptr)
+FsRtlInsertPerFileObjectContext(IN PFILE_OBJECT FileObject,
+ IN PFSRTL_PER_FILEOBJECT_CONTEXT Ptr)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
/*
* @unimplemented
*/
-PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
+PFSRTL_PER_FILEOBJECT_CONTEXT
NTAPI
FsRtlRemovePerFileObjectContext(IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
IN PVOID OwnerId OPTIONAL,
IN PFILE_LOCK FileLock,
IN PFILE_OBJECT FileObject,
IN PEPROCESS Process,
- IN DWORD Key,
+ IN ULONG Key,
IN BOOLEAN UseKey,
IN PVOID Context OPTIONAL
)
*--*/
BOOLEAN
NTAPI
-FsRtlAreNamesEqual(IN PUNICODE_STRING Name1,
- IN PUNICODE_STRING Name2,
+FsRtlAreNamesEqual(IN PCUNICODE_STRING Name1,
+ IN PCUNICODE_STRING Name2,
IN BOOLEAN IgnoreCase,
- IN PWCHAR UpcaseTable OPTIONAL)
+ IN PCWCH UpcaseTable OPTIONAL)
{
UNICODE_STRING UpcaseName1;
UNICODE_STRING UpcaseName2;
* @remarks None
*
*--*/
+#undef FsRtlAllocatePoolWithQuotaTag
PVOID
NTAPI
FsRtlAllocatePoolWithQuotaTag (IN POOL_TYPE PoolType,
* @remarks None
*
*--*/
+#undef FsRtlAllocatePoolWithTag
PVOID
NTAPI
FsRtlAllocatePoolWithTag(IN POOL_TYPE PoolType,
* @remarks None.
*
*--*/
-BOOLEAN
+LOGICAL
NTAPI
FsRtlIsPagingFile(IN PFILE_OBJECT FileObject)
{
*--*/
NTSTATUS
NTAPI
-FsRtlSyncVolumes(DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2)
+FsRtlSyncVolumes(ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2)
{
return STATUS_SUCCESS;
}
/* DATA **********************************************************************/
static HANDLE BootVidDevice = NULL;
-static BOOL BootVidDriverInstalled = FALSE;
+static BOOLEAN BootVidDriverInstalled = FALSE;
static NTBOOTVID_FUNCTION_TABLE BootVidFunctionTable;
/* FUNCTIONS *****************************************************************/
NTSTATUS
-STATIC
+static
InbvCheckBootVid(VOID)
{
IO_STATUS_BLOCK Iosb;
*/
#define KEBUGCHECKCC \
KEBUGCHECKEX(CACHE_MANAGER, \
- (*(DWORD*)(__FILE__ + sizeof(__FILE__) - 4) << 16) | \
+ (*(ULONG*)(__FILE__ + sizeof(__FILE__) - 4) << 16) | \
(__LINE__ & 0xFFFF), 0, 0, 0)
#endif
#else /* DBG */
+#ifdef __GNUC__ /* using GNU C/C99 macro ellipsis */
#define CPRINT(args...)
#define DPRINT1(args...)
+#else
+#define CPRINT
+#define DPRINT1
+#endif
#ifndef __USE_W32API
#define assert(x)
#define ASSERT(x)
#define ExReleaseResourceLock(l, i) KeReleaseSpinLock(l, i);
#endif
+#define ExAcquireRundownProtection _ExAcquireRundownProtection
+#define ExReleaseRundownProtection _ExReleaseRundownProtection
+#define ExInitializeRundownProtection _ExInitializeRundownProtection
+#define ExWaitForRundownProtectionRelease _ExWaitForRundownProtectionRelease
+#define ExRundownCompleted _ExRundownCompleted
+
/* INITIALIZATION FUNCTIONS *************************************************/
VOID
*--*/
BOOLEAN
FORCEINLINE
-ExAcquireRundownProtection(IN PEX_RUNDOWN_REF RunRef)
+_ExAcquireRundownProtection(IN PEX_RUNDOWN_REF RunRef)
{
ULONG_PTR Value, NewValue, OldValue;
*--*/
VOID
FORCEINLINE
-ExReleaseRundownProtection(IN PEX_RUNDOWN_REF RunRef)
+_ExReleaseRundownProtection(IN PEX_RUNDOWN_REF RunRef)
{
ULONG_PTR Value, NewValue, OldValue;
*--*/
VOID
FORCEINLINE
-ExInitializeRundownProtection(IN PEX_RUNDOWN_REF RunRef)
+_ExInitializeRundownProtection(IN PEX_RUNDOWN_REF RunRef)
{
/* Set the count to zero */
RunRef->Count = 0;
*--*/
VOID
FORCEINLINE
-ExWaitForRundownProtectionRelease(IN PEX_RUNDOWN_REF RunRef)
+_ExWaitForRundownProtectionRelease(IN PEX_RUNDOWN_REF RunRef)
{
ULONG_PTR Value;
*--*/
VOID
FORCEINLINE
-ExRundownCompleted(IN PEX_RUNDOWN_REF RunRef)
+_ExRundownCompleted(IN PEX_RUNDOWN_REF RunRef)
{
/* Sanity check */
ASSERT((RunRef->Count & EX_RUNDOWN_ACTIVE) != 0);
#include "i386/v86m.h"
#include "ob.h"
#include "mm.h"
-#include "ex.h"
+#include "ex2.h"
#include "ps.h"
#include "cc.h"
#include "io.h"
LOCK_OPERATION Operation
);
-typedef VOID
+typedef LONG_PTR
FASTCALL
PObDereferenceObject(PVOID Object);
/* INCLUDES ******************************************************************/
/* We are the Kernel */
-#define NTKERNELAPI
#define _NTSYSTEM_
/* DDK/IFS/NDK Headers */
-#ifdef __GNUC__
-#include <ntddk.h>
-#endif
#include <ntifs.h>
#include <wdmguid.h>
#include <arc/arc.h>
-#include <ndk/ntndk.h>
+#include <ntndk.h>
#undef TEXT
#define TEXT(s) L##s
#include <regstr.h>
/* FUNCTIONS ****************************************************************/
-STATIC
+static
NTSTATUS
STDCALL
INIT_FUNCTION
#define ROOT_NAME L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\MultifunctionAdapter"
-STATIC VOID INIT_FUNCTION
+static VOID INIT_FUNCTION
IopEnumerateBiosDisks(PLIST_ENTRY ListHead)
{
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
}
}
-STATIC VOID INIT_FUNCTION
+static VOID INIT_FUNCTION
IopEnumerateDisks(PLIST_ENTRY ListHead)
{
ULONG i, k;
}
}
-STATIC NTSTATUS INIT_FUNCTION
+static NTSTATUS INIT_FUNCTION
IopAssignArcNamesToDisk(PDEVICE_OBJECT DeviceObject, ULONG RDisk, ULONG DiskNumber)
{
WCHAR DeviceNameBuffer[80];
if (DeviceExtension->StartIoFlags & DOE_SIO_DEFERRED)
{
/* Call our internal function to handle the defered case */
- return IopStartNextPacketByKeyEx(DeviceObject,
- Key,
- DOE_SIO_WITH_KEY |
- (Cancelable) ? DOE_SIO_CANCELABLE : 0);
+ IopStartNextPacketByKeyEx(DeviceObject,
+ Key,
+ DOE_SIO_WITH_KEY |
+ (Cancelable) ? DOE_SIO_CANCELABLE : 0);
}
else
{
/* Call the normal routine */
- return IopStartNextPacketByKey(DeviceObject, Cancelable, Key);
+ IopStartNextPacketByKey(DeviceObject, Cancelable, Key);
}
}
if (DeviceExtension->StartIoFlags & DOE_SIO_DEFERRED)
{
/* Call our internal function to handle the defered case */
- return IopStartNextPacketByKeyEx(DeviceObject,
- 0,
- DOE_SIO_NO_KEY |
- (Cancelable) ? DOE_SIO_CANCELABLE : 0);
+ IopStartNextPacketByKeyEx(DeviceObject,
+ 0,
+ DOE_SIO_NO_KEY |
+ (Cancelable) ? DOE_SIO_CANCELABLE : 0);
}
else
{
/* Call the normal routine */
- return IopStartNextPacket(DeviceObject, Cancelable);
+ IopStartNextPacket(DeviceObject, Cancelable);
}
}
\r
if (ValueType == REG_BINARY &&\r
ValueData != NULL &&\r
- ValueLength >= sizeof(DWORD) &&\r
- ValueLength >= (*(PULONG)ValueData + 1) * sizeof(DWORD))\r
+ ValueLength >= sizeof(ULONG) &&\r
+ ValueLength >= (*(PULONG)ValueData + 1) * sizeof(ULONG))\r
{\r
Group = (PSERVICE_GROUP)Context;\r
Group->TagCount = ((PULONG)ValueData)[0];\r
if (Group->TagCount > 0)\r
{\r
- if (ValueLength >= (Group->TagCount + 1) * sizeof(DWORD))\r
+ if (ValueLength >= (Group->TagCount + 1) * sizeof(ULONG))\r
{\r
- Group->TagArray = ExAllocatePool(NonPagedPool, Group->TagCount * sizeof(DWORD));\r
+ Group->TagArray = ExAllocatePool(NonPagedPool, Group->TagCount * sizeof(ULONG));\r
if (Group->TagArray == NULL)\r
{\r
Group->TagCount = 0;\r
return STATUS_INSUFFICIENT_RESOURCES;\r
}\r
- memcpy(Group->TagArray, (PULONG)ValueData + 1, Group->TagCount * sizeof(DWORD));\r
+ memcpy(Group->TagArray, (PULONG)ValueData + 1, Group->TagCount * sizeof(ULONG));\r
}\r
else\r
{\r
PUNICODE_STRING DeviceIds)
{
PPNP_EVENT_ENTRY EventEntry;
- DWORD TotalSize;
+ ULONG TotalSize;
TotalSize =
FIELD_OFFSET(PLUGPLAY_EVENT_BLOCK, TargetDevice.DeviceIds) +
IO_STATUS_BLOCK IoStatusBlock;
PDEVICE_NODE ChildDeviceNode;
IO_STACK_LOCATION Stack;
- BOOL BootDrivers;
+ BOOLEAN BootDrivers;
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING LinkName;
HANDLE Handle;
KdpBochsInit(PKD_DISPATCH_TABLE DispatchTable,
ULONG BootPhase)
{
- BYTE Value;
+ UCHAR Value;
if (!KdpDebugMode.Bochs) return;
if (BootPhase == 0)
typedef struct _CPU_REGISTER
{
- DWORD Size;
- DWORD OffsetInTF;
- DWORD OffsetInContext;
+ ULONG Size;
+ ULONG OffsetInTF;
+ ULONG OffsetInContext;
BOOLEAN SetInContext;
} CPU_REGISTER, *PCPU_REGISTER;
{
ULONG_PTR Value;
PULONG p;
- DWORD i;
+ ULONG i;
PETHREAD Thread;
ULONG_PTR *KernelStack;
ULONG Value;
PCHAR Buffer;
PULONG p;
- DWORD i;
+ ULONG i;
if (!TrapFrame)
{
/*
* @implemented
*/
+#undef KeQueryTickCount
VOID
STDCALL
KeQueryTickCount(PLARGE_INTEGER TickCount)
KeReleaseSpinLock(&GdtLock, oldIrql);
}
-BOOL PspIsDescriptorValid(PLDT_ENTRY ldt_entry)
+BOOLEAN PspIsDescriptorValid(PLDT_ENTRY ldt_entry)
{
ULONG Base, SegLimit;
/*
VOID
STDCALL
-KiIpiSendPacket(KAFFINITY TargetSet, VOID (STDCALL*WorkerRoutine)(PVOID), PVOID Argument, ULONG Count, BOOLEAN Synchronize)
+KiIpiSendPacket(KAFFINITY TargetSet, PKIPI_BROADCAST_WORKER WorkerRoutine, ULONG_PTR Argument, ULONG Count, BOOLEAN Synchronize)
{
KAFFINITY Processor;
LONG i;
}
}
-VOID
+ULONG_PTR
NTAPI
-KeIpiGenericCall(VOID (STDCALL *Function)(PVOID), PVOID Argument)
+KeIpiGenericCall(PKIPI_BROADCAST_WORKER Function, ULONG_PTR Argument)
{
KIRQL oldIrql;
KAFFINITY TargetSet;
KeLowerIrql(oldIrql);
DPRINT("KeIpiGenericCall on CPU%d done\n", KeGetCurrentProcessorNumber());
+ return 0; // FIXME
}
return (UCHAR)Result;
}
-STATIC
+static
VOID
KiRequestReschedule(CCHAR Processor)
{
KiIpiSendRequest(1 << Processor, IPI_DPC);
}
-STATIC
+static
VOID
KiInsertIntoThreadList(KPRIORITY Priority,
PKTHREAD Thread)
PriorityListMask |= (1 << Priority);
}
-STATIC
+static
VOID
KiRemoveFromThreadList(PKTHREAD Thread)
{
}
}
-STATIC
+static
PKTHREAD
KiScanThreadList(KPRIORITY Priority,
KAFFINITY Affinity)
LdrPEGetExportByName (
PVOID BaseAddress,
PUCHAR SymbolName,
- WORD Hint );
+ USHORT Hint );
static PVOID
LdrPEFixupForward ( PCHAR ForwardName );
PLDR_DATA_TABLE_ENTRY *ModuleObject )
{
unsigned int DriverSize, Idx;
- DWORD CurrentSize;
+ ULONG CurrentSize;
PVOID DriverBase;
PIMAGE_DOS_HEADER PEDosHeader;
PIMAGE_NT_HEADERS PENtHeaders;
LdrPEGetExportByName (
PVOID BaseAddress,
PUCHAR SymbolName,
- WORD Hint )
+ USHORT Hint )
{
PIMAGE_EXPORT_DIRECTORY ExportDir;
- PDWORD * ExFunctions;
- PDWORD * ExNames;
+ PULONG * ExFunctions;
+ PULONG * ExNames;
USHORT * ExOrdinals;
PVOID ExName;
ULONG Ordinal;
/*
* Get header pointers
*/
- ExNames = (PDWORD *)RVA(BaseAddress, ExportDir->AddressOfNames);
+ ExNames = (PULONG *)RVA(BaseAddress, ExportDir->AddressOfNames);
ExOrdinals = (USHORT *)RVA(BaseAddress, ExportDir->AddressOfNameOrdinals);
- ExFunctions = (PDWORD *)RVA(BaseAddress, ExportDir->AddressOfFunctions);
+ ExFunctions = (PULONG *)RVA(BaseAddress, ExportDir->AddressOfFunctions);
/*
* Check the hint first
{
PIMAGE_EXPORT_DIRECTORY ExportDir;
ULONG ExportDirSize;
- PDWORD * ExFunctions;
+ PULONG * ExFunctions;
PVOID Function;
ExportDir = (PIMAGE_EXPORT_DIRECTORY)RtlImageDirectoryEntryToData (
IMAGE_DIRECTORY_ENTRY_EXPORT,
&ExportDirSize);
- ExFunctions = (PDWORD *)RVA(BaseAddress,
+ ExFunctions = (PULONG *)RVA(BaseAddress,
ExportDir->AddressOfFunctions);
DPRINT("LdrPEGetExportByOrdinal(Ordinal %d) = %x\n",
Ordinal,
*
* RETURN VALUE
*/
-STATIC NTSTATUS STDCALL
+static NTSTATUS STDCALL
LpcpVerifyCreateParameters (IN PHANDLE PortHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG MaxConnectInfoLength,
return(STATUS_SUCCESS);
}
-VOID STATIC
+VOID static
MmModifyAttributes(PMADDRESS_SPACE AddressSpace,
PVOID BaseAddress,
ULONG RegionSize,
return(STATUS_SUCCESS);
}
-VOID STATIC
+VOID static
MmFreeVirtualMemoryPage(PVOID Context,
MEMORY_AREA* MemoryArea,
PVOID Address,
VOID STDCALL
MmLockPagableSectionByHandle(IN PVOID ImageSectionHandle)
{
- // MmLockMemoryArea((MEMORY_AREA *)ImageSectionHandle);
- DPRINT1("MmLockPagableSectionByHandle is unimplemented\n");
+ UNIMPLEMENTED;
}
*/
VOID STDCALL
MmUnlockPagableImageSection(IN PVOID ImageSectionHandle)
-{}
-
+{
+ UNIMPLEMENTED;
+}
/*
* @unimplemented
*/
-VOID STDCALL
+PVOID STDCALL
MmPageEntireDriver(IN PVOID AddressWithinSection)
-{}
+{
+ UNIMPLEMENTED;
+ return NULL;
+}
/*
*/
VOID STDCALL
MmResetDriverPaging(IN PVOID AddressWithinSection)
-{}
+{
+ UNIMPLEMENTED;
+}
/* EOF */
IN ULONG DataType
)
{
- PBYTE p;
+ PUCHAR p;
if(DataType == ELF_TARG_DATA)
return Input;
- p = (PBYTE)&Input;
+ p = (PUCHAR)&Input;
switch(DataType)
{
IN ULONG DataType
)
{
- PBYTE p;
+ PUCHAR p;
if(DataType == ELF_TARG_DATA)
return Input;
- p = (PBYTE)&Input;
+ p = (PUCHAR)&Input;
switch(DataType)
{
IN ULONG DataType
)
{
- PBYTE p;
+ PUCHAR p;
if(DataType == ELF_TARG_DATA)
return Input;
- p = (PBYTE)&Input;
+ p = (PUCHAR)&Input;
switch(DataType)
{
IN ULONG DataType
)
{
- PBYTE p;
+ PUCHAR p;
ULONG64 nSafeInput;
RtlRetrieveUlonglong(&nSafeInput, Input);
- p = (PBYTE)&nSafeInput;
+ p = (PUCHAR)&nSafeInput;
switch(DataType)
{
IN ULONG DataType
)
{
- PBYTE p;
+ PUCHAR p;
ULONG nSafeInput;
union
{
if(DataType == ELF_TARG_DATA)
return nSafeInput;
- p = (PBYTE)&nSafeInput;
+ p = (PUCHAR)&nSafeInput;
switch(DataType)
{
/*
* @unimplemented
*/
-DWORD STDCALL
-MmAdjustWorkingSetSize (DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2)
+ULONG STDCALL
+MmAdjustWorkingSetSize (ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2)
{
UNIMPLEMENTED;
return (0);
}
-DWORD
+ULONG
STDCALL
MmDbgTranslatePhysicalAddress (
- DWORD Unknown0,
- DWORD Unknown1
+ ULONG Unknown0,
+ ULONG Unknown1
)
{
UNIMPLEMENTED;
/* FIXME: Read parameters from memory */
}
-VOID STATIC
+VOID static
MiFreeInitMemoryPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PFN_TYPE Page, SWAPENTRY SwapEntry,
BOOLEAN Dirty)
return ((PVOID)Result);
}
-VOID STATIC
+VOID static
MmFreeNonCachedPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PFN_TYPE Page, SWAPENTRY SwapEntry,
BOOLEAN Dirty)
#define HDR_FREE_SIZE ROUND_UP(sizeof(HDR_FREE), MM_POOL_ALIGNMENT)
-#if defined(NPOOL_REDZONE_CHECK) || #defined(NPOOL_REDZONE_CHECK_FULL)
+#if defined(NPOOL_REDZONE_CHECK) || defined(NPOOL_REDZONE_CHECK_FULL)
#define HDR_USED_SIZE ROUND_UP(sizeof(HDR_USED) + NPOOL_REDZONE_SIZE, MM_POOL_ALIGNMENT)
#else
#define HDR_USED_SIZE ROUND_UP(sizeof(HDR_USED), MM_POOL_ALIGNMENT)
#endif /* TAG_STATISTICS_TRACKING */
#if defined(TAG_STATISTICS_TRACKING)
-VOID STATIC
+VOID static
MiDumpTagStats(ULONG CurrentTag, ULONG CurrentNrBlocks, ULONG CurrentSize)
{
CHAR c1, c2, c3, c4;
#endif
#if 0
-STATIC VOID
+static VOID
free_pages(HDR_FREE* blk)
{
ULONG start;
*/
{
HDR_FREE* current;
- BOOL UpdatePrevPtr = FALSE;
+ BOOLEAN UpdatePrevPtr = FALSE;
DPRINT("add_to_free_list (%d)\n", blk->hdr.Size);
#if defined(NPOOL_REDZONE_CHECK) || defined(NPOOL_REDZONE_CHECK_FULL)
void check_redzone_header(HDR_USED* hdr)
{
- PBYTE LoZone = (PBYTE)((ULONG_PTR)hdr + HDR_USED_SIZE - NPOOL_REDZONE_SIZE);
- PBYTE HiZone = (PBYTE)((ULONG_PTR)hdr + HDR_USED_SIZE + hdr->UserSize);
- BOOL LoOK = TRUE;
- BOOL HiOK = TRUE;
+ PUCHAR LoZone = (PUCHAR)((ULONG_PTR)hdr + HDR_USED_SIZE - NPOOL_REDZONE_SIZE);
+ PUCHAR HiZone = (PUCHAR)((ULONG_PTR)hdr + HDR_USED_SIZE + hdr->UserSize);
+ BOOLEAN LoOK = TRUE;
+ BOOLEAN HiOK = TRUE;
ULONG i;
CHAR c[5];
}
}
-LARGE_INTEGER STATIC
+LARGE_INTEGER static
MmGetOffsetPageFile(PRETRIEVAL_POINTERS_BUFFER RetrievalPointers, LARGE_INTEGER Offset)
{
/* Simple binary search */
return(0);
}
-STATIC PRETRIEVEL_DESCRIPTOR_LIST FASTCALL
+static PRETRIEVEL_DESCRIPTOR_LIST FASTCALL
MmAllocRetrievelDescriptorList(ULONG Pairs)
{
ULONG Size;
if (!(TrapFrame->EFlags & (1 << 17)))
{
memcpy(&Headers->TrapFrame, TrapFrame,
- sizeof(KTRAP_FRAME) - (4 * sizeof(DWORD)));
+ sizeof(KTRAP_FRAME) - (4 * sizeof(ULONG)));
}
else
{
/* FUNCTIONS ***************************************************************/
-STATIC PVOID STDCALL
+static PVOID STDCALL
EiAllocatePool(POOL_TYPE PoolType,
ULONG NumberOfBytes,
ULONG Tag,
/* INCLUDES *****************************************************************/
-#ifdef PPOOL_UMODE_TEST
-#include "ppool_umode.h"
-#else//PPOOL_UMODE_TEST
#include <ntoskrnl.h>
#define NDEBUG
#include <internal/debug.h>
-#endif//PPOOL_UMODE_TEST
#if defined (ALLOC_PRAGMA)
#pragma alloc_text(INIT, MmInitializePagedPool)
char* trash[COUNT];
int AllocSize[] = { 15, 31, 63, 127, 255, 511, 1023, 2047 };
const int ALLOCS = sizeof(AllocSize) / sizeof(0[AllocSize]);
- DWORD dwStart;
+ ULONG dwStart;
MmPagedPoolSize = 1*1024*1024;
MmPagedPoolBase = malloc ( MmPagedPoolSize );
/* FUNCTIONS *****************************************************************/
-VOID STATIC
+VOID static
InsertAfterEntry(PLIST_ENTRY Previous,
PLIST_ENTRY Entry)
/*
Previous->Flink = Entry;
}
-PMM_REGION STATIC
+PMM_REGION static
MmSplitRegion(PMM_REGION InitialRegion, PVOID InitialBaseAddress,
PVOID StartAddress, ULONG Length, ULONG NewType,
ULONG NewProtect, PMADDRESS_SPACE AddressSpace,
return(SHARE_COUNT_FROM_SSE(Entry) > 0);
}
-BOOL MiIsPageFromCache(PMEMORY_AREA MemoryArea,
+BOOLEAN MiIsPageFromCache(PMEMORY_AREA MemoryArea,
ULONG SegOffset)
{
if (!(MemoryArea->Data.SectionData.Segment->Characteristics & IMAGE_SCN_MEM_SHARED))
ULONG Attributes;
PMM_PAGEOP PageOp;
PMM_REGION Region;
- BOOL HasSwapEntry;
+ BOOLEAN HasSwapEntry;
/*
* There is a window between taking the page fault and locking the
return(STATUS_SUCCESS);
}
-VOID STATIC
+VOID static
MmAlterViewAttributes(PMADDRESS_SPACE AddressSpace,
PVOID BaseAddress,
ULONG RegionSize,
{
PMEMORY_AREA MemoryArea;
PMM_SECTION_SEGMENT Segment;
- BOOL DoCOW = FALSE;
+ BOOLEAN DoCOW = FALSE;
ULONG i;
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, BaseAddress);
if (Section->AllocationAttributes & SEC_IMAGE)
{
Segment = MemoryArea->Data.SectionData.Segment;
- Info->AllocationBase = (PBYTE)MemoryArea->StartingAddress - Segment->VirtualAddress;
+ Info->AllocationBase = (PUCHAR)MemoryArea->StartingAddress - Segment->VirtualAddress;
Info->Type = MEM_IMAGE;
}
else
return(Status);
}
-NTSTATUS STATIC
+NTSTATUS static
MmMapViewOfSegment(PMADDRESS_SPACE AddressSpace,
PROS_SECTION_OBJECT Section,
PMM_SECTION_SEGMENT Segment,
return(Status);
}
-VOID STATIC
+VOID static
MmFreeSectionPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PFN_TYPE Page, SWAPENTRY SwapEntry, BOOLEAN Dirty)
{
}
}
-STATIC NTSTATUS
+static NTSTATUS
MmUnmapViewOfSegment(PMADDRESS_SPACE AddressSpace,
PVOID BaseAddress)
{
* @unimplemented
*/
BOOLEAN STDCALL
-MmDisableModifiedWriteOfSection (DWORD Unknown0)
+MmDisableModifiedWriteOfSection (ULONG Unknown0)
{
UNIMPLEMENTED;
return (FALSE);
* @unimplemented
*/
NTSTATUS STDCALL
-MmSetBankedSection (DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5)
+MmSetBankedSection (ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2,
+ ULONG Unknown3,
+ ULONG Unknown4,
+ ULONG Unknown5)
{
UNIMPLEMENTED;
return (STATUS_NOT_IMPLEMENTED);
NumberOfBytesLocked,
ObReferenceObjectByHandle,
MmCreateMdl,
- ObfDereferenceObject,
+ (PVOID)ObfDereferenceObject,
MmProbeAndLockPages,
ExFreePool);
}
<define name="_NTOSKRNL_" />
<define name="__NO_CTYPE_INLINES" />
<define name="__USE_W32API" />
+ <define name="WIN9X_COMPAT_SPINLOCK" />
<include base="kjs">include</include>
<include base="cmlib">.</include>
<include base="ntoskrnl">include</include>
NTSTATUS Status = STATUS_SUCCESS;
ULONG StringLength, MaximumLength;
PWCHAR StringBuffer = NULL;
- UNICODE_STRING LocalName = {}; /* <= GCC 4.0 + Optimizer */
+ UNICODE_STRING LocalName = {0}; /* <= GCC 4.0 + Optimizer */
PAGED_CODE();
/* Initialize the Input String */
/* PUBLIC FUNCTIONS *********************************************************/
-VOID
+LONG_PTR
FASTCALL
ObfReferenceObject(IN PVOID Object)
{
ASSERT(Object);
/* Get the header and increment the reference count */
- InterlockedIncrement(&OBJECT_TO_OBJECT_HEADER(Object)->PointerCount);
+ return InterlockedIncrement(&OBJECT_TO_OBJECT_HEADER(Object)->PointerCount);
}
-VOID
+LONG_PTR
FASTCALL
ObfDereferenceObject(IN PVOID Object)
{
POBJECT_HEADER Header;
+ LONG_PTR OldCount;
/* Extract the object header */
Header = OBJECT_TO_OBJECT_HEADER(Object);
if (Header->PointerCount < Header->HandleCount)
{
DPRINT("Misbehaving object: %wZ\n", &Header->Type->Name);
- return;
+ return Header->PointerCount;
}
/* Check whether the object can now be deleted. */
- if (!(InterlockedDecrement(&Header->PointerCount)))
+ OldCount = InterlockedDecrement(&Header->PointerCount);
+ if (!OldCount)
{
/* Sanity check */
if (Header->HandleCount)
{
DPRINT("Misbehaving object: %wZ\n", &Header->Type->Name);
- return;
+ return Header->PointerCount;
}
/* Check if we're at PASSIVE */
ObpDeferObjectDeletion(Object);
}
}
+
+ /* Return the old count */
+ return OldCount;
}
VOID
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ParentProcess OPTIONAL,
- IN DWORD Flags,
+ IN ULONG Flags,
IN HANDLE SectionHandle OPTIONAL,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL,
PVOID
STDCALL
-RtlpAllocateMemory(UINT Bytes,
+RtlpAllocateMemory(ULONG Bytes,
ULONG Tag)
{
return ExAllocatePoolWithTag(PagedPool,
LPCWSTR name, void *root,
int want_dir );
IMAGE_RESOURCE_DIRECTORY *find_entry_by_id( IMAGE_RESOURCE_DIRECTORY *dir,
- WORD id, void *root, int want_dir );
+ USHORT id, void *root, int want_dir );
IMAGE_RESOURCE_DIRECTORY *find_first_entry( IMAGE_RESOURCE_DIRECTORY *dir,
void *root, int want_dir );
/* FUNCTIONS *****************************************************************/
-char* strtok(char *s, const char *delim)
+char* __cdecl strtok(char *s, const char *delim)
{
const char *spanp;
int c, sc;
* @unimplemented
*/
NTSTATUS STDCALL LsaCallAuthenticationPackage (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6
+ ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2,
+ ULONG Unknown3,
+ ULONG Unknown4,
+ ULONG Unknown5,
+ ULONG Unknown6
)
{
return STATUS_NOT_IMPLEMENTED;
* @unimplemented
*/
NTSTATUS STDCALL LsaDeregisterLogonProcess (
- DWORD Unknown0,
- DWORD Unknown1
+ ULONG Unknown0,
+ ULONG Unknown1
)
{
return STATUS_NOT_IMPLEMENTED;
* @unimplemented
*/
NTSTATUS STDCALL LsaLogonUser (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3,
- DWORD Unknown4,
- DWORD Unknown5,
- DWORD Unknown6,
- DWORD Unknown7,
- DWORD Unknown8,
- DWORD Unknown9,
- DWORD Unknown10,
- DWORD Unknown11,
- DWORD Unknown12,
- DWORD Unknown13
+ ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2,
+ ULONG Unknown3,
+ ULONG Unknown4,
+ ULONG Unknown5,
+ ULONG Unknown6,
+ ULONG Unknown7,
+ ULONG Unknown8,
+ ULONG Unknown9,
+ ULONG Unknown10,
+ ULONG Unknown11,
+ ULONG Unknown12,
+ ULONG Unknown13
)
{
return STATUS_NOT_IMPLEMENTED;
* @unimplemented
*/
NTSTATUS STDCALL LsaLookupAuthenticationPackage (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
+ ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2
)
{
return STATUS_NOT_IMPLEMENTED;
* @unimplemented
*/
NTSTATUS STDCALL LsaRegisterLogonProcess (
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2
+ ULONG Unknown0,
+ ULONG Unknown1,
+ ULONG Unknown2
)
{
return STATUS_NOT_IMPLEMENTED;
RtlCopyMemory((PVOID)Current,
SeWorldSid,
SidSize);
- SdRel->Owner = (DWORD)((ULONG_PTR)Current - (ULONG_PTR)SdRel);
+ SdRel->Owner = (ULONG)((ULONG_PTR)Current - (ULONG_PTR)SdRel);
Current += SidSize;
}
RtlCopyMemory((PVOID)Current,
SeWorldSid,
SidSize);
- SdRel->Group = (DWORD)((ULONG_PTR)Current - (ULONG_PTR)SdRel);
+ SdRel->Group = (ULONG)((ULONG_PTR)Current - (ULONG_PTR)SdRel);
Current += SidSize;
}
if (!NT_SUCCESS(Status))
return Status;
- SdRel->Dacl = (DWORD)((ULONG_PTR)Current - (ULONG_PTR)SdRel);
+ SdRel->Dacl = (ULONG)((ULONG_PTR)Current - (ULONG_PTR)SdRel);
}
if (SecurityInformation & SACL_SECURITY_INFORMATION)
PVOID EndMem;
ULONG uLength;
ULONG i;
- ULONG nTokenPrivileges = 0;
- LARGE_INTEGER LocalExpirationTime = {};
KPROCESSOR_MODE PreviousMode;
+ ULONG nTokenPrivileges = 0;
+ LARGE_INTEGER LocalExpirationTime = {{0}};
NTSTATUS Status = STATUS_SUCCESS;
PAGED_CODE();
NTAPI\r
VdmpGetVdmTib(OUT PVDM_TIB *VdmTib)\r
{\r
- PAGED_CODE();\r
PVDM_TIB Tib;\r
+ PAGED_CODE();\r
\r
/* Assume vailure */\r
*VdmTib = NULL;\r
/* Make sure that there is a WOW key */\r
RtlInitUnicodeString(&Name,\r
L"\\Registry\\Machine\\System\\CurrentControlSet\\"\r
- "Control\\Wow");\r
+ L"Control\\Wow");\r
InitializeObjectAttributes(&ObjectAttributes,\r
&Name,\r
OBJ_CASE_INSENSITIVE,\r