- 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
if (Frequency)
{
- DWORD Divider = CLOCKFREQ / Frequency;
+ ULONG Divider = CLOCKFREQ / Frequency;
if (Divider > 0x10000)
{
if (MapRegisterCount > 0)
{
- PMAP_REGISTER_ENTRY CurrentEntry, PreviousEntry;
+ PROS_MAP_REGISTER_ENTRY CurrentEntry, PreviousEntry;
CurrentEntry = AdapterObject->MapRegisterBase +
AdapterObject->NumberOfMapRegisters;
MasterAdapter->MapRegisterBase = ExAllocatePoolWithTag(
NonPagedPool,
- SizeOfBitmap * sizeof(MAP_REGISTER_ENTRY),
+ SizeOfBitmap * sizeof(ROS_MAP_REGISTER_ENTRY),
TAG_DMA);
if (MasterAdapter->MapRegisterBase == NULL)
{
}
RtlZeroMemory(MasterAdapter->MapRegisterBase,
- SizeOfBitmap * sizeof(MAP_REGISTER_ENTRY));
+ SizeOfBitmap * sizeof(ROS_MAP_REGISTER_ENTRY));
if (!HalpGrowMapBuffers(MasterAdapter, 0x10000))
{
ExFreePool(MasterAdapter);
PDEVICE_DESCRIPTION DeviceDescription)
{
UCHAR Controller;
- DMA_MODE DmaMode = { Byte: 0 };
- DMA_EXTENDED_MODE ExtendedMode = { Byte: 0 };
+ DMA_MODE DmaMode = {{0 }};
+ DMA_EXTENDED_MODE ExtendedMode = {{ 0 }};
PVOID AdapterBaseVa;
Controller = (DeviceDescription->DmaChannel & 4) ? 2 : 1;
if (!AdapterObject->ScatterGather)
{
AdapterObject->MapRegisterBase =
- (PMAP_REGISTER_ENTRY)(
+ (PROS_MAP_REGISTER_ENTRY)(
(ULONG_PTR)AdapterObject->MapRegisterBase |
MAP_BASE_SW_SG);
}
if (!AdapterObject->ScatterGather)
{
AdapterObject->MapRegisterBase =
- (PMAP_REGISTER_ENTRY)(
+ (PROS_MAP_REGISTER_ENTRY)(
(ULONG_PTR)AdapterObject->MapRegisterBase |
MAP_BASE_SW_SG);
}
if (NumberOfMapRegisters != 0)
{
- PMAP_REGISTER_ENTRY RealMapRegisterBase;
+ PROS_MAP_REGISTER_ENTRY 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,
RealMapRegisterBase - MasterAdapter->MapRegisterBase,
NumberOfMapRegisters);
if (!AdapterObject->ScatterGather)
{
AdapterObject->MapRegisterBase =
- (PMAP_REGISTER_ENTRY)(
+ (PROS_MAP_REGISTER_ENTRY)(
(ULONG_PTR)AdapterObject->MapRegisterBase |
MAP_BASE_SW_SG);
}
VOID STDCALL
HalpCopyBufferMap(
PMDL Mdl,
- PMAP_REGISTER_ENTRY MapRegisterBase,
+ PROS_MAP_REGISTER_ENTRY MapRegisterBase,
PVOID CurrentVa,
ULONG Length,
BOOLEAN WriteToDevice)
BOOLEAN WriteToDevice)
{
BOOLEAN SlaveDma = FALSE;
- PMAP_REGISTER_ENTRY RealMapRegisterBase;
+ PROS_MAP_REGISTER_ENTRY RealMapRegisterBase;
ASSERT_IRQL(DISPATCH_LEVEL);
return TRUE;
RealMapRegisterBase =
- (PMAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG);
+ (PROS_MAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG);
if (!WriteToDevice)
{
ULONG TransferOffset;
ULONG TransferLength;
BOOLEAN UseMapRegisters;
- PMAP_REGISTER_ENTRY RealMapRegisterBase;
+ PROS_MAP_REGISTER_ENTRY RealMapRegisterBase;
PHYSICAL_ADDRESS PhysicalAddress;
PHYSICAL_ADDRESS HighestAcceptableAddress;
ULONG Counter;
*/
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
}
else if (BootPhase == 2)
{
+ PHYSICAL_ADDRESS Null = {{0}};
+
/* Go to blue screen */
HalClearDisplay (0x17); /* grey on blue */
- HalpZeroPageMapping = MmMapIoSpace((LARGE_INTEGER)0LL, PAGE_SIZE, MmNonCached);
+ HalpZeroPageMapping = MmMapIoSpace(Null, PAGE_SIZE, MmNonCached);
}
return TRUE;
/* FUNCTIONS *****************************************************************/
-BOOL HalIsaProbe(VOID)
+BOOLEAN HalIsaProbe(VOID)
/*
* FUNCTION: Probes for an ISA bus
* RETURNS: True if detected
KdpDoesComPortExist (PUCHAR BaseAddress)
{
BOOLEAN found;
- BYTE mcr;
- BYTE msr;
+ UCHAR mcr;
+ UCHAR msr;
found = FALSE;
STDCALL
KdPortInitialize (
PKD_PORT_INFORMATION PortInformation,
- DWORD Unknown1,
- DWORD Unknown2
+ ULONG Unknown1,
+ ULONG Unknown2
)
{
ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
char buffer[80];
ULONG divisor;
- BYTE lcr;
+ UCHAR lcr;
if (PortInitialized == FALSE)
{
STDCALL
KdPortInitializeEx (
PKD_PORT_INFORMATION PortInformation,
- DWORD Unknown1,
- DWORD Unknown2
+ ULONG Unknown1,
+ ULONG Unknown2
)
{
ULONG BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
PUCHAR ComPortBase;
char buffer[80];
ULONG divisor;
- BYTE lcr;
+ UCHAR lcr;
if (PortInformation->BaudRate == 0)
{
/* FUNCTIONS ****************************************************************/
-
-VOID
-NTAPI
-HalAllocateCrashDumpRegisters(
- ULONG Unknown1,
- ULONG Unknown2)
+PVOID STDCALL
+HalAllocateCrashDumpRegisters(IN PADAPTER_OBJECT AdapterObject,
+ IN OUT PULONG NumberOfMapRegisters)
{
UNIMPLEMENTED;
+ return NULL;
}
{
ULONG DataSize;
PCI_COMMON_CONFIG PciConfig;
- UINT Address;
- UINT ResourceCount;
+ SIZE_T Address;
+ SIZE_T ResourceCount;
ULONG Size[PCI_TYPE0_ADDRESSES];
NTSTATUS Status = STATUS_SUCCESS;
UCHAR Offset;
* For supported compilers we use inline assembler. For the others,
* portable plain C.
*/
-VOID STDCALL __attribute__((noinline))
+DECLSPEC_NOINLINE VOID STDCALL
__KeStallExecutionProcessor(ULONG Loops)
{
if (!Loops)
#endif
}
-VOID STDCALL KeStallExecutionProcessor(ULONG Microseconds)
+VOID
+STDCALL
+KeStallExecutionProcessor(ULONG Microseconds)
{
PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR();
}
-LARGE_INTEGER STDCALL
+LARGE_INTEGER
+STDCALL
KeQueryPerformanceCounter(PLARGE_INTEGER PerformanceFreq)
/*
* FUNCTION: Queries the finest grained running count available in the system
#include <stdio.h>
/* IFS/DDK/NDK Headers */
-#include <ntddk.h>
#include <ntifs.h>
+#include <ntddk.h>
#include <ndk/ntndk.h>
/* Internal Kernel Headers */
DMA_CHANNEL_STOP DmaChannelStop[8]; /* 4E0h-4FFh */
} EISA_CONTROL, *PEISA_CONTROL;
-typedef struct _MAP_REGISTER_ENTRY
+typedef struct _ROS_MAP_REGISTER_ENTRY
{
PVOID VirtualAddress;
PHYSICAL_ADDRESS PhysicalAddress;
ULONG Counter;
-} MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY;
+} ROS_MAP_REGISTER_ENTRY, *PROS_MAP_REGISTER_ENTRY;
struct _ADAPTER_OBJECT {
/*
ULONG MapRegistersPerChannel;
PVOID AdapterBaseVa;
- PMAP_REGISTER_ENTRY MapRegisterBase;
+ PROS_MAP_REGISTER_ENTRY MapRegisterBase;
ULONG NumberOfMapRegisters;
ULONG CommittedMapRegisters;
IN PDEVICE_DESCRIPTION DeviceDescription,
OUT PULONG NumberOfMapRegisters);
-VOID STDCALL
-HalPutDmaAdapter(
- PADAPTER_OBJECT AdapterObject);
+/* FIXME: I added the definition to winddk.h but gcc wants it -HERE-. WHY?? */
+#ifndef _MSC_VER
+NTSTATUS\r
+NTAPI\r
+IoAllocateAdapterChannel(\r
+ IN PADAPTER_OBJECT AdapterObject,\r
+ IN PDEVICE_OBJECT DeviceObject,\r
+ IN ULONG NumberOfMapRegisters,\r
+ IN PDRIVER_CONTROL ExecutionRoutine,\r
+ IN PVOID Context\r
+);
+#endif
ULONG STDCALL
HalpDmaGetDmaAlignment(
PADAPTER_OBJECT AdapterObject);
-NTSTATUS STDCALL
-IoAllocateAdapterChannel(
- IN PADAPTER_OBJECT AdapterObject,
- IN PDEVICE_OBJECT DeviceObject,
- IN ULONG NumberOfMapRegisters,
- IN PDRIVER_CONTROL ExecutionRoutine,
- IN PVOID Context);
-
#endif /* HALDMA_H */
#define IOAPIC_TBL_DF1 (0xFF<< 56) /* Destination Field (logical mode) */
#define IOAPIC_TBL_VECTOR (0xFF << 0) /* Vector (10h - FEh) */
+#include <pshpack1.h>
typedef struct _IOAPIC_ROUTE_ENTRY {
ULONG vector : 8,
delivery_mode : 3, /* 000: FIXED
logical_dest : 8;
} logical;
} dest;
-} __attribute__ ((packed)) IOAPIC_ROUTE_ENTRY, *PIOAPIC_ROUTE_ENTRY;
+} IOAPIC_ROUTE_ENTRY, *PIOAPIC_ROUTE_ENTRY;
+#include <poppack.h>
typedef struct _IOAPIC_INFO
{
/* MP Floating Pointer Structure */
#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 Address; /* Physical Address Pointer (0 means no configuration table exist) */
UCHAR Feature3; /* Unused (0) */
UCHAR Feature4; /* Unused (0) */
UCHAR Feature5; /* Unused (0) */
-} __attribute__((packed)) MP_FLOATING_POINTER, *PMP_FLOATING_POINTER;
+} MP_FLOATING_POINTER, *PMP_FLOATING_POINTER;
+
#define FEATURE2_IMCRP 0x80
/* MP Configuration Table Header */
#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 */
USHORT Length; /* Size of configuration table */
USHORT ExtTableLength; /* Extended Table Length */
UCHAR ExtTableChecksum; /* Extended Table Checksum */
UCHAR Reserved; /* Reserved */
-} __attribute__((packed)) MP_CONFIGURATION_TABLE, *PMP_CONFIGURATION_TABLE;
+} MP_CONFIGURATION_TABLE, *PMP_CONFIGURATION_TABLE;
/* MP Configuration Table Entries */
#define MPCTE_PROCESSOR 0 /* One entry per processor */
#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 ApicId; /* Local APIC ID for the processor */
ULONG CpuSignature; /* CPU signature */
ULONG FeatureFlags; /* CPUID feature value */
ULONG Reserved[2]; /* Reserved (0) */
-} __attribute__((packed)) MP_CONFIGURATION_PROCESSOR,
- *PMP_CONFIGURATION_PROCESSOR;
+} MP_CONFIGURATION_PROCESSOR, *PMP_CONFIGURATION_PROCESSOR;
-typedef struct __attribute__((packed)) _MP_CONFIGURATION_BUS
+typedef struct _MP_CONFIGURATION_BUS
{
UCHAR Type; /* 1 */
UCHAR BusId; /* Bus ID */
CHAR BusType[6]; /* Bus type */
-} __attribute__((packed)) MP_CONFIGURATION_BUS, *PMP_CONFIGURATION_BUS;
+} MP_CONFIGURATION_BUS, *PMP_CONFIGURATION_BUS;
#define MAX_BUS 32
#define BUSTYPE_XPRESS "XPRESS"
-typedef struct __attribute__((packed)) _MP_CONFIGURATION_IOAPIC
+typedef struct _MP_CONFIGURATION_IOAPIC
{
UCHAR Type; /* 2 */
UCHAR ApicId; /* I/O APIC ID */
UCHAR ApicVersion; /* I/O APIC version */
UCHAR ApicFlags; /* I/O APIC flags */
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 MP_IOAPIC_USABLE 0x01
-typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTSRC
+typedef struct _MP_CONFIGURATION_INTSRC
{
UCHAR Type; /* 3 */
UCHAR IrqType; /* Interrupt type */
UCHAR SrcBusIrq; /* Source bus interrupt */
UCHAR DstApicId; /* Destination APIC ID */
UCHAR DstApicInt; /* Destination interrupt */
-} __attribute__((packed)) MP_CONFIGURATION_INTSRC, *PMP_CONFIGURATION_INTSRC;
+} MP_CONFIGURATION_INTSRC, *PMP_CONFIGURATION_INTSRC;
#define MAX_IRQ_SOURCE 128
#define IRQDIR_LOW 3
-typedef struct __attribute__((packed)) _MP_CONFIGURATION_INTLOCAL
+typedef struct _MP_CONFIGURATION_INTLOCAL
{
UCHAR Type; /* 4 */
UCHAR IrqType; /* Interrupt type */
UCHAR DstApicId; /* Destination local APIC ID */
UCHAR DstApicLInt; /* Destination local APIC interrupt */
} MP_CONFIGURATION_INTLOCAL, *PMP_CONFIGURATION_INTLOCAL;
+#include <poppack.h>
#define MP_APIC_ALL 0xFF
IN ULONG Unknown2
);
+#ifdef NTOS_MODE_USER
NTSYSAPI
NTSTATUS
NTAPI
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock
);
+#endif
NTSTATUS
NTAPI
IN BOOLEAN RestartScan
);
+#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwQueryEaFile(
IN PULONG EaIndex OPTIONAL,
IN BOOLEAN RestartScan
);
+#endif
NTSTATUS
NTAPI
ULONG Unknown2
);
+#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwSetEaFile(
PVOID EaBuffer,
ULONG EaBufferSize
);
+#endif
NTSYSCALLAPI
NTSTATUS
ULONG GrowthSinceLastEstimate;
} 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 // _MMTYPES_H
ULONG CreateDisposition;
IO_STATUS_BLOCK IoSB;
HANDLE FileHandle;
- PSECTION_OBJECT SectionObject;
+ PVOID SectionObject;
PUCHAR ViewBase;
ULONG ViewSize;
NTSTATUS Status;
ULONG IpiRequest
);
-VOID
-NTAPI
-KeIpiGenericCall(
- VOID (STDCALL *WorkerRoutine)(PVOID),
- PVOID Argument
-);
-
/* next file ***************************************************************/
VOID
LARGE_INTEGER DueTime
);
-BOOLEAN
-__inline
-FASTCALL
-KiIsObjectSignaled(
- PDISPATCHER_HEADER Object,
- PKTHREAD Thread
-);
-
VOID
FASTCALL
KiWaitTest(
FASTCALL
KiWakeQueue(IN PKQUEUE Queue);
-PLIST_ENTRY
-STDCALL
-KeRundownQueue(IN PKQUEUE Queue);
-
/* INITIALIZATION FUNCTIONS *************************************************/
VOID
PMM_IMAGE_SECTION_OBJECT ImageSection;
PMM_SECTION_SEGMENT Segment;
};
-} SECTION_OBJECT;
+} SECTION_OBJECT, *PSECTION_OBJECT;
typedef struct _MEMORY_AREA
{
PMM_SECTION_SEGMENT Segment,
ULONG Offset,
ULONG OpType,
- BOOL First
+ BOOLEAN First
);
PMM_PAGEOP
NTAPI
MmSetDirtyAllRmaps(PFN_TYPE Page);
-BOOL
+BOOLEAN
NTAPI
MmIsDirtyPageRmap(PFN_TYPE Page);
MmDisableVirtualMapping(
PEPROCESS Process,
PVOID Address,
- BOOL* WasDirty,
+ BOOLEAN* WasDirty,
PPFN_TYPE Page
);
MmDeleteVirtualMapping(
PEPROCESS Process,
PVOID Address,
- BOOL FreePage,
- BOOL* WasDirty,
+ BOOLEAN FreePage,
+ BOOLEAN* WasDirty,
PPFN_TYPE Page
);
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 ************************************************************/
NTSTATUS
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
NTAPI
MmProtectSectionView(
NTAPI
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
NTAPI
MmNotPresentFaultSectionView(
MiQueryVirtualMemory(
IN HANDLE ProcessHandle,
IN PVOID Address,
- IN CINT VirtualMemoryInformationClass,
+ IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
OUT PVOID VirtualMemoryInformation,
IN ULONG Length,
OUT PULONG ResultLength
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_NLS_H
#define __NTOSKRNL_INCLUDE_INTERNAL_NLS_H
-extern PSECTION_OBJECT NlsSectionObject;
+extern PVOID NlsSectionObject;
extern ULONG NlsAnsiTableOffset;
extern ULONG NlsOemTableOffset;
NTSTATUS STDCALL
EiConnectPort(IN PEPORT* ConnectedPort,
IN PEPORT NamedPort,
- IN PSECTION_OBJECT Section,
+ IN PVOID Section,
IN LARGE_INTEGER SectionOffset,
IN ULONG ViewSize,
OUT PVOID* ClientSendViewBase,
ULONG MaximumMessageSize;
PVOID ConnectData = NULL;
ULONG ConnectDataLength = 0;
- PSECTION_OBJECT SectionObject;
+ PVOID SectionObject;
LARGE_INTEGER SectionOffset;
PEPORT ConnectedPort;
KPROCESSOR_MODE PreviousMode;
*/
if (WriteMap != NULL)
{
- PSECTION_OBJECT SectionObject;
+ PVOID SectionObject;
LARGE_INTEGER SectionOffset;
Status = ObReferenceObjectByHandle(WriteMap->SectionHandle,
PMM_PAGEOP PageOp)
{
PFN_TYPE Page;
- BOOL WasDirty;
+ BOOLEAN WasDirty;
SWAPENTRY SwapEntry;
NTSTATUS Status;
VOID
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
*/
VOID
NTAPI
-MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOL FreePage,
- BOOL* WasDirty, PPFN_TYPE Page)
+MmDeleteVirtualMapping(PEPROCESS Process, PVOID Address, BOOLEAN FreePage,
+ BOOLEAN* WasDirty, PPFN_TYPE Page)
/*
* FUNCTION: Delete a virtual mapping
*/
}
else
{
- BOOL Dirty = FALSE;
+ BOOLEAN Dirty = FALSE;
SWAPENTRY SwapEntry = 0;
PFN_TYPE Page = 0;
PMM_PAGEOP
NTAPI
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
* the memory area and either the segment, offset pair or the
ExReleaseFastMutex(&RmapListLock);
}
-BOOL
+BOOLEAN
NTAPI
MmIsDirtyPageRmap(PFN_TYPE Page)
{
MmPageOutDeleteMapping(PVOID Context, PEPROCESS Process, PVOID Address)
{
MM_SECTION_PAGEOUT_CONTEXT* PageOutContext;
- BOOL WasDirty;
+ BOOLEAN WasDirty;
PFN_TYPE Page;
PageOutContext = (MM_SECTION_PAGEOUT_CONTEXT*)Context;
OBJ_PERMANENT,
NULL,
NULL);
- Status = MmCreateSection(&PhysSection,
+ Status = MmCreateSection((PVOID)&PhysSection,
SECTION_ALL_ACCESS,
&Obj,
&SectionSize,
IN HANDLE FileHandle OPTIONAL)
{
LARGE_INTEGER SafeMaximumSize;
- PSECTION_OBJECT SectionObject;
+ PVOID SectionObject;
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
* @implemented
*/
NTSTATUS STDCALL
-MmCreateSection (OUT PSECTION_OBJECT * SectionObject,
+MmCreateSection (OUT PVOID * Section,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN PLARGE_INTEGER MaximumSize,
IN PFILE_OBJECT File OPTIONAL)
{
ULONG Protection;
+ PSECTION_OBJECT *SectionObject = (PSECTION_OBJECT *)Section;
/*
* Check the protection
NTSTATUS FASTCALL
MiQueryVirtualMemory (IN HANDLE ProcessHandle,
IN PVOID Address,
- IN CINT VirtualMemoryInformationClass,
+ IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
OUT PVOID VirtualMemoryInformation,
IN ULONG Length,
OUT PULONG ResultLength)
static PUSHORT NlsUnicodeCasemapTable = NULL;
static ULONG NlsUnicodeCasemapTableSize = 0;
-PSECTION_OBJECT NlsSectionObject = NULL;
+PVOID NlsSectionObject = NULL;
static PVOID NlsSectionBase = NULL;
static ULONG NlsSectionViewSize = 0;
typedef struct _KQUEUE *PKQUEUE;
typedef struct _KTRAP_FRAME *PKTRAP_FRAME;
typedef struct _OBJECT_DIRECTORY *POBJECT_DIRECTORY;
-typedef struct _SECTION_OBJECT *PSECTION_OBJECT;
typedef struct _SHARED_CACHE_MAP *PSHARED_CACHE_MAP;
typedef struct _VACB *PVACB;
typedef struct _VAD_HEADER *PVAD_HEADER;
#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
BOOLEAN
struct _DMA_ADAPTER;
struct _DEVICE_OBJECT;
struct _DRIVER_OBJECT;
-struct _SECTION_OBJECT;
struct _IO_STATUS_BLOCK;
struct _DEVICE_DESCRIPTION;
struct _SCATTER_GATHER_LIST;
DECLARE_INTERNAL_OBJECT(ADAPTER_OBJECT)
DECLARE_INTERNAL_OBJECT(DMA_ADAPTER)
DECLARE_INTERNAL_OBJECT(IO_STATUS_BLOCK)
-DECLARE_INTERNAL_OBJECT(SECTION_OBJECT)
#if 1
/* FIXME: Unknown definitions */
IN ULONG MBRTypeIdentifier,
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
VOID
DDKAPI
NTSTATUS
DDKAPI
MmCreateSection(
- OUT PSECTION_OBJECT *SectionObject,
+ OUT PVOID *SectionObject,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN PLARGE_INTEGER MaximumSize,
#define NTAPI_INLINE
#endif
+#ifndef DECLSPEC_NOINLINE
+#define DECLSPEC_NOINLINE __declspec(noinline)
+#endif
+
#define OBJ_INHERIT 0x00000002
#define OBJ_PERMANENT 0x00000010
#define OBJ_EXCLUSIVE 0x00000020
DWORD Count;
DWORD Size;
} TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION;
+/* Sigh..when will they learn... */
+#ifndef __NTDDK_H
typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION;
+#endif
typedef struct _MESSAGE_RESOURCE_ENTRY {
WORD Length;
WORD Flags;