diff --git a/reactos/w32api/include/ddk/ntapi.h b/reactos/w32api/include/ddk/ntapi.h index 1ebff300599..8d0a2802f75 100644 --- a/reactos/w32api/include/ddk/ntapi.h +++ b/reactos/w32api/include/ddk/ntapi.h @@ -46,7 +46,8 @@ typedef struct _PEB *PPEB; /* FIXME: Unknown definitions */ typedef PVOID POBJECT_TYPE_LIST; typedef PVOID PEXECUTION_STATE; -typedef PVOID PLANGID; + +typedef unsigned short LANGID, *PLANGID; #ifndef NtCurrentProcess #define NtCurrentProcess() ( (HANDLE) 0xFFFFFFFF ) @@ -261,7 +262,7 @@ typedef struct _VM_COUNTERS { ULONG QuotaNonPagedPoolUsage; ULONG PagefileUsage; ULONG PeakPagefileUsage; -} VM_COUNTERS; +} VM_COUNTERS, *PVM_COUNTERS; typedef enum _THREAD_STATE { Initialized, @@ -463,6 +464,15 @@ typedef struct _SYSTEM_INSTRUCTION_EMULATION_INFORMATION { ULONG GenericInvalidOpcode; } SYSTEM_INSTRUCTION_EMULATION_INFORMATION, *PSYSTEM_INSTRUCTION_EMULATION_INFORMATION; +typedef struct _SYSTEM_CACHE_INFORMATION { + ULONG CurrentSize; + ULONG PeakSize; + ULONG PageFaultCount; + ULONG MinimumWorkingSet; + ULONG MaximumWorkingSet; + ULONG Unused[4]; +} SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION; + typedef struct _SYSTEM_POOL_TAG_INFORMATION { CHAR Tag[4]; ULONG PagedPoolAllocs; @@ -473,6 +483,15 @@ typedef struct _SYSTEM_POOL_TAG_INFORMATION { ULONG NonPagedPoolUsage; } SYSTEM_POOL_TAG_INFORMATION, *PSYSTEM_POOL_TAG_INFORMATION; +typedef struct _SYSTEM_INTERRUPT_INFORMATION { + ULONG ContextSwitches; + ULONG DpcCount; + ULONG DpcRate; + ULONG TimeIncrement; + ULONG DpcBypassCount; + ULONG ApcBypassCount; +} SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION; + typedef struct _SYSTEM_PROCESSOR_STATISTICS { ULONG ContextSwitches; ULONG DpcCount; @@ -1991,7 +2010,6 @@ typedef struct _LPC_MESSAGE { CLIENT_ID ClientId; ULONG MessageId; ULONG SectionSize; - UCHAR Data[ANYSIZE_ARRAY]; } LPC_MESSAGE, *PLPC_MESSAGE; #define LPC_MESSAGE_BASE_SIZE 24 @@ -2332,10 +2350,6 @@ ZwReplaceKey( IN HANDLE KeyHandle, IN POBJECT_ATTRIBUTES OldFileObjectAttributes); -typedef enum _KEY_SET_INFORMATION_CLASS { - KeyLastWriteTimeInformation -} KEY_SET_INFORMATION_CLASS; - NTOSAPI NTSTATUS NTAPI @@ -2802,11 +2816,17 @@ NTOSAPI NTSTATUS NTAPI NtAllocateUuids( - OUT PLARGE_INTEGER UuidLastTimeAllocated, + OUT PULARGE_INTEGER UuidLastTimeAllocated, OUT PULONG UuidDeltaTime, OUT PULONG UuidSequenceNumber, OUT PUCHAR UuidSeed); +NTOSAPI +NTSTATUS +NTAPI +NtSetUuidSeed( + IN PUCHAR UuidSeed); + NTOSAPI NTSTATUS NTAPI @@ -2893,7 +2913,7 @@ NtDeleteAtom( typedef enum _ATOM_INFORMATION_CLASS { AtomBasicInformation, - AtomListInformation + AtomTableInformation } ATOM_INFORMATION_CLASS; NTOSAPI @@ -2907,8 +2927,8 @@ NtQueryInformationAtom( OUT PULONG ReturnLength OPTIONAL); typedef struct _ATOM_BASIC_INFORMATION { - USHORT ReferenceCount; - USHORT Pinned; + USHORT UsageCount; + USHORT Flags; USHORT NameLength; WCHAR Name[1]; } ATOM_BASIC_INFORMATION, *PATOM_BASIC_INFORMATION; diff --git a/reactos/w32api/include/ddk/ntifs.h b/reactos/w32api/include/ddk/ntifs.h index 23ef168a4fe..e49576cf235 100644 --- a/reactos/w32api/include/ddk/ntifs.h +++ b/reactos/w32api/include/ddk/ntifs.h @@ -44,16 +44,28 @@ extern "C" { #endif #ifndef NTKERNELAPI -#define NTKERNELAPI STDCALL +#define NTKERNELAPI DECLSPEC_IMPORT #endif typedef struct _SE_EXPORTS *PSE_EXPORTS; -extern PUCHAR *FsRtlLegalAnsiCharacterArray; +#ifdef _NTOSKRNL_ +extern PUCHAR FsRtlLegalAnsiCharacterArray; +#else +extern DECLSPEC_IMPORT PUCHAR FsRtlLegalAnsiCharacterArray; +#endif extern PSE_EXPORTS SeExports; extern PACL SePublicDefaultDacl; extern PACL SeSystemDefaultDacl; +extern KSPIN_LOCK IoStatisticsLock; +extern ULONG IoReadOperationCount; +extern ULONG IoWriteOperationCount; +extern ULONG IoOtherOperationCount; +extern LARGE_INTEGER IoReadTransferCount; +extern LARGE_INTEGER IoWriteTransferCount; +extern LARGE_INTEGER IoOtherTransferCount; + #define ANSI_DOS_STAR ('<') #define ANSI_DOS_QM ('>') #define ANSI_DOS_DOT ('"') @@ -241,6 +253,13 @@ extern PACL SeSystemDefaultDacl; #define FSRTL_WILD_CHARACTER 0x08 +#define FSRTL_FAT_LEGAL 0x01 +#define FSRTL_HPFS_LEGAL 0x02 +#define FSRTL_NTFS_LEGAL 0x04 +#define FSRTL_WILD_CHARACTER 0x08 +#define FSRTL_OLE_LEGAL 0x10 +#define FSRTL_NTFS_STREAM_LEGAL 0x14 + #ifdef _X86_ #define HARDWARE_PTE HARDWARE_PTE_X86 #define PHARDWARE_PTE PHARDWARE_PTE_X86 @@ -502,7 +521,6 @@ extern PACL SeSystemDefaultDacl; #define IOCTL_REDIR_QUERY_PATH CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS) -typedef PVOID PEJOB; typedef PVOID OPLOCK, *POPLOCK; typedef struct _CACHE_MANAGER_CALLBACKS *PCACHE_MANAGER_CALLBACKS; @@ -718,6 +736,10 @@ typedef struct _EX_PUSH_LOCK { } DUMMYUNIONNAME; } EX_PUSH_LOCK, *PEX_PUSH_LOCK; +#define EX_RUNDOWN_ACTIVE 0x1 +#define EX_RUNDOWN_COUNT_SHIFT 0x1 +#define EX_RUNDOWN_COUNT_INC (1 << EX_RUNDOWN_COUNT_SHIFT) + typedef struct _EX_RUNDOWN_REF { _ANONYMOUS_UNION union { ULONG Count; @@ -1197,6 +1219,33 @@ typedef struct _FSRTL_COMMON_FCB_HEADER { LARGE_INTEGER ValidDataLength; } FSRTL_COMMON_FCB_HEADER, *PFSRTL_COMMON_FCB_HEADER; +#if (VER_PRODUCTBUILD >= 2600) + +typedef struct _FSRTL_ADVANCED_FCB_HEADER { + CSHORT NodeTypeCode; + CSHORT NodeByteSize; + UCHAR Flags; + UCHAR IsFastIoPossible; + UCHAR Flags2; + UCHAR Reserved; + PERESOURCE Resource; + PERESOURCE PagingIoResource; + LARGE_INTEGER AllocationSize; + LARGE_INTEGER FileSize; + LARGE_INTEGER ValidDataLength; + PFAST_MUTEX FastMutex; + LIST_ENTRY FilterContexts; +} FSRTL_ADVANCED_FCB_HEADER, *PFSRTL_ADVANCED_FCB_HEADER; + +typedef struct _FSRTL_PER_STREAM_CONTEXT { + LIST_ENTRY Links; + PVOID OwnerId; + PVOID InstanceId; + PFREE_FUNCTION FreeCallback; +} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT; + +#endif /* (VER_PRODUCTBUILD >= 2600) */ + typedef struct _GENERATE_NAME_CONTEXT { USHORT Checksum; BOOLEAN CheckSumInserted; @@ -1549,15 +1598,6 @@ typedef struct _STARTING_VCN_INPUT_BUFFER { LARGE_INTEGER StartingVcn; } STARTING_VCN_INPUT_BUFFER, *PSTARTING_VCN_INPUT_BUFFER; -typedef struct _SYSTEM_CACHE_INFORMATION { - ULONG CurrentSize; - ULONG PeakSize; - ULONG PageFaultCount; - ULONG MinimumWorkingSet; - ULONG MaximumWorkingSet; - ULONG Unused[4]; -} SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION; - typedef struct _SECURITY_CLIENT_CONTEXT { SECURITY_QUALITY_OF_SERVICE SecurityQos; PACCESS_TOKEN ClientToken; @@ -1598,6 +1638,90 @@ typedef struct _VAD_HEADER { LIST_ENTRY Secured; } VAD_HEADER, *PVAD_HEADER; +#if (VER_PRODUCTBUILD >= 2600) + +typedef BOOLEAN +(NTAPI *PFILTER_REPORT_CHANGE) ( + IN PVOID NotifyContext, + IN PVOID FilterContext +); + +typedef enum _FS_FILTER_SECTION_SYNC_TYPE { + SyncTypeOther = 0, + SyncTypeCreateSection +} FS_FILTER_SECTION_SYNC_TYPE, *PFS_FILTER_SECTION_SYNC_TYPE; + +typedef union _FS_FILTER_PARAMETERS { + struct { + PLARGE_INTEGER EndingOffset; + } AcquireForModifiedPageWriter; + + struct { + PERESOURCE ResourceToRelease; + } ReleaseForModifiedPageWriter; + + struct { + FS_FILTER_SECTION_SYNC_TYPE SyncType; + ULONG PageProtection; + } AcquireForSectionSynchronization; + + struct { + PVOID Argument1; + PVOID Argument2; + PVOID Argument3; + PVOID Argument4; + PVOID Argument5; + } Others; +} FS_FILTER_PARAMETERS, *PFS_FILTER_PARAMETERS; + +typedef struct _FS_FILTER_CALLBACK_DATA { + ULONG SizeOfFsFilterCallbackData; + UCHAR Operation; + UCHAR Reserved; + struct _DEVICE_OBJECT *DeviceObject; + struct _FILE_OBJECT *FileObject; + FS_FILTER_PARAMETERS Parameters; +} FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA; + +typedef NTSTATUS +(NTAPI *PFS_FILTER_CALLBACK) ( + IN PFS_FILTER_CALLBACK_DATA Data, + OUT PVOID *CompletionContext +); + +typedef VOID +(NTAPI *PFS_FILTER_COMPLETION_CALLBACK) ( + IN PFS_FILTER_CALLBACK_DATA Data, + IN NTSTATUS OperationStatus, + IN PVOID CompletionContext +); + +typedef struct _FS_FILTER_CALLBACKS { + ULONG SizeOfFsFilterCallbacks; + ULONG Reserved; + PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization; + PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization; + PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization; + PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization; + PFS_FILTER_CALLBACK PreAcquireForCcFlush; + PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush; + PFS_FILTER_CALLBACK PreReleaseForCcFlush; + PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush; + PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter; + PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter; + PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter; + PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter; +} FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS; + +typedef struct _READ_LIST { + PFILE_OBJECT FileObject; + ULONG NumberOfEntries; + LOGICAL IsImage; + FILE_SEGMENT_ELEMENT List[ANYSIZE_ARRAY]; +} READ_LIST, *PREAD_LIST; + +#endif + NTKERNELAPI BOOLEAN NTAPI @@ -1734,6 +1858,7 @@ CcGetFlushedValidData ( NTKERNELAPI LARGE_INTEGER +NTAPI CcGetLsnForFileObject ( IN PFILE_OBJECT FileObject, OUT PLARGE_INTEGER OldestLsn OPTIONAL @@ -2051,17 +2176,79 @@ NTKERNELAPI VOID NTAPI ExDisableResourceBoostLite ( - IN PERESOURCE Resource + IN PERESOURCE Resource ); NTKERNELAPI ULONG NTAPI ExQueryPoolBlockSize ( - IN PVOID PoolBlock, - OUT PBOOLEAN QuotaCharged + IN PVOID PoolBlock, + OUT PBOOLEAN QuotaCharged ); +#if (VER_PRODUCTBUILD >= 2600) + +NTKERNELAPI +VOID +FASTCALL +ExInitializeRundownProtection ( + IN PEX_RUNDOWN_REF RunRef +); + +NTKERNELAPI +VOID +FASTCALL +ExReInitializeRundownProtection ( + IN PEX_RUNDOWN_REF RunRef +); + +NTKERNELAPI +BOOLEAN +FASTCALL +ExAcquireRundownProtection ( + IN PEX_RUNDOWN_REF RunRef +); + +NTKERNELAPI +BOOLEAN +FASTCALL +ExAcquireRundownProtectionEx ( + IN PEX_RUNDOWN_REF RunRef, + IN ULONG Count +); + +NTKERNELAPI +VOID +FASTCALL +ExReleaseRundownProtection ( + IN PEX_RUNDOWN_REF RunRef +); + +NTKERNELAPI +VOID +FASTCALL +ExReleaseRundownProtectionEx ( + IN PEX_RUNDOWN_REF RunRef, + IN ULONG Count +); + +NTKERNELAPI +VOID +FASTCALL +ExRundownCompleted ( + IN PEX_RUNDOWN_REF RunRef +); + +NTKERNELAPI +VOID +FASTCALL +ExWaitForRundownProtectionRelease ( + IN PEX_RUNDOWN_REF RunRef +); + +#endif /* (VER_PRODUCTBUILD >= 2600) */ + #define FlagOn(x, f) ((x) & (f)) NTKERNELAPI @@ -2442,12 +2629,35 @@ FsRtlIsNtstatusExpected ( IN NTSTATUS Ntstatus ); +#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) ( \ + (BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \ + (NLS_MB_CODE_PAGE_TAG && \ + (NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))) \ +) + +#define FsRtlIsAnsiCharacterWild(C) ( \ + FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \ +) + #define FsRtlIsUnicodeCharacterWild(C) ( \ (((C) >= 0x40) ? \ FALSE : \ - FlagOn((*FsRtlLegalAnsiCharacterArray)[(C)], FSRTL_WILD_CHARACTER )) \ + FlagOn(FsRtlLegalAnsiCharacterArray[(C)], FSRTL_WILD_CHARACTER )) \ ) +NTKERNELAPI +BOOLEAN +NTAPI +FsRtlMdlReadDev ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN ULONG LockKey, + OUT PMDL *MdlChain, + OUT PIO_STATUS_BLOCK IoStatus, + IN PDEVICE_OBJECT DeviceObject +); + NTKERNELAPI BOOLEAN NTAPI @@ -2465,6 +2675,19 @@ FsRtlMdlReadCompleteDev ( IN PDEVICE_OBJECT DeviceObject ); +NTKERNELAPI +BOOLEAN +NTAPI +FsRtlPrepareMdlWriteDev ( + IN PFILE_OBJECT FileObject, + IN PLARGE_INTEGER FileOffset, + IN ULONG Length, + IN ULONG LockKey, + OUT PMDL *MdlChain, + OUT PIO_STATUS_BLOCK IoStatus, + IN PDEVICE_OBJECT DeviceObject +); + NTKERNELAPI BOOLEAN NTAPI @@ -2555,7 +2778,7 @@ NTKERNELAPI VOID NTAPI FsRtlNotifyInitializeSync ( - IN PNOTIFY_SYNC NotifySync + IN PNOTIFY_SYNC *NotifySync ); NTKERNELAPI @@ -2573,7 +2796,7 @@ NTKERNELAPI VOID NTAPI FsRtlNotifyUninitializeSync ( - IN PNOTIFY_SYNC NotifySync + IN PNOTIFY_SYNC *NotifySync ); #if (VER_PRODUCTBUILD >= 2195) @@ -2670,6 +2893,30 @@ FsRtlRegisterUncProvider ( IN BOOLEAN MailslotsSupported ); +typedef VOID +(NTAPI *PFSRTL_STACK_OVERFLOW_ROUTINE) ( + IN PVOID Context, + IN PKEVENT Event +); + +NTKERNELAPI +VOID +NTAPI +FsRtlPostStackOverflow ( + IN PVOID Context, + IN PKEVENT Event, + IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine +); + +NTKERNELAPI +VOID +NTAPI +FsRtlPostPagingFileStackOverflow ( + IN PVOID Context, + IN PKEVENT Event, + IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine +); + NTKERNELAPI VOID NTAPI @@ -2712,6 +2959,15 @@ HalSetRealTimeClock ( (m)->DataInfoOffset = 0; \ } +NTKERNELAPI +NTSTATUS +NTAPI +IoAttachDeviceToDeviceStackSafe( + IN PDEVICE_OBJECT SourceDevice, + IN PDEVICE_OBJECT TargetDevice, + OUT PDEVICE_OBJECT *AttachedToDeviceObject +); + NTKERNELAPI VOID NTAPI @@ -2744,8 +3000,8 @@ IoCheckFunctionAccess ( IN UCHAR MajorFunction, IN UCHAR MinorFunction, IN ULONG IoControlCode, - IN PFILE_INFORMATION_CLASS FileInformationClass OPTIONAL, - IN PFS_INFORMATION_CLASS FsInformationClass OPTIONAL + IN PVOID Argument1 OPTIONAL, + IN PVOID Argument2 OPTIONAL ); #if (VER_PRODUCTBUILD >= 2195) @@ -2898,6 +3154,13 @@ IoQueryVolumeInformation ( OUT PULONG ReturnedLength ); +NTKERNELAPI +VOID +NTAPI +IoQueueThreadIrp( + IN PIRP Irp +); + NTKERNELAPI VOID NTAPI @@ -2982,7 +3245,7 @@ IoUnregisterFileSystem ( #if (VER_PRODUCTBUILD >= 1381) NTKERNELAPI -NTSTATUS +VOID NTAPI IoUnregisterFsRegistrationChange ( IN PDRIVER_OBJECT DriverObject, @@ -3070,6 +3333,31 @@ KeRundownQueue ( IN PRKQUEUE Queue ); +NTKERNELAPI +VOID +NTAPI +KeInitializeMutant ( + IN PRKMUTANT Mutant, + IN BOOLEAN InitialOwner +); + +NTKERNELAPI +LONG +NTAPI +KeReadStateMutant ( + IN PRKMUTANT Mutant +); + +NTKERNELAPI +LONG +NTAPI +KeReleaseMutant ( + IN PRKMUTANT Mutant, + IN KPRIORITY Increment, + IN BOOLEAN Abandoned, + IN BOOLEAN Wait +); + #if (VER_PRODUCTBUILD >= 2195) NTKERNELAPI @@ -3261,12 +3549,19 @@ PsChargePoolQuota ( #define PsDereferencePrimaryToken(T) (ObDereferenceObject((T))) NTKERNELAPI -ULONGLONG +LARGE_INTEGER NTAPI PsGetProcessExitTime ( VOID ); +NTKERNELAPI +BOOLEAN +NTAPI +PsIsSystemThread( + IN PETHREAD Thread +); + NTKERNELAPI BOOLEAN NTAPI @@ -3679,16 +3974,6 @@ SeCaptureSubjectContext ( OUT PSECURITY_SUBJECT_CONTEXT SubjectContext ); -NTKERNELAPI -NTSTATUS -NTAPI -SeCreateAccessState ( - OUT PACCESS_STATE AccessState, - IN PVOID AuxData, - IN ACCESS_MASK AccessMask, - IN PGENERIC_MAPPING Mapping -); - NTKERNELAPI NTSTATUS NTAPI @@ -3946,6 +4231,7 @@ SeUnlockSubjectContext ( NTKERNELAPI NTSTATUS +NTAPI SeUnregisterLogonSessionTerminatedRoutine ( IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine ); diff --git a/reactos/w32api/include/ddk/winddk.h b/reactos/w32api/include/ddk/winddk.h index 2e93f0e0081..e7836273797 100644 --- a/reactos/w32api/include/ddk/winddk.h +++ b/reactos/w32api/include/ddk/winddk.h @@ -52,6 +52,16 @@ extern "C" { #define DECLARE_INTERNAL_OBJECT2(x,y) struct _##x; typedef struct _##x *P##y; #endif +#if defined(_NTHAL_) +#ifndef NTHALAPI +#define NTHALAPI DECL_EXPORT +#endif +#else +#ifndef NTHALAPI +#define NTHALAPI DECL_IMPORT +#endif +#endif + /* Pseudo modifiers for parameters */ #define IN #define OUT @@ -170,6 +180,7 @@ typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE; typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE; typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT; typedef struct _BUS_HANDLER *PBUS_HANDLER; +typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; typedef struct _DRIVE_LAYOUT_INFORMATION *PDRIVE_LAYOUT_INFORMATION; typedef struct _DRIVE_LAYOUT_INFORMATION_EX *PDRIVE_LAYOUT_INFORMATION_EX; typedef struct _NAMED_PIPE_CREATE_PARAMETERS *PNAMED_PIPE_CREATE_PARAMETERS; @@ -315,6 +326,14 @@ typedef struct _FILE_GET_QUOTA_INFORMATION *PFILE_GET_QUOTA_INFORMATION; #define DIRECTORY_CREATE_SUBDIRECTORY (0x0008) #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF) +#define EVENT_QUERY_STATE (0x0001) +#define EVENT_MODIFY_STATE (0x0002) +#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3) + +#define SEMAPHORE_QUERY_STATE (0x0001) +#define SEMAPHORE_MODIFY_STATE (0x0002) +#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3) + /* Exported object types */ extern NTOSAPI POBJECT_TYPE ExDesktopObjectType; extern NTOSAPI POBJECT_TYPE ExEventObjectType; @@ -331,7 +350,6 @@ extern NTOSAPI POBJECT_TYPE MmSectionObjectType; extern NTOSAPI POBJECT_TYPE SeTokenObjectType; extern NTOSAPI CCHAR KeNumberProcessors; -extern NTOSAPI PHAL_PRIVATE_DISPATCH_TABLE HalPrivateDispatchTable; /* @@ -897,7 +915,7 @@ typedef struct _KDPC_DATA { typedef struct _WAIT_CONTEXT_BLOCK { KDEVICE_QUEUE_ENTRY WaitQueueEntry; - struct _DRIVER_CONTROL *DeviceRoutine; + PDRIVER_CONTROL DeviceRoutine; PVOID DeviceContext; ULONG NumberOfMapRegisters; PVOID DeviceObject; @@ -1092,6 +1110,11 @@ enum IRP_RETRY_IO_COMPLETION = 0x4000 }; +#define IRP_QUOTA_CHARGED 0x01 +#define IRP_ALLOCATED_MUST_SUCCEED 0x02 +#define IRP_ALLOCATED_FIXED_SIZE 0x04 +#define IRP_LOOKASIDE_ALLOCATION 0x08 + typedef struct _BOOTDISK_INFORMATION { LONGLONG BootPartitionOffset; LONGLONG SystemPartitionOffset; @@ -2324,8 +2347,27 @@ typedef struct { pHalMirrorVerify HalMirrorVerify; } HAL_DISPATCH, *PHAL_DISPATCH; -extern HAL_DISPATCH HalDispatchTable; -#define HALDISPATCH HalDispatchTable +#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) +extern DECL_IMPORT PHAL_DISPATCH HalDispatchTable; +#define HALDISPATCH ((PHAL_DISPATCH)&HalDispatchTable) +#else +extern DECL_EXPORT HAL_DISPATCH HalDispatchTable; +#define HALDISPATCH (&HalDispatchTable) +#endif + +#define HAL_DISPATCH_VERSION 3 +#define HalDispatchTableVersion HALDISPATCH->Version +#define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation +#define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation +#define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots +#define HalDeviceControl HALDISPATCH->HalDeviceControl +#define HalIoAssignDriveLetters HALDISPATCH->HalIoAssignDriveLetters +#define HalIoReadPartitionTable HALDISPATCH->HalIoReadPartitionTable +#define HalIoSetPartitionInformation HALDISPATCH->HalIoSetPartitionInformation +#define HalIoWritePartitionTable HALDISPATCH->HalIoWritePartitionTable +#define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus +#define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler +#define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler typedef enum _FILE_INFORMATION_CLASS { FileDirectoryInformation = 1, @@ -2492,10 +2534,9 @@ typedef struct _ERESOURCE { KSPIN_LOCK SpinLock; } ERESOURCE, *PERESOURCE; -/* NOTE: PVOID for methods to avoid 'assignment from incompatible pointer type' warning */ typedef struct _DRIVER_EXTENSION { struct _DRIVER_OBJECT *DriverObject; - PVOID AddDevice; + PDRIVER_ADD_DEVICE AddDevice; ULONG Count; UNICODE_STRING ServiceKeyName; } DRIVER_EXTENSION, *PDRIVER_EXTENSION; @@ -2894,6 +2935,20 @@ typedef struct _IO_SECURITY_CONTEXT { ULONG FullCreateOptions; } IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT; +#define IO_TYPE_ADAPTER 1 +#define IO_TYPE_CONTROLLER 2 +#define IO_TYPE_DEVICE 3 +#define IO_TYPE_DRIVER 4 +#define IO_TYPE_FILE 5 +#define IO_TYPE_IRP 6 +#define IO_TYPE_MASTER_ADAPTER 7 +#define IO_TYPE_OPEN_PACKET 8 +#define IO_TYPE_TIMER 9 +#define IO_TYPE_VPB 10 +#define IO_TYPE_ERROR_LOG 11 +#define IO_TYPE_ERROR_MESSAGE 12 +#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13 + #define IO_TYPE_CSQ_IRP_CONTEXT 1 #define IO_TYPE_CSQ 2 @@ -3241,6 +3296,20 @@ typedef enum _KEY_VALUE_INFORMATION_CLASS { KeyValuePartialInformationAlign64 } KEY_VALUE_INFORMATION_CLASS; +typedef struct _KEY_WRITE_TIME_INFORMATION { + LARGE_INTEGER LastWriteTime; +} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION; + +typedef struct _KEY_USER_FLAGS_INFORMATION { + ULONG UserFlags; +} KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION; + +typedef enum _KEY_SET_INFORMATION_CLASS { + KeyWriteTimeInformation, + KeyUserFlagsInformation, + MaxKeySetInfoClass +} KEY_SET_INFORMATION_CLASS; + /* KEY_VALUE_Xxx.Type */ #define REG_NONE 0 @@ -3642,44 +3711,41 @@ typedef VOID (DDKAPI *PFREE_FUNCTION)( IN PVOID Buffer); -#define GENERAL_LOOKASIDE_S \ - SLIST_HEADER ListHead; \ - USHORT Depth; \ - USHORT MaximumDepth; \ - ULONG TotalAllocates; \ - _ANONYMOUS_UNION union { \ - ULONG AllocateMisses; \ - ULONG AllocateHits; \ - } DUMMYUNIONNAME; \ - ULONG TotalFrees; \ - _ANONYMOUS_UNION union { \ - ULONG FreeMisses; \ - ULONG FreeHits; \ - } DUMMYUNIONNAME2; \ - POOL_TYPE Type; \ - ULONG Tag; \ - ULONG Size; \ - PALLOCATE_FUNCTION Allocate; \ - PFREE_FUNCTION Free; \ - LIST_ENTRY ListEntry; \ - ULONG LastTotalAllocates; \ - _ANONYMOUS_UNION union { \ - ULONG LastAllocateMisses; \ - ULONG LastAllocateHits; \ - } DUMMYUNIONNAME3; \ - ULONG Future[2]; - typedef struct _GENERAL_LOOKASIDE { - GENERAL_LOOKASIDE_S + SLIST_HEADER ListHead; + USHORT Depth; + USHORT MaximumDepth; + ULONG TotalAllocates; + union { + ULONG AllocateMisses; + ULONG AllocateHits; + }; + ULONG TotalFrees; + union { + ULONG FreeMisses; + ULONG FreeHits; + }; + POOL_TYPE Type; + ULONG Tag; + ULONG Size; + PALLOCATE_FUNCTION Allocate; + PFREE_FUNCTION Free; + LIST_ENTRY ListEntry; + ULONG LastTotalAllocates; + union { + ULONG LastAllocateMisses; + ULONG LastAllocateHits; + }; + ULONG Future[2]; } GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE; typedef struct _NPAGED_LOOKASIDE_LIST { - GENERAL_LOOKASIDE_S + GENERAL_LOOKASIDE L; KSPIN_LOCK Obsoleted; } NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST; typedef struct _PAGED_LOOKASIDE_LIST { - GENERAL_LOOKASIDE_S + GENERAL_LOOKASIDE L; FAST_MUTEX Obsoleted; } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST; @@ -3895,6 +3961,9 @@ typedef enum _CONFIGURATION_TYPE { MaximumType } CONFIGURATION_TYPE, *PCONFIGURATION_TYPE; +#define IO_FORCE_ACCESS_CHECK 0x001 +#define IO_NO_PARAMETER_CHECKING 0x100 + typedef NTSTATUS (DDKAPI *PIO_QUERY_DEVICE_ROUTINE)( IN PVOID Context, @@ -4350,7 +4419,7 @@ typedef struct _KPCR_TIB { DWORD Version; /* 10 */ } DUMMYUNIONNAME; PVOID ArbitraryUserPointer; /* 14 */ - struct _NT_TIB *Self; /* 18 */ + struct _KPCR_TIB *Self; /* 18 */ } KPCR_TIB, *PKPCR_TIB; /* 1C */ #define PCR_MINOR_VERSION 1 @@ -4390,13 +4459,13 @@ typedef struct _KFLOATING_SAVE { #define PAGE_SIZE 0x1000 #define PAGE_SHIFT 12L -extern NTOSAPI PVOID *MmHighestUserAddress; -extern NTOSAPI PVOID *MmSystemRangeStart; -extern NTOSAPI ULONG *MmUserProbeAddress; +extern NTOSAPI PVOID MmHighestUserAddress; +extern NTOSAPI PVOID MmSystemRangeStart; +extern NTOSAPI ULONG_PTR MmUserProbeAddress; -#define MM_HIGHEST_USER_ADDRESS *MmHighestUserAddress -#define MM_SYSTEM_RANGE_START *MmSystemRangeStart -#define MM_USER_PROBE_ADDRESS *MmUserProbeAddress +#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress +#define MM_SYSTEM_RANGE_START MmSystemRangeStart +#define MM_USER_PROBE_ADDRESS MmUserProbeAddress #define MM_LOWEST_USER_ADDRESS (PVOID)0x10000 #define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000 @@ -4417,7 +4486,7 @@ typedef enum _INTERLOCKED_RESULT { ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; -NTOSAPI +NTHALAPI KIRQL DDKAPI KeGetCurrentIrql( @@ -4501,8 +4570,23 @@ DDKFASTAPI KefReleaseSpinLockFromDpcLevel( IN PKSPIN_LOCK SpinLock); +NTHALAPI +KIRQL +DDKFASTAPI +KfAcquireSpinLock( + IN PKSPIN_LOCK SpinLock); + +NTHALAPI +VOID +DDKFASTAPI +KfReleaseSpinLock( + IN PKSPIN_LOCK SpinLock, + IN KIRQL NewIrql); + #define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock) #define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock) +#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a) +#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b) #define RtlCopyMemoryNonTemporal RtlCopyMemory @@ -5655,7 +5739,11 @@ KeTryToAcquireGuardedMutex( /** Executive support routines **/ +#if defined(_X86_) +NTHALAPI +#else NTOSAPI +#endif VOID DDKFASTAPI ExAcquireFastMutex( @@ -5699,14 +5787,14 @@ static __inline PVOID ExAllocateFromNPagedLookasideList( IN PNPAGED_LOOKASIDE_LIST Lookaside) { - PVOID Entry; + PVOID Entry; - Lookaside->TotalAllocates++; - Entry = InterlockedPopEntrySList(&Lookaside->ListHead); - if (Entry == NULL) { - Lookaside->_DDK_DUMMYUNION_MEMBER(AllocateMisses)++; - Entry = (Lookaside->Allocate)(Lookaside->Type, Lookaside->Size, Lookaside->Tag); - } + Lookaside->L.TotalAllocates++; + Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead); + if (Entry == NULL) { + Lookaside->L.AllocateMisses++; + Entry = (Lookaside->L.Allocate)(Lookaside->L.Type, Lookaside->L.Size, Lookaside->L.Tag); + } return Entry; } @@ -5716,12 +5804,11 @@ ExAllocateFromPagedLookasideList( { PVOID Entry; - Lookaside->TotalAllocates++; - Entry = InterlockedPopEntrySList(&Lookaside->ListHead); + Lookaside->L.TotalAllocates++; + Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead); if (Entry == NULL) { - Lookaside->_DDK_DUMMYUNION_MEMBER(AllocateMisses)++; - Entry = (Lookaside->Allocate)(Lookaside->Type, - Lookaside->Size, Lookaside->Tag); + Lookaside->L.AllocateMisses++; + Entry = (Lookaside->L.Allocate)(Lookaside->L.Type, Lookaside->L.Size, Lookaside->L.Tag); } return Entry; } @@ -5833,14 +5920,13 @@ ExFreeToNPagedLookasideList( IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry) { - Lookaside->TotalFrees++; - if (ExQueryDepthSList(&Lookaside->ListHead) >= Lookaside->Depth) { - Lookaside->_DDK_DUMMYUNION_N_MEMBER(2,FreeMisses)++; - (Lookaside->Free)(Entry); + Lookaside->L.TotalFrees++; + if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) { + Lookaside->L.FreeMisses++; + (Lookaside->L.Free)(Entry); } else { - InterlockedPushEntrySList(&Lookaside->ListHead, - (PSLIST_ENTRY)Entry); - } + InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry); + } } static __inline VOID @@ -5848,12 +5934,12 @@ ExFreeToPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry) { - Lookaside->TotalFrees++; - if (ExQueryDepthSList(&Lookaside->ListHead) >= Lookaside->Depth) { - Lookaside->_DDK_DUMMYUNION_N_MEMBER(2,FreeMisses)++; - (Lookaside->Free)(Entry); + Lookaside->L.TotalFrees++; + if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) { + Lookaside->L.FreeMisses++; + (Lookaside->L.Free)(Entry); } else { - InterlockedPushEntrySList(&Lookaside->ListHead, (PSLIST_ENTRY)Entry); + InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry); } } @@ -5975,6 +6061,14 @@ ExInterlockedCompareExchange64( IN PLONGLONG Comparand, IN PKSPIN_LOCK Lock); +NTOSAPI +LONGLONG +DDKFASTAPI +ExfInterlockedCompareExchange64( + IN OUT LONGLONG volatile *Destination, + IN PLONGLONG Exchange, + IN PLONGLONG Comperand); + NTOSAPI PSINGLE_LIST_ENTRY DDKFASTAPI @@ -6112,7 +6206,11 @@ DDKAPI ExReinitializeResourceLite( IN PERESOURCE Resource); +#if defined(_X86_) +NTHALAPI +#else NTOSAPI +#endif VOID DDKFASTAPI ExReleaseFastMutex( @@ -6158,7 +6256,11 @@ ExSystemTimeToLocalTime( IN PLARGE_INTEGER SystemTime, OUT PLARGE_INTEGER LocalTime); +#ifdef _M_IX86 +NTHALAPI +#else NTOSAPI +#endif BOOLEAN DDKFASTAPI ExTryToAcquireFastMutex( @@ -6251,7 +6353,7 @@ FsRtlIsTotalDeviceFailure( /** Hardware abstraction layer routines **/ -NTOSAPI +NTHALAPI BOOLEAN DDKAPI HalMakeBeep( @@ -6266,7 +6368,7 @@ HalExamineMBR( IN ULONG MBRTypeIdentifier, OUT PVOID *Buffer); -NTOSAPI +NTHALAPI VOID DDKAPI READ_PORT_BUFFER_UCHAR( @@ -6274,7 +6376,7 @@ READ_PORT_BUFFER_UCHAR( IN PUCHAR Buffer, IN ULONG Count); -NTOSAPI +NTHALAPI VOID DDKAPI READ_PORT_BUFFER_ULONG( @@ -6282,7 +6384,7 @@ READ_PORT_BUFFER_ULONG( IN PULONG Buffer, IN ULONG Count); -NTOSAPI +NTHALAPI VOID DDKAPI READ_PORT_BUFFER_USHORT( @@ -6290,19 +6392,19 @@ READ_PORT_BUFFER_USHORT( IN PUSHORT Buffer, IN ULONG Count); -NTOSAPI +NTHALAPI UCHAR DDKAPI READ_PORT_UCHAR( IN PUCHAR Port); -NTOSAPI +NTHALAPI ULONG DDKAPI READ_PORT_ULONG( IN PULONG Port); -NTOSAPI +NTHALAPI USHORT DDKAPI READ_PORT_USHORT( @@ -6350,7 +6452,7 @@ DDKAPI READ_REGISTER_USHORT( IN PUSHORT Register); -NTOSAPI +NTHALAPI VOID DDKAPI WRITE_PORT_BUFFER_UCHAR( @@ -6358,7 +6460,7 @@ WRITE_PORT_BUFFER_UCHAR( IN PUCHAR Buffer, IN ULONG Count); -NTOSAPI +NTHALAPI VOID DDKAPI WRITE_PORT_BUFFER_ULONG( @@ -6366,7 +6468,7 @@ WRITE_PORT_BUFFER_ULONG( IN PULONG Buffer, IN ULONG Count); -NTOSAPI +NTHALAPI VOID DDKAPI WRITE_PORT_BUFFER_USHORT( @@ -6374,21 +6476,21 @@ WRITE_PORT_BUFFER_USHORT( IN PUSHORT Buffer, IN ULONG Count); -NTOSAPI +NTHALAPI VOID DDKAPI WRITE_PORT_UCHAR( IN PUCHAR Port, IN UCHAR Value); -NTOSAPI +NTHALAPI VOID DDKAPI WRITE_PORT_ULONG( IN PULONG Port, IN ULONG Value); -NTOSAPI +NTHALAPI VOID DDKAPI WRITE_PORT_USHORT( @@ -7420,14 +7522,14 @@ IoReuseIrp( } NTOSAPI -VOID +NTSTATUS DDKAPI IoSetCompletionRoutineEx( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, - IN BOOLEAN InvokeOnSuccess, + IN BOOLEAN InvokeOnSuccess, IN BOOLEAN InvokeOnError, IN BOOLEAN InvokeOnCancel); @@ -7734,7 +7836,7 @@ IoWritePartitionTableEx( /** Kernel routines **/ -NTOSAPI +NTHALAPI VOID DDKFASTAPI KeAcquireInStackQueuedSpinLock( @@ -7754,12 +7856,6 @@ DDKAPI KeAcquireInterruptSpinLock( IN PKINTERRUPT Interrupt); -NTOSAPI -VOID -DDKAPI -KeAcquireSpinLock( - IN PKSPIN_LOCK SpinLock, - OUT PKIRQL OldIrql); /* System Service Dispatch Table */ typedef PVOID (NTAPI * SSDT)(VOID); @@ -7958,7 +8054,7 @@ DDKAPI KeQueryInterruptTime( VOID); -NTOSAPI +NTHALAPI LARGE_INTEGER DDKAPI KeQueryPerformanceCounter( @@ -8022,7 +8118,7 @@ KeRegisterBugCheckCallback( IN ULONG Length, IN PUCHAR Component); -NTOSAPI +NTHALAPI VOID DDKFASTAPI KeReleaseInStackQueuedSpinLock( @@ -8057,13 +8153,6 @@ KeReleaseSemaphore( IN LONG Adjustment, IN BOOLEAN Wait); -NTOSAPI -VOID -DDKAPI -KeReleaseSpinLock( - IN PKSPIN_LOCK SpinLock, - IN KIRQL NewIrql); - NTOSAPI PKDEVICE_QUEUE_ENTRY DDKAPI @@ -8167,7 +8256,7 @@ DDKFASTAPI KeSetTimeUpdateNotifyRoutine( IN PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine); -NTOSAPI +NTHALAPI VOID DDKAPI KeStallExecutionProcessor( @@ -8216,18 +8305,24 @@ KeWaitForSingleObject( #if defined(_X86_) -NTOSAPI +NTHALAPI VOID FASTCALL KfLowerIrql( IN KIRQL NewIrql); -NTOSAPI +NTHALAPI KIRQL FASTCALL KfRaiseIrql( IN KIRQL NewIrql); +NTHALAPI +KIRQL +DDKAPI +KeRaiseIrqlToDpcLevel( + VOID); + #define KeLowerIrql(a) KfLowerIrql(a) #define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a) @@ -8245,14 +8340,14 @@ DDKAPI KeRaiseIrql( IN KIRQL NewIrql); -#endif - NTOSAPI KIRQL DDKAPI KeRaiseIrqlToDpcLevel( VOID); +#endif + /** Memory manager routines **/ NTOSAPI @@ -9742,11 +9837,22 @@ KeRosDumpStackFrames ( PULONG Frame, ULONG FrameCount ); #endif /* !DBG */ +#if defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_) + extern NTOSAPI PBOOLEAN KdDebuggerNotPresent; extern NTOSAPI PBOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED *KdDebuggerEnabled #define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent +#else + +extern BOOLEAN KdDebuggerNotPresent; +extern BOOLEAN KdDebuggerEnabled; +#define KD_DEBUGGER_ENABLED KdDebuggerEnabled +#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent + +#endif + #ifdef __cplusplus } #endif diff --git a/reactos/w32api/include/ddk/winnt4.h b/reactos/w32api/include/ddk/winnt4.h index 7cb8092750e..798da3ff5a1 100644 --- a/reactos/w32api/include/ddk/winnt4.h +++ b/reactos/w32api/include/ddk/winnt4.h @@ -182,7 +182,22 @@ ExInterlockedIncrementLong( IN PLONG Addend, IN PKSPIN_LOCK Lock); -NTOSAPI +NTHALAPI +VOID +DDKAPI +HalAcquireDisplayOwnership( + IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters); + +NTHALAPI +NTSTATUS +DDKAPI +HalAllocateAdapterChannel( + IN PADAPTER_OBJECT AdapterObject, + IN PWAIT_CONTEXT_BLOCK Wcb, + IN ULONG NumberOfMapRegisters, + IN PDRIVER_CONTROL ExecutionRoutine); + +NTHALAPI PVOID DDKAPI HalAllocateCommonBuffer( @@ -191,7 +206,7 @@ HalAllocateCommonBuffer( OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled); -NTOSAPI +NTHALAPI NTSTATUS DDKAPI HalAssignSlotResources( @@ -204,7 +219,7 @@ HalAssignSlotResources( IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources); -NTOSAPI +NTHALAPI VOID DDKAPI HalFreeCommonBuffer( @@ -214,14 +229,14 @@ HalFreeCommonBuffer( IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled); -NTOSAPI +NTHALAPI PADAPTER_OBJECT DDKAPI HalGetAdapter( IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters); -NTOSAPI +NTHALAPI ULONG DDKAPI HalGetBusData( @@ -231,7 +246,7 @@ HalGetBusData( IN PVOID Buffer, IN ULONG Length); -NTOSAPI +NTHALAPI ULONG DDKAPI HalGetBusDataByOffset( @@ -242,13 +257,13 @@ HalGetBusDataByOffset( IN ULONG Offset, IN ULONG Length); -NTOSAPI +NTHALAPI ULONG DDKAPI HalGetDmaAlignmentRequirement( VOID); -NTOSAPI +NTHALAPI ULONG DDKAPI HalGetInterruptVector( @@ -259,13 +274,13 @@ HalGetInterruptVector( OUT PKIRQL Irql, OUT PKAFFINITY Affinity); -NTOSAPI +NTHALAPI ULONG DDKAPI HalReadDmaCounter( IN PADAPTER_OBJECT AdapterObject); -NTOSAPI +NTHALAPI ULONG DDKAPI HalSetBusData( @@ -275,7 +290,7 @@ HalSetBusData( IN PVOID Buffer, IN ULONG Length); -NTOSAPI +NTHALAPI ULONG DDKAPI HalSetBusDataByOffset( @@ -286,7 +301,7 @@ HalSetBusDataByOffset( IN ULONG Offset, IN ULONG Length); -NTOSAPI +NTHALAPI BOOLEAN DDKAPI HalTranslateBusAddress( @@ -324,7 +339,7 @@ IoAttachDeviceByPointer( IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice); -NTOSAPI +NTHALAPI BOOLEAN DDKAPI IoFlushAdapterBuffers( @@ -335,13 +350,13 @@ IoFlushAdapterBuffers( IN ULONG Length, IN BOOLEAN WriteToDevice); -NTOSAPI +NTHALAPI VOID DDKAPI IoFreeAdapterChannel( IN PADAPTER_OBJECT AdapterObject); -NTOSAPI +NTHALAPI VOID DDKAPI IoFreeMapRegisters( @@ -349,7 +364,7 @@ IoFreeMapRegisters( IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters); -NTOSAPI +NTHALAPI PHYSICAL_ADDRESS DDKAPI IoMapTransfer(