- Remove some public APIs from internal headers.

- Remove some internal APIs/types from public headers.
- Make PSECTION_OBJECT a PVOID unless really needed (which should only be inside \mm)
- Make hal buildable on msvc.
- Fix some other misc. various msvc/ddk incompatibilities.

svn path=/trunk/; revision=20696
This commit is contained in:
Alex Ionescu 2006-01-08 06:23:17 +00:00
parent 96ab5d2979
commit 9c52bdbe04
31 changed files with 160 additions and 155 deletions

View file

@ -50,7 +50,7 @@ HalMakeBeep (
if (Frequency) if (Frequency)
{ {
DWORD Divider = CLOCKFREQ / Frequency; ULONG Divider = CLOCKFREQ / Frequency;
if (Divider > 0x10000) if (Divider > 0x10000)
{ {

View file

@ -252,7 +252,7 @@ HalpGrowMapBuffers(
if (MapRegisterCount > 0) if (MapRegisterCount > 0)
{ {
PMAP_REGISTER_ENTRY CurrentEntry, PreviousEntry; PROS_MAP_REGISTER_ENTRY CurrentEntry, PreviousEntry;
CurrentEntry = AdapterObject->MapRegisterBase + CurrentEntry = AdapterObject->MapRegisterBase +
AdapterObject->NumberOfMapRegisters; AdapterObject->NumberOfMapRegisters;
@ -351,7 +351,7 @@ HalpDmaAllocateMasterAdapter(VOID)
MasterAdapter->MapRegisterBase = ExAllocatePoolWithTag( MasterAdapter->MapRegisterBase = ExAllocatePoolWithTag(
NonPagedPool, NonPagedPool,
SizeOfBitmap * sizeof(MAP_REGISTER_ENTRY), SizeOfBitmap * sizeof(ROS_MAP_REGISTER_ENTRY),
TAG_DMA); TAG_DMA);
if (MasterAdapter->MapRegisterBase == NULL) if (MasterAdapter->MapRegisterBase == NULL)
{ {
@ -360,7 +360,7 @@ HalpDmaAllocateMasterAdapter(VOID)
} }
RtlZeroMemory(MasterAdapter->MapRegisterBase, RtlZeroMemory(MasterAdapter->MapRegisterBase,
SizeOfBitmap * sizeof(MAP_REGISTER_ENTRY)); SizeOfBitmap * sizeof(ROS_MAP_REGISTER_ENTRY));
if (!HalpGrowMapBuffers(MasterAdapter, 0x10000)) if (!HalpGrowMapBuffers(MasterAdapter, 0x10000))
{ {
ExFreePool(MasterAdapter); ExFreePool(MasterAdapter);
@ -455,8 +455,8 @@ HalpDmaInitializeEisaAdapter(
PDEVICE_DESCRIPTION DeviceDescription) PDEVICE_DESCRIPTION DeviceDescription)
{ {
UCHAR Controller; UCHAR Controller;
DMA_MODE DmaMode = { Byte: 0 }; DMA_MODE DmaMode = {{0 }};
DMA_EXTENDED_MODE ExtendedMode = { Byte: 0 }; DMA_EXTENDED_MODE ExtendedMode = {{ 0 }};
PVOID AdapterBaseVa; PVOID AdapterBaseVa;
Controller = (DeviceDescription->DmaChannel & 4) ? 2 : 1; Controller = (DeviceDescription->DmaChannel & 4) ? 2 : 1;
@ -1127,7 +1127,7 @@ HalAllocateAdapterChannel(
if (!AdapterObject->ScatterGather) if (!AdapterObject->ScatterGather)
{ {
AdapterObject->MapRegisterBase = AdapterObject->MapRegisterBase =
(PMAP_REGISTER_ENTRY)( (PROS_MAP_REGISTER_ENTRY)(
(ULONG_PTR)AdapterObject->MapRegisterBase | (ULONG_PTR)AdapterObject->MapRegisterBase |
MAP_BASE_SW_SG); MAP_BASE_SW_SG);
} }
@ -1285,7 +1285,7 @@ IoFreeAdapterChannel(
if (!AdapterObject->ScatterGather) if (!AdapterObject->ScatterGather)
{ {
AdapterObject->MapRegisterBase = AdapterObject->MapRegisterBase =
(PMAP_REGISTER_ENTRY)( (PROS_MAP_REGISTER_ENTRY)(
(ULONG_PTR)AdapterObject->MapRegisterBase | (ULONG_PTR)AdapterObject->MapRegisterBase |
MAP_BASE_SW_SG); MAP_BASE_SW_SG);
} }
@ -1371,10 +1371,10 @@ IoFreeMapRegisters(
if (NumberOfMapRegisters != 0) if (NumberOfMapRegisters != 0)
{ {
PMAP_REGISTER_ENTRY RealMapRegisterBase; PROS_MAP_REGISTER_ENTRY RealMapRegisterBase;
RealMapRegisterBase = RealMapRegisterBase =
(PMAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG); (PROS_MAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG);
RtlClearBits(MasterAdapter->MapRegisters, RtlClearBits(MasterAdapter->MapRegisters,
RealMapRegisterBase - MasterAdapter->MapRegisterBase, RealMapRegisterBase - MasterAdapter->MapRegisterBase,
NumberOfMapRegisters); NumberOfMapRegisters);
@ -1408,7 +1408,7 @@ IoFreeMapRegisters(
if (!AdapterObject->ScatterGather) if (!AdapterObject->ScatterGather)
{ {
AdapterObject->MapRegisterBase = AdapterObject->MapRegisterBase =
(PMAP_REGISTER_ENTRY)( (PROS_MAP_REGISTER_ENTRY)(
(ULONG_PTR)AdapterObject->MapRegisterBase | (ULONG_PTR)AdapterObject->MapRegisterBase |
MAP_BASE_SW_SG); MAP_BASE_SW_SG);
} }
@ -1459,7 +1459,7 @@ IoFreeMapRegisters(
VOID STDCALL VOID STDCALL
HalpCopyBufferMap( HalpCopyBufferMap(
PMDL Mdl, PMDL Mdl,
PMAP_REGISTER_ENTRY MapRegisterBase, PROS_MAP_REGISTER_ENTRY MapRegisterBase,
PVOID CurrentVa, PVOID CurrentVa,
ULONG Length, ULONG Length,
BOOLEAN WriteToDevice) BOOLEAN WriteToDevice)
@ -1555,7 +1555,7 @@ IoFlushAdapterBuffers(
BOOLEAN WriteToDevice) BOOLEAN WriteToDevice)
{ {
BOOLEAN SlaveDma = FALSE; BOOLEAN SlaveDma = FALSE;
PMAP_REGISTER_ENTRY RealMapRegisterBase; PROS_MAP_REGISTER_ENTRY RealMapRegisterBase;
ASSERT_IRQL(DISPATCH_LEVEL); ASSERT_IRQL(DISPATCH_LEVEL);
@ -1582,7 +1582,7 @@ IoFlushAdapterBuffers(
return TRUE; return TRUE;
RealMapRegisterBase = RealMapRegisterBase =
(PMAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG); (PROS_MAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG);
if (!WriteToDevice) if (!WriteToDevice)
{ {
@ -1655,7 +1655,7 @@ IoMapTransfer(
ULONG TransferOffset; ULONG TransferOffset;
ULONG TransferLength; ULONG TransferLength;
BOOLEAN UseMapRegisters; BOOLEAN UseMapRegisters;
PMAP_REGISTER_ENTRY RealMapRegisterBase; PROS_MAP_REGISTER_ENTRY RealMapRegisterBase;
PHYSICAL_ADDRESS PhysicalAddress; PHYSICAL_ADDRESS PhysicalAddress;
PHYSICAL_ADDRESS HighestAcceptableAddress; PHYSICAL_ADDRESS HighestAcceptableAddress;
ULONG Counter; ULONG Counter;
@ -1722,7 +1722,7 @@ IoMapTransfer(
*/ */
RealMapRegisterBase = RealMapRegisterBase =
(PMAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG); (PROS_MAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG);
/* /*
* Try to calculate the size of the transfer. We can only transfer * Try to calculate the size of the transfer. We can only transfer

View file

@ -52,10 +52,12 @@ HalInitSystem (ULONG BootPhase,
} }
else if (BootPhase == 2) else if (BootPhase == 2)
{ {
PHYSICAL_ADDRESS Null = {{0}};
/* Go to blue screen */ /* Go to blue screen */
HalClearDisplay (0x17); /* grey on blue */ HalClearDisplay (0x17); /* grey on blue */
HalpZeroPageMapping = MmMapIoSpace((LARGE_INTEGER)0LL, PAGE_SIZE, MmNonCached); HalpZeroPageMapping = MmMapIoSpace(Null, PAGE_SIZE, MmNonCached);
} }
return TRUE; return TRUE;

View file

@ -17,7 +17,7 @@
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
BOOL HalIsaProbe(VOID) BOOLEAN HalIsaProbe(VOID)
/* /*
* FUNCTION: Probes for an ISA bus * FUNCTION: Probes for an ISA bus
* RETURNS: True if detected * RETURNS: True if detected

View file

@ -87,8 +87,8 @@ static BOOLEAN
KdpDoesComPortExist (PUCHAR BaseAddress) KdpDoesComPortExist (PUCHAR BaseAddress)
{ {
BOOLEAN found; BOOLEAN found;
BYTE mcr; UCHAR mcr;
BYTE msr; UCHAR msr;
found = FALSE; found = FALSE;
@ -149,14 +149,14 @@ BOOLEAN
STDCALL STDCALL
KdPortInitialize ( KdPortInitialize (
PKD_PORT_INFORMATION PortInformation, PKD_PORT_INFORMATION PortInformation,
DWORD Unknown1, ULONG Unknown1,
DWORD Unknown2 ULONG Unknown2
) )
{ {
ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8}; ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
char buffer[80]; char buffer[80];
ULONG divisor; ULONG divisor;
BYTE lcr; UCHAR lcr;
if (PortInitialized == FALSE) if (PortInitialized == FALSE)
{ {
@ -282,15 +282,15 @@ BOOLEAN
STDCALL STDCALL
KdPortInitializeEx ( KdPortInitializeEx (
PKD_PORT_INFORMATION PortInformation, PKD_PORT_INFORMATION PortInformation,
DWORD Unknown1, ULONG Unknown1,
DWORD Unknown2 ULONG Unknown2
) )
{ {
ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8}; ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
PUCHAR ComPortBase; PUCHAR ComPortBase;
char buffer[80]; char buffer[80];
ULONG divisor; ULONG divisor;
BYTE lcr; UCHAR lcr;
if (PortInformation->BaudRate == 0) if (PortInformation->BaudRate == 0)
{ {

View file

@ -16,14 +16,12 @@
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/
PVOID STDCALL
VOID HalAllocateCrashDumpRegisters(IN PADAPTER_OBJECT AdapterObject,
NTAPI IN OUT PULONG NumberOfMapRegisters)
HalAllocateCrashDumpRegisters(
ULONG Unknown1,
ULONG Unknown2)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return NULL;
} }

View file

@ -601,8 +601,8 @@ HalpAssignPciSlotResources(IN PBUS_HANDLER BusHandler,
{ {
ULONG DataSize; ULONG DataSize;
PCI_COMMON_CONFIG PciConfig; PCI_COMMON_CONFIG PciConfig;
UINT Address; SIZE_T Address;
UINT ResourceCount; SIZE_T ResourceCount;
ULONG Size[PCI_TYPE0_ADDRESSES]; ULONG Size[PCI_TYPE0_ADDRESSES];
NTSTATUS Status = STATUS_SUCCESS; NTSTATUS Status = STATUS_SUCCESS;
UCHAR Offset; UCHAR Offset;

View file

@ -96,7 +96,7 @@ static BOOLEAN UdelayCalibrated = FALSE;
* For supported compilers we use inline assembler. For the others, * For supported compilers we use inline assembler. For the others,
* portable plain C. * portable plain C.
*/ */
VOID STDCALL __attribute__((noinline)) DECLSPEC_NOINLINE VOID STDCALL
__KeStallExecutionProcessor(ULONG Loops) __KeStallExecutionProcessor(ULONG Loops)
{ {
if (!Loops) if (!Loops)
@ -121,7 +121,9 @@ ROSL1:
#endif #endif
} }
VOID STDCALL KeStallExecutionProcessor(ULONG Microseconds) VOID
STDCALL
KeStallExecutionProcessor(ULONG Microseconds)
{ {
PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR(); PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR();
@ -305,7 +307,8 @@ HalCalibratePerformanceCounter(ULONG Count)
} }
LARGE_INTEGER STDCALL LARGE_INTEGER
STDCALL
KeQueryPerformanceCounter(PLARGE_INTEGER PerformanceFreq) KeQueryPerformanceCounter(PLARGE_INTEGER PerformanceFreq)
/* /*
* FUNCTION: Queries the finest grained running count available in the system * FUNCTION: Queries the finest grained running count available in the system

View file

@ -12,8 +12,8 @@
#include <stdio.h> #include <stdio.h>
/* IFS/DDK/NDK Headers */ /* IFS/DDK/NDK Headers */
#include <ntddk.h>
#include <ntifs.h> #include <ntifs.h>
#include <ntddk.h>
#include <ndk/ntndk.h> #include <ndk/ntndk.h>
/* Internal Kernel Headers */ /* Internal Kernel Headers */

View file

@ -310,12 +310,12 @@ typedef struct _EISA_CONTROL
DMA_CHANNEL_STOP DmaChannelStop[8]; /* 4E0h-4FFh */ DMA_CHANNEL_STOP DmaChannelStop[8]; /* 4E0h-4FFh */
} EISA_CONTROL, *PEISA_CONTROL; } EISA_CONTROL, *PEISA_CONTROL;
typedef struct _MAP_REGISTER_ENTRY typedef struct _ROS_MAP_REGISTER_ENTRY
{ {
PVOID VirtualAddress; PVOID VirtualAddress;
PHYSICAL_ADDRESS PhysicalAddress; PHYSICAL_ADDRESS PhysicalAddress;
ULONG Counter; ULONG Counter;
} MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY; } ROS_MAP_REGISTER_ENTRY, *PROS_MAP_REGISTER_ENTRY;
struct _ADAPTER_OBJECT { struct _ADAPTER_OBJECT {
/* /*
@ -333,7 +333,7 @@ struct _ADAPTER_OBJECT {
ULONG MapRegistersPerChannel; ULONG MapRegistersPerChannel;
PVOID AdapterBaseVa; PVOID AdapterBaseVa;
PMAP_REGISTER_ENTRY MapRegisterBase; PROS_MAP_REGISTER_ENTRY MapRegisterBase;
ULONG NumberOfMapRegisters; ULONG NumberOfMapRegisters;
ULONG CommittedMapRegisters; ULONG CommittedMapRegisters;
@ -376,20 +376,21 @@ HalpGetDmaAdapter(
IN PDEVICE_DESCRIPTION DeviceDescription, IN PDEVICE_DESCRIPTION DeviceDescription,
OUT PULONG NumberOfMapRegisters); OUT PULONG NumberOfMapRegisters);
VOID STDCALL /* FIXME: I added the definition to winddk.h but gcc wants it -HERE-. WHY?? */
HalPutDmaAdapter( #ifndef _MSC_VER
PADAPTER_OBJECT AdapterObject); NTSTATUS
NTAPI
ULONG STDCALL
HalpDmaGetDmaAlignment(
PADAPTER_OBJECT AdapterObject);
NTSTATUS STDCALL
IoAllocateAdapterChannel( IoAllocateAdapterChannel(
IN PADAPTER_OBJECT AdapterObject, IN PADAPTER_OBJECT AdapterObject,
IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
IN ULONG NumberOfMapRegisters, IN ULONG NumberOfMapRegisters,
IN PDRIVER_CONTROL ExecutionRoutine, IN PDRIVER_CONTROL ExecutionRoutine,
IN PVOID Context); IN PVOID Context
);
#endif
ULONG STDCALL
HalpDmaGetDmaAlignment(
PADAPTER_OBJECT AdapterObject);
#endif /* HALDMA_H */ #endif /* HALDMA_H */

View file

@ -37,6 +37,7 @@
#define IOAPIC_TBL_DF1 (0xFF<< 56) /* Destination Field (logical mode) */ #define IOAPIC_TBL_DF1 (0xFF<< 56) /* Destination Field (logical mode) */
#define IOAPIC_TBL_VECTOR (0xFF << 0) /* Vector (10h - FEh) */ #define IOAPIC_TBL_VECTOR (0xFF << 0) /* Vector (10h - FEh) */
#include <pshpack1.h>
typedef struct _IOAPIC_ROUTE_ENTRY { typedef struct _IOAPIC_ROUTE_ENTRY {
ULONG vector : 8, ULONG vector : 8,
delivery_mode : 3, /* 000: FIXED delivery_mode : 3, /* 000: FIXED
@ -62,7 +63,8 @@ typedef struct _IOAPIC_ROUTE_ENTRY {
logical_dest : 8; logical_dest : 8;
} logical; } logical;
} dest; } dest;
} __attribute__ ((packed)) IOAPIC_ROUTE_ENTRY, *PIOAPIC_ROUTE_ENTRY; } IOAPIC_ROUTE_ENTRY, *PIOAPIC_ROUTE_ENTRY;
#include <poppack.h>
typedef struct _IOAPIC_INFO typedef struct _IOAPIC_INFO
{ {

View file

@ -22,7 +22,8 @@
/* MP Floating Pointer Structure */ /* MP Floating Pointer Structure */
#define MPF_SIGNATURE (('_' << 24) | ('P' << 16) | ('M' << 8) | '_') #define MPF_SIGNATURE (('_' << 24) | ('P' << 16) | ('M' << 8) | '_')
typedef struct __attribute__((packed)) _MP_FLOATING_POINTER #include <pshpack1.h>
typedef struct _MP_FLOATING_POINTER
{ {
ULONG Signature; /* _MP_ */ ULONG Signature; /* _MP_ */
ULONG Address; /* Physical Address Pointer (0 means no configuration table exist) */ ULONG Address; /* Physical Address Pointer (0 means no configuration table exist) */
@ -34,14 +35,15 @@ typedef struct __attribute__((packed)) _MP_FLOATING_POINTER
UCHAR Feature3; /* Unused (0) */ UCHAR Feature3; /* Unused (0) */
UCHAR Feature4; /* Unused (0) */ UCHAR Feature4; /* Unused (0) */
UCHAR Feature5; /* Unused (0) */ UCHAR Feature5; /* Unused (0) */
} __attribute__((packed)) MP_FLOATING_POINTER, *PMP_FLOATING_POINTER; } MP_FLOATING_POINTER, *PMP_FLOATING_POINTER;
#define FEATURE2_IMCRP 0x80 #define FEATURE2_IMCRP 0x80
/* MP Configuration Table Header */ /* MP Configuration Table Header */
#define MPC_SIGNATURE (('P' << 24) | ('M' << 16) | ('C' << 8) | 'P') #define MPC_SIGNATURE (('P' << 24) | ('M' << 16) | ('C' << 8) | 'P')
typedef struct __attribute__((packed)) _MP_CONFIGURATION_TABLE typedef struct _MP_CONFIGURATION_TABLE
{ {
ULONG Signature; /* PCMP */ ULONG Signature; /* PCMP */
USHORT Length; /* Size of configuration table */ USHORT Length; /* Size of configuration table */
@ -56,7 +58,7 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_TABLE
USHORT ExtTableLength; /* Extended Table Length */ USHORT ExtTableLength; /* Extended Table Length */
UCHAR ExtTableChecksum; /* Extended Table Checksum */ UCHAR ExtTableChecksum; /* Extended Table Checksum */
UCHAR Reserved; /* Reserved */ UCHAR Reserved; /* Reserved */
} __attribute__((packed)) MP_CONFIGURATION_TABLE, *PMP_CONFIGURATION_TABLE; } MP_CONFIGURATION_TABLE, *PMP_CONFIGURATION_TABLE;
/* MP Configuration Table Entries */ /* MP Configuration Table Entries */
#define MPCTE_PROCESSOR 0 /* One entry per processor */ #define MPCTE_PROCESSOR 0 /* One entry per processor */
@ -66,7 +68,7 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_TABLE
#define MPCTE_LINTSRC 4 /* One entry per system interrupt source */ #define MPCTE_LINTSRC 4 /* One entry per system interrupt source */
typedef struct __attribute__((packed)) _MP_CONFIGURATION_PROCESSOR typedef struct _MP_CONFIGURATION_PROCESSOR
{ {
UCHAR Type; /* 0 */ UCHAR Type; /* 0 */
UCHAR ApicId; /* Local APIC ID for the processor */ UCHAR ApicId; /* Local APIC ID for the processor */
@ -75,17 +77,16 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_PROCESSOR
ULONG CpuSignature; /* CPU signature */ ULONG CpuSignature; /* CPU signature */
ULONG FeatureFlags; /* CPUID feature value */ ULONG FeatureFlags; /* CPUID feature value */
ULONG Reserved[2]; /* Reserved (0) */ ULONG Reserved[2]; /* Reserved (0) */
} __attribute__((packed)) MP_CONFIGURATION_PROCESSOR, } MP_CONFIGURATION_PROCESSOR, *PMP_CONFIGURATION_PROCESSOR;
*PMP_CONFIGURATION_PROCESSOR;
typedef struct __attribute__((packed)) _MP_CONFIGURATION_BUS typedef struct _MP_CONFIGURATION_BUS
{ {
UCHAR Type; /* 1 */ UCHAR Type; /* 1 */
UCHAR BusId; /* Bus ID */ UCHAR BusId; /* Bus ID */
CHAR BusType[6]; /* Bus type */ CHAR BusType[6]; /* Bus type */
} __attribute__((packed)) MP_CONFIGURATION_BUS, *PMP_CONFIGURATION_BUS; } MP_CONFIGURATION_BUS, *PMP_CONFIGURATION_BUS;
#define MAX_BUS 32 #define MAX_BUS 32
@ -114,21 +115,21 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_BUS
#define BUSTYPE_XPRESS "XPRESS" #define BUSTYPE_XPRESS "XPRESS"
typedef struct __attribute__((packed)) _MP_CONFIGURATION_IOAPIC typedef struct _MP_CONFIGURATION_IOAPIC
{ {
UCHAR Type; /* 2 */ UCHAR Type; /* 2 */
UCHAR ApicId; /* I/O APIC ID */ UCHAR ApicId; /* I/O APIC ID */
UCHAR ApicVersion; /* I/O APIC version */ UCHAR ApicVersion; /* I/O APIC version */
UCHAR ApicFlags; /* I/O APIC flags */ UCHAR ApicFlags; /* I/O APIC flags */
ULONG ApicAddress; /* I/O APIC base address */ ULONG ApicAddress; /* I/O APIC base address */
} __attribute__((packed)) MP_CONFIGURATION_IOAPIC, *PMP_CONFIGURATION_IOAPIC; } MP_CONFIGURATION_IOAPIC, *PMP_CONFIGURATION_IOAPIC;
#define MAX_IOAPIC 2 #define MAX_IOAPIC 2
#define MP_IOAPIC_USABLE 0x01 #define MP_IOAPIC_USABLE 0x01
typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTSRC typedef struct _MP_CONFIGURATION_INTSRC
{ {
UCHAR Type; /* 3 */ UCHAR Type; /* 3 */
UCHAR IrqType; /* Interrupt type */ UCHAR IrqType; /* Interrupt type */
@ -137,7 +138,7 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTSRC
UCHAR SrcBusIrq; /* Source bus interrupt */ UCHAR SrcBusIrq; /* Source bus interrupt */
UCHAR DstApicId; /* Destination APIC ID */ UCHAR DstApicId; /* Destination APIC ID */
UCHAR DstApicInt; /* Destination interrupt */ UCHAR DstApicInt; /* Destination interrupt */
} __attribute__((packed)) MP_CONFIGURATION_INTSRC, *PMP_CONFIGURATION_INTSRC; } MP_CONFIGURATION_INTSRC, *PMP_CONFIGURATION_INTSRC;
#define MAX_IRQ_SOURCE 128 #define MAX_IRQ_SOURCE 128
@ -151,7 +152,7 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTSRC
#define IRQDIR_LOW 3 #define IRQDIR_LOW 3
typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTLOCAL typedef struct _MP_CONFIGURATION_INTLOCAL
{ {
UCHAR Type; /* 4 */ UCHAR Type; /* 4 */
UCHAR IrqType; /* Interrupt type */ UCHAR IrqType; /* Interrupt type */
@ -161,6 +162,7 @@ typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTLOCAL
UCHAR DstApicId; /* Destination local APIC ID */ UCHAR DstApicId; /* Destination local APIC ID */
UCHAR DstApicLInt; /* Destination local APIC interrupt */ UCHAR DstApicLInt; /* Destination local APIC interrupt */
} MP_CONFIGURATION_INTLOCAL, *PMP_CONFIGURATION_INTLOCAL; } MP_CONFIGURATION_INTLOCAL, *PMP_CONFIGURATION_INTLOCAL;
#include <poppack.h>
#define MP_APIC_ALL 0xFF #define MP_APIC_ALL 0xFF

View file

@ -592,6 +592,7 @@ ZwEnumerateBootEntries(
IN ULONG Unknown2 IN ULONG Unknown2
); );
#ifdef NTOS_MODE_USER
NTSYSAPI NTSYSAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
@ -599,6 +600,7 @@ ZwFlushBuffersFile(
IN HANDLE FileHandle, IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock OUT PIO_STATUS_BLOCK IoStatusBlock
); );
#endif
NTSTATUS NTSTATUS
NTAPI NTAPI
@ -716,6 +718,7 @@ ZwQueryDirectoryFile(
IN BOOLEAN RestartScan IN BOOLEAN RestartScan
); );
#ifdef NTOS_MODE_USER
NTSTATUS NTSTATUS
NTAPI NTAPI
ZwQueryEaFile( ZwQueryEaFile(
@ -729,6 +732,7 @@ ZwQueryEaFile(
IN PULONG EaIndex OPTIONAL, IN PULONG EaIndex OPTIONAL,
IN BOOLEAN RestartScan IN BOOLEAN RestartScan
); );
#endif
NTSTATUS NTSTATUS
NTAPI NTAPI
@ -837,6 +841,7 @@ ZwSetBootOptions(
ULONG Unknown2 ULONG Unknown2
); );
#ifdef NTOS_MODE_USER
NTSTATUS NTSTATUS
NTAPI NTAPI
ZwSetEaFile( ZwSetEaFile(
@ -845,6 +850,7 @@ ZwSetEaFile(
PVOID EaBuffer, PVOID EaBuffer,
ULONG EaBufferSize ULONG EaBufferSize
); );
#endif
NTSYSCALLAPI NTSYSCALLAPI
NTSTATUS NTSTATUS

View file

@ -343,6 +343,20 @@ typedef struct _MMSUPPORT
ULONG GrowthSinceLastEstimate; ULONG GrowthSinceLastEstimate;
} MMSUPPORT, *PMMSUPPORT; } MMSUPPORT, *PMMSUPPORT;
//
// Memory Information Types
//
typedef struct _MEMORY_BASIC_INFORMATION
{
PVOID BaseAddress;
PVOID AllocationBase;
ULONG AllocationProtect;
ULONG RegionSize;
ULONG State;
ULONG Protect;
ULONG Type;
} MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION;
#endif // !NTOS_MODE_USER #endif // !NTOS_MODE_USER
#endif // _MMTYPES_H #endif // _MMTYPES_H

View file

@ -848,7 +848,7 @@ CmiInitNonVolatileRegistryHive (PREGISTRY_HIVE RegistryHive,
ULONG CreateDisposition; ULONG CreateDisposition;
IO_STATUS_BLOCK IoSB; IO_STATUS_BLOCK IoSB;
HANDLE FileHandle; HANDLE FileHandle;
PSECTION_OBJECT SectionObject; PVOID SectionObject;
PUCHAR ViewBase; PUCHAR ViewBase;
ULONG ViewSize; ULONG ViewSize;
NTSTATUS Status; NTSTATUS Status;

View file

@ -304,13 +304,6 @@ KiIpiSendRequest(
ULONG IpiRequest ULONG IpiRequest
); );
VOID
NTAPI
KeIpiGenericCall(
VOID (STDCALL *WorkerRoutine)(PVOID),
PVOID Argument
);
/* next file ***************************************************************/ /* next file ***************************************************************/
VOID VOID
@ -480,14 +473,6 @@ KiInsertTimer(
LARGE_INTEGER DueTime LARGE_INTEGER DueTime
); );
BOOLEAN
__inline
FASTCALL
KiIsObjectSignaled(
PDISPATCHER_HEADER Object,
PKTHREAD Thread
);
VOID VOID
FASTCALL FASTCALL
KiWaitTest( KiWaitTest(
@ -585,10 +570,6 @@ VOID
FASTCALL FASTCALL
KiWakeQueue(IN PKQUEUE Queue); KiWakeQueue(IN PKQUEUE Queue);
PLIST_ENTRY
STDCALL
KeRundownQueue(IN PKQUEUE Queue);
/* INITIALIZATION FUNCTIONS *************************************************/ /* INITIALIZATION FUNCTIONS *************************************************/
VOID VOID

View file

@ -205,7 +205,7 @@ typedef struct _SECTION_OBJECT
PMM_IMAGE_SECTION_OBJECT ImageSection; PMM_IMAGE_SECTION_OBJECT ImageSection;
PMM_SECTION_SEGMENT Segment; PMM_SECTION_SEGMENT Segment;
}; };
} SECTION_OBJECT; } SECTION_OBJECT, *PSECTION_OBJECT;
typedef struct _MEMORY_AREA typedef struct _MEMORY_AREA
{ {
@ -776,7 +776,7 @@ MmGetPageOp(
PMM_SECTION_SEGMENT Segment, PMM_SECTION_SEGMENT Segment,
ULONG Offset, ULONG Offset,
ULONG OpType, ULONG OpType,
BOOL First BOOLEAN First
); );
PMM_PAGEOP PMM_PAGEOP
@ -892,7 +892,7 @@ VOID
NTAPI NTAPI
MmSetDirtyAllRmaps(PFN_TYPE Page); MmSetDirtyAllRmaps(PFN_TYPE Page);
BOOL BOOLEAN
NTAPI NTAPI
MmIsDirtyPageRmap(PFN_TYPE Page); MmIsDirtyPageRmap(PFN_TYPE Page);
@ -1041,7 +1041,7 @@ NTAPI
MmDisableVirtualMapping( MmDisableVirtualMapping(
PEPROCESS Process, PEPROCESS Process,
PVOID Address, PVOID Address,
BOOL* WasDirty, BOOLEAN* WasDirty,
PPFN_TYPE Page PPFN_TYPE Page
); );
@ -1203,8 +1203,8 @@ NTAPI
MmDeleteVirtualMapping( MmDeleteVirtualMapping(
PEPROCESS Process, PEPROCESS Process,
PVOID Address, PVOID Address,
BOOL FreePage, BOOLEAN FreePage,
BOOL* WasDirty, BOOLEAN* WasDirty,
PPFN_TYPE Page PPFN_TYPE Page
); );
@ -1248,18 +1248,6 @@ MmTrimUserMemory(
PULONG NrFreedPages PULONG NrFreedPages
); );
/* cont.c ********************************************************************/
PVOID
STDCALL
MmAllocateContiguousMemorySpecifyCache(
IN SIZE_T NumberOfBytes,
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
IN MEMORY_CACHING_TYPE CacheType OPTIONAL
);
/* region.c ************************************************************/ /* region.c ************************************************************/
NTSTATUS NTSTATUS
@ -1311,6 +1299,21 @@ MmQuerySectionView(
PULONG ResultLength PULONG ResultLength
); );
NTSTATUS
NTAPI
MmMapViewOfSection(
IN PVOID SectionObject,
IN PEPROCESS Process,
IN OUT PVOID *BaseAddress,
IN ULONG ZeroBits,
IN ULONG CommitSize,
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
IN OUT PULONG ViewSize,
IN SECTION_INHERIT InheritDisposition,
IN ULONG AllocationType,
IN ULONG Protect
);
NTSTATUS NTSTATUS
NTAPI NTAPI
MmProtectSectionView( MmProtectSectionView(
@ -1335,19 +1338,6 @@ NTSTATUS
NTAPI NTAPI
MmInitSectionImplementation(VOID); MmInitSectionImplementation(VOID);
NTSTATUS
STDCALL
MmCreateSection(
OUT PSECTION_OBJECT *SectionObject,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN PLARGE_INTEGER MaximumSize,
IN ULONG SectionPageProtection,
IN ULONG AllocationAttributes,
IN HANDLE FileHandle OPTIONAL,
IN PFILE_OBJECT File OPTIONAL
);
NTSTATUS NTSTATUS
NTAPI NTAPI
MmNotPresentFaultSectionView( MmNotPresentFaultSectionView(
@ -1408,7 +1398,7 @@ FASTCALL
MiQueryVirtualMemory( MiQueryVirtualMemory(
IN HANDLE ProcessHandle, IN HANDLE ProcessHandle,
IN PVOID Address, IN PVOID Address,
IN CINT VirtualMemoryInformationClass, IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
OUT PVOID VirtualMemoryInformation, OUT PVOID VirtualMemoryInformation,
IN ULONG Length, IN ULONG Length,
OUT PULONG ResultLength OUT PULONG ResultLength

View file

@ -1,7 +1,7 @@
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_NLS_H #ifndef __NTOSKRNL_INCLUDE_INTERNAL_NLS_H
#define __NTOSKRNL_INCLUDE_INTERNAL_NLS_H #define __NTOSKRNL_INCLUDE_INTERNAL_NLS_H
extern PSECTION_OBJECT NlsSectionObject; extern PVOID NlsSectionObject;
extern ULONG NlsAnsiTableOffset; extern ULONG NlsAnsiTableOffset;
extern ULONG NlsOemTableOffset; extern ULONG NlsOemTableOffset;

View file

@ -29,7 +29,7 @@
NTSTATUS STDCALL NTSTATUS STDCALL
EiConnectPort(IN PEPORT* ConnectedPort, EiConnectPort(IN PEPORT* ConnectedPort,
IN PEPORT NamedPort, IN PEPORT NamedPort,
IN PSECTION_OBJECT Section, IN PVOID Section,
IN LARGE_INTEGER SectionOffset, IN LARGE_INTEGER SectionOffset,
IN ULONG ViewSize, IN ULONG ViewSize,
OUT PVOID* ClientSendViewBase, OUT PVOID* ClientSendViewBase,
@ -252,7 +252,7 @@ NtConnectPort (PHANDLE UnsafeConnectedPortHandle,
ULONG MaximumMessageSize; ULONG MaximumMessageSize;
PVOID ConnectData = NULL; PVOID ConnectData = NULL;
ULONG ConnectDataLength = 0; ULONG ConnectDataLength = 0;
PSECTION_OBJECT SectionObject; PVOID SectionObject;
LARGE_INTEGER SectionOffset; LARGE_INTEGER SectionOffset;
PEPORT ConnectedPort; PEPORT ConnectedPort;
KPROCESSOR_MODE PreviousMode; KPROCESSOR_MODE PreviousMode;
@ -775,7 +775,7 @@ NtAcceptConnectPort (PHANDLE ServerPortHandle,
*/ */
if (WriteMap != NULL) if (WriteMap != NULL)
{ {
PSECTION_OBJECT SectionObject; PVOID SectionObject;
LARGE_INTEGER SectionOffset; LARGE_INTEGER SectionOffset;
Status = ObReferenceObjectByHandle(WriteMap->SectionHandle, Status = ObReferenceObjectByHandle(WriteMap->SectionHandle,

View file

@ -137,7 +137,7 @@ MmPageOutVirtualMemory(PMADDRESS_SPACE AddressSpace,
PMM_PAGEOP PageOp) PMM_PAGEOP PageOp)
{ {
PFN_TYPE Page; PFN_TYPE Page;
BOOL WasDirty; BOOLEAN WasDirty;
SWAPENTRY SwapEntry; SWAPENTRY SwapEntry;
NTSTATUS Status; NTSTATUS Status;

View file

@ -796,7 +796,7 @@ MmGetPfnForProcess(PEPROCESS Process,
VOID VOID
NTAPI NTAPI
MmDisableVirtualMapping(PEPROCESS Process, PVOID Address, BOOL* WasDirty, PPFN_TYPE Page) MmDisableVirtualMapping(PEPROCESS Process, PVOID Address, BOOLEAN* WasDirty, PPFN_TYPE Page)
/* /*
* FUNCTION: Delete a virtual mapping * FUNCTION: Delete a virtual mapping
*/ */
@ -916,8 +916,8 @@ MmRawDeleteVirtualMapping(PVOID Address)
VOID VOID
NTAPI NTAPI
MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOL FreePage, MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOLEAN FreePage,
BOOL* WasDirty, PPFN_TYPE Page) BOOLEAN* WasDirty, PPFN_TYPE Page)
/* /*
* FUNCTION: Delete a virtual mapping * FUNCTION: Delete a virtual mapping
*/ */

View file

@ -767,7 +767,7 @@ MmFreeMemoryArea(
} }
else else
{ {
BOOL Dirty = FALSE; BOOLEAN Dirty = FALSE;
SWAPENTRY SwapEntry = 0; SWAPENTRY SwapEntry = 0;
PFN_TYPE Page = 0; PFN_TYPE Page = 0;

View file

@ -136,7 +136,7 @@ MmCheckForPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
PMM_PAGEOP PMM_PAGEOP
NTAPI NTAPI
MmGetPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address, MmGetPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
PMM_SECTION_SEGMENT Segment, ULONG Offset, ULONG OpType, BOOL First) PMM_SECTION_SEGMENT Segment, ULONG Offset, ULONG OpType, BOOLEAN First)
/* /*
* FUNCTION: Get a page operation descriptor corresponding to * FUNCTION: Get a page operation descriptor corresponding to
* the memory area and either the segment, offset pair or the * the memory area and either the segment, offset pair or the

View file

@ -353,7 +353,7 @@ MmSetDirtyAllRmaps(PFN_TYPE Page)
ExReleaseFastMutex(&RmapListLock); ExReleaseFastMutex(&RmapListLock);
} }
BOOL BOOLEAN
NTAPI NTAPI
MmIsDirtyPageRmap(PFN_TYPE Page) MmIsDirtyPageRmap(PFN_TYPE Page)
{ {

View file

@ -1333,7 +1333,7 @@ VOID
MmPageOutDeleteMapping(PVOID Context, PEPROCESS Process, PVOID Address) MmPageOutDeleteMapping(PVOID Context, PEPROCESS Process, PVOID Address)
{ {
MM_SECTION_PAGEOUT_CONTEXT* PageOutContext; MM_SECTION_PAGEOUT_CONTEXT* PageOutContext;
BOOL WasDirty; BOOLEAN WasDirty;
PFN_TYPE Page; PFN_TYPE Page;
PageOutContext = (MM_SECTION_PAGEOUT_CONTEXT*)Context; PageOutContext = (MM_SECTION_PAGEOUT_CONTEXT*)Context;
@ -2151,7 +2151,7 @@ MmCreatePhysicalMemorySection(VOID)
OBJ_PERMANENT, OBJ_PERMANENT,
NULL, NULL,
NULL); NULL);
Status = MmCreateSection(&PhysSection, Status = MmCreateSection((PVOID)&PhysSection,
SECTION_ALL_ACCESS, SECTION_ALL_ACCESS,
&Obj, &Obj,
&SectionSize, &SectionSize,
@ -3363,7 +3363,7 @@ NtCreateSection (OUT PHANDLE SectionHandle,
IN HANDLE FileHandle OPTIONAL) IN HANDLE FileHandle OPTIONAL)
{ {
LARGE_INTEGER SafeMaximumSize; LARGE_INTEGER SafeMaximumSize;
PSECTION_OBJECT SectionObject; PVOID SectionObject;
KPROCESSOR_MODE PreviousMode; KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS; NTSTATUS Status = STATUS_SUCCESS;
@ -4814,7 +4814,7 @@ MmSetBankedSection (DWORD Unknown0,
* @implemented * @implemented
*/ */
NTSTATUS STDCALL NTSTATUS STDCALL
MmCreateSection (OUT PSECTION_OBJECT * SectionObject, MmCreateSection (OUT PVOID * Section,
IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN PLARGE_INTEGER MaximumSize, IN PLARGE_INTEGER MaximumSize,
@ -4824,6 +4824,7 @@ MmCreateSection (OUT PSECTION_OBJECT * SectionObject,
IN PFILE_OBJECT File OPTIONAL) IN PFILE_OBJECT File OPTIONAL)
{ {
ULONG Protection; ULONG Protection;
PSECTION_OBJECT *SectionObject = (PSECTION_OBJECT *)Section;
/* /*
* Check the protection * Check the protection

View file

@ -113,7 +113,7 @@ NtLockVirtualMemory(HANDLE ProcessHandle,
NTSTATUS FASTCALL NTSTATUS FASTCALL
MiQueryVirtualMemory (IN HANDLE ProcessHandle, MiQueryVirtualMemory (IN HANDLE ProcessHandle,
IN PVOID Address, IN PVOID Address,
IN CINT VirtualMemoryInformationClass, IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
OUT PVOID VirtualMemoryInformation, OUT PVOID VirtualMemoryInformation,
IN ULONG Length, IN ULONG Length,
OUT PULONG ResultLength) OUT PULONG ResultLength)

View file

@ -33,7 +33,7 @@ static ULONG NlsOemCodePageTableSize = 0;
static PUSHORT NlsUnicodeCasemapTable = NULL; static PUSHORT NlsUnicodeCasemapTable = NULL;
static ULONG NlsUnicodeCasemapTableSize = 0; static ULONG NlsUnicodeCasemapTableSize = 0;
PSECTION_OBJECT NlsSectionObject = NULL; PVOID NlsSectionObject = NULL;
static PVOID NlsSectionBase = NULL; static PVOID NlsSectionBase = NULL;
static ULONG NlsSectionViewSize = 0; static ULONG NlsSectionViewSize = 0;

View file

@ -530,7 +530,6 @@ typedef struct _KPROCESS *PKPROCESS;
typedef struct _KQUEUE *PKQUEUE; typedef struct _KQUEUE *PKQUEUE;
typedef struct _KTRAP_FRAME *PKTRAP_FRAME; typedef struct _KTRAP_FRAME *PKTRAP_FRAME;
typedef struct _OBJECT_DIRECTORY *POBJECT_DIRECTORY; typedef struct _OBJECT_DIRECTORY *POBJECT_DIRECTORY;
typedef struct _SECTION_OBJECT *PSECTION_OBJECT;
typedef struct _SHARED_CACHE_MAP *PSHARED_CACHE_MAP; typedef struct _SHARED_CACHE_MAP *PSHARED_CACHE_MAP;
typedef struct _VACB *PVACB; typedef struct _VACB *PVACB;
typedef struct _VAD_HEADER *PVAD_HEADER; typedef struct _VAD_HEADER *PVAD_HEADER;
@ -3423,21 +3422,6 @@ MmIsRecursiveIoFault (
#endif #endif
NTKERNELAPI
NTSTATUS
NTAPI
MmMapViewOfSection (
IN PVOID SectionObject,
IN PEPROCESS Process,
IN OUT PVOID *BaseAddress,
IN ULONG ZeroBits,
IN ULONG CommitSize,
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
IN OUT PULONG ViewSize,
IN SECTION_INHERIT InheritDisposition,
IN ULONG AllocationType,
IN ULONG Protect
);
NTKERNELAPI NTKERNELAPI
BOOLEAN BOOLEAN

View file

@ -127,7 +127,6 @@ struct _FILE_OBJECT;
struct _DMA_ADAPTER; struct _DMA_ADAPTER;
struct _DEVICE_OBJECT; struct _DEVICE_OBJECT;
struct _DRIVER_OBJECT; struct _DRIVER_OBJECT;
struct _SECTION_OBJECT;
struct _IO_STATUS_BLOCK; struct _IO_STATUS_BLOCK;
struct _DEVICE_DESCRIPTION; struct _DEVICE_DESCRIPTION;
struct _SCATTER_GATHER_LIST; struct _SCATTER_GATHER_LIST;
@ -141,7 +140,6 @@ typedef PVOID PSID;
DECLARE_INTERNAL_OBJECT(ADAPTER_OBJECT) DECLARE_INTERNAL_OBJECT(ADAPTER_OBJECT)
DECLARE_INTERNAL_OBJECT(DMA_ADAPTER) DECLARE_INTERNAL_OBJECT(DMA_ADAPTER)
DECLARE_INTERNAL_OBJECT(IO_STATUS_BLOCK) DECLARE_INTERNAL_OBJECT(IO_STATUS_BLOCK)
DECLARE_INTERNAL_OBJECT(SECTION_OBJECT)
#if 1 #if 1
/* FIXME: Unknown definitions */ /* FIXME: Unknown definitions */
@ -6789,6 +6787,22 @@ HalExamineMBR(
IN ULONG MBRTypeIdentifier, IN ULONG MBRTypeIdentifier,
OUT PVOID *Buffer); OUT PVOID *Buffer);
VOID
NTAPI
HalPutDmaAdapter(
PADAPTER_OBJECT AdapterObject
);
NTSTATUS
NTAPI
IoAllocateAdapterChannel(
IN PADAPTER_OBJECT AdapterObject,
IN PDEVICE_OBJECT DeviceObject,
IN ULONG NumberOfMapRegisters,
IN PDRIVER_CONTROL ExecutionRoutine,
IN PVOID Context
);
NTHALAPI NTHALAPI
VOID VOID
DDKAPI DDKAPI
@ -8833,7 +8847,7 @@ NTOSAPI
NTSTATUS NTSTATUS
DDKAPI DDKAPI
MmCreateSection( MmCreateSection(
OUT PSECTION_OBJECT *SectionObject, OUT PVOID *SectionObject,
IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN PLARGE_INTEGER MaximumSize, IN PLARGE_INTEGER MaximumSize,

View file

@ -14,6 +14,10 @@
#define NTAPI_INLINE #define NTAPI_INLINE
#endif #endif
#ifndef DECLSPEC_NOINLINE
#define DECLSPEC_NOINLINE __declspec(noinline)
#endif
#define OBJ_INHERIT 0x00000002 #define OBJ_INHERIT 0x00000002
#define OBJ_PERMANENT 0x00000010 #define OBJ_PERMANENT 0x00000010
#define OBJ_EXCLUSIVE 0x00000020 #define OBJ_EXCLUSIVE 0x00000020

View file

@ -2428,6 +2428,8 @@ typedef struct _TAPE_CREATE_PARTITION {
DWORD Count; DWORD Count;
DWORD Size; DWORD Size;
} TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION; } TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION;
/* Sigh..when will they learn... */
#ifndef __NTDDK_H
typedef struct _MEMORY_BASIC_INFORMATION { typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress; PVOID BaseAddress;
PVOID AllocationBase; PVOID AllocationBase;
@ -2437,6 +2439,7 @@ typedef struct _MEMORY_BASIC_INFORMATION {
DWORD Protect; DWORD Protect;
DWORD Type; DWORD Type;
} MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION; } MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION;
#endif
typedef struct _MESSAGE_RESOURCE_ENTRY { typedef struct _MESSAGE_RESOURCE_ENTRY {
WORD Length; WORD Length;
WORD Flags; WORD Flags;