Author: tkreuzer Date: Sun Mar 7 04:53:47 2010 New Revision: 45973
URL: http://svn.reactos.org/svn/reactos?rev=45973&view=rev Log: - comment out an ASSERT in IoSkipCurrentIrpStackLocation, because our kernel is broken - Add a header to wdm.h - add _NTLSA_IFS defines - add NTAPI to SeLockSubjectContext - add back CONST in ProbeForRead
Modified: branches/header-work/include/ddk/ntifs.h branches/header-work/include/ddk/wdm.h
Modified: branches/header-work/include/ddk/ntifs.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntifs.h?... ============================================================================== --- branches/header-work/include/ddk/ntifs.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/ntifs.h [iso-8859-1] Sun Mar 7 04:53:47 2010 @@ -38,9 +38,19 @@ extern "C" { #endif
+#if !defined(_NTHALDLL_) && !defined(_BLDR_) +#define NTHALAPI DECLSPEC_IMPORT +#else +#define NTHALAPI +#endif + +#if !defined(_NTOSKRNL_) /* For ReactOS */ #define NTKERNELAPI DECLSPEC_IMPORT -#define NTHALAPI DECLSPEC_IMPORT - +#else +#define NTKERNELAPI +#endif + +/* Dependencies */ #include <ntddk.h> #include <excpt.h> #include <ntdef.h>
Modified: branches/header-work/include/ddk/wdm.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/wdm.h?re... ============================================================================== --- branches/header-work/include/ddk/wdm.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/wdm.h [iso-8859-1] Sun Mar 7 04:53:47 2010 @@ -1,7 +1,37 @@ +/* + * wdm.h + * + * Windows NT WDM Driver Developer Kit + * + * This file is part of the ReactOS DDK package. + * + * Contributors: + * Amine Khaldi + * Timo Kreuzer (timo.kreuzer@reactos.org) + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ #pragma once
#ifndef _WDMDDK_ #define _WDMDDK_ + +/* Included via ntddk.h? */ +#ifndef _NTDDK_ +#define _NTDDK_ +#define _WDM_INCLUDED_ +#define _DDK_DRIVER_ +#define NO_INTERLOCKED_INTRINSICS +#endif /* _NTDDK_ */
/* Dependencies */ #define NT_INCLUDED @@ -15,7 +45,6 @@
#include "intrin.h"
- #ifdef __cplusplus extern "C" { #endif @@ -26,7 +55,11 @@ #define NTHALAPI #endif
+#if !defined(_NTOSKRNL_) /* For ReactOS */ #define NTKERNELAPI DECLSPEC_IMPORT +#else +#define NTKERNELAPI +#endif
#if defined(_WIN64) #define POINTER_ALIGNMENT DECLSPEC_ALIGN(8) @@ -1911,7 +1944,7 @@ VOID NTAPI ProbeForRead( - IN PVOID Address, + IN CONST VOID *Address, /* CONST is added */ IN SIZE_T Length, IN ULONG Alignment);
@@ -2683,6 +2716,97 @@ UNICODE_STRING ObjectTypeName; } ACCESS_STATE, *PACCESS_STATE;
+ +#ifndef _NTLSA_IFS_ + +#ifndef _NTLSA_AUDIT_ +#define _NTLSA_AUDIT_ + +#define SE_MAX_AUDIT_PARAMETERS 32 +#define SE_MAX_GENERIC_AUDIT_PARAMETERS 28 + +#define SE_ADT_OBJECT_ONLY 0x1 + +#define SE_ADT_PARAMETERS_SELF_RELATIVE 0x00000001 +#define SE_ADT_PARAMETERS_SEND_TO_LSA 0x00000002 +#define SE_ADT_PARAMETER_EXTENSIBLE_AUDIT 0x00000004 +#define SE_ADT_PARAMETER_GENERIC_AUDIT 0x00000008 +#define SE_ADT_PARAMETER_WRITE_SYNCHRONOUS 0x00000010 + +#define LSAP_SE_ADT_PARAMETER_ARRAY_TRUE_SIZE(Parameters) \ + ( sizeof(SE_ADT_PARAMETER_ARRAY) - sizeof(SE_ADT_PARAMETER_ARRAY_ENTRY) * \ + (SE_MAX_AUDIT_PARAMETERS - Parameters->ParameterCount) ) + +typedef enum _SE_ADT_PARAMETER_TYPE { + SeAdtParmTypeNone = 0, + SeAdtParmTypeString, + SeAdtParmTypeFileSpec, + SeAdtParmTypeUlong, + SeAdtParmTypeSid, + SeAdtParmTypeLogonId, + SeAdtParmTypeNoLogonId, + SeAdtParmTypeAccessMask, + SeAdtParmTypePrivs, + SeAdtParmTypeObjectTypes, + SeAdtParmTypeHexUlong, + SeAdtParmTypePtr, + SeAdtParmTypeTime, + SeAdtParmTypeGuid, + SeAdtParmTypeLuid, + SeAdtParmTypeHexInt64, + SeAdtParmTypeStringList, + SeAdtParmTypeSidList, + SeAdtParmTypeDuration, + SeAdtParmTypeUserAccountControl, + SeAdtParmTypeNoUac, + SeAdtParmTypeMessage, + SeAdtParmTypeDateTime, + SeAdtParmTypeSockAddr, + SeAdtParmTypeSD, + SeAdtParmTypeLogonHours, + SeAdtParmTypeLogonIdNoSid, + SeAdtParmTypeUlongNoConv, + SeAdtParmTypeSockAddrNoPort, + SeAdtParmTypeAccessReason +} SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE; + +typedef struct _SE_ADT_OBJECT_TYPE { + GUID ObjectType; + USHORT Flags; + USHORT Level; + ACCESS_MASK AccessMask; +} SE_ADT_OBJECT_TYPE, *PSE_ADT_OBJECT_TYPE; + +typedef struct _SE_ADT_PARAMETER_ARRAY_ENTRY { + SE_ADT_PARAMETER_TYPE Type; + ULONG Length; + ULONG_PTR Data[2]; + PVOID Address; +} SE_ADT_PARAMETER_ARRAY_ENTRY, *PSE_ADT_PARAMETER_ARRAY_ENTRY; + +typedef struct _SE_ADT_ACCESS_REASON { + ACCESS_MASK AccessMask; + ULONG AccessReasons[32]; + ULONG ObjectTypeIndex; + ULONG AccessGranted; + PSECURITY_DESCRIPTOR SecurityDescriptor; +} SE_ADT_ACCESS_REASON, *PSE_ADT_ACCESS_REASON; + +typedef struct _SE_ADT_PARAMETER_ARRAY { + ULONG CategoryId; + ULONG AuditId; + ULONG ParameterCount; + ULONG Length; + USHORT FlatSubCategoryId; + USHORT Type; + ULONG Flags; + SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[ SE_MAX_AUDIT_PARAMETERS ]; +} SE_ADT_PARAMETER_ARRAY, *PSE_ADT_PARAMETER_ARRAY; + +#endif /* !_NTLSA_AUDIT_ */ +#endif /* !_NTLSA_IFS_ */ + + /****************************************************************************** * Security Manager Functions * ******************************************************************************/ @@ -2763,15 +2887,17 @@
NTKERNELAPI VOID +NTAPI SeCaptureSubjectContext( OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
NTKERNELAPI VOID +NTAPI SeLockSubjectContext( IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
-#endif +#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
@@ -2791,7 +2917,7 @@ IN PSID UserSid OPTIONAL, IN PSE_ADT_PARAMETER_ARRAY AuditParameters);
-#endif +#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
@@ -2810,9 +2936,9 @@ IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PGENERIC_MAPPING GenericMapping, OUT PACCESS_MASK GrantedAccess); -#endif - -#endif +#endif /* SE_NTFS_WORLD_CACHE */ + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
/****************************************************************************** * Power Management Support Types * @@ -2964,7 +3090,7 @@ PoUnregisterSystemState( IN OUT PVOID StateHandle);
-#endif +#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
@@ -2996,8 +3122,7 @@ PoUnregisterPowerSettingCallback( IN OUT PVOID Handle);
-#endif - +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
@@ -3007,7 +3132,7 @@ PoSetDeviceBusyEx( IN OUT PULONG IdlePointer);
-#endif +#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
#if (NTDDI_VERSION >= NTDDI_WIN7) NTKERNELAPI @@ -3057,7 +3182,8 @@ IN PDEVICE_OBJECT DeviceObject, IN PCOUNTED_REASON_CONTEXT Context);
-#endif +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ +
/****************************************************************************** * Configuration Manager Types * @@ -3078,7 +3204,6 @@ #define CmResourceTypeDevicePrivate 129 #define CmResourceTypePcCardConfig 130 #define CmResourceTypeMfCardConfig 131 -
/* KEY_VALUE_Xxx.Type */ #define REG_NONE 0 @@ -3292,9 +3417,7 @@ } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; #include <poppack.h>
-#include <pshpack1.h> /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Type */ - #define CmResourceTypeNull 0 #define CmResourceTypePort 1 #define CmResourceTypeInterrupt 2 @@ -3310,7 +3433,6 @@ #define CmResourceTypeMfCardConfig 131
/* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */ - typedef enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined, CmResourceShareDeviceExclusive, @@ -3319,7 +3441,6 @@ } CM_SHARE_DISPOSITION;
/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypePort */ - #define CM_RESOURCE_PORT_MEMORY 0x0000 #define CM_RESOURCE_PORT_IO 0x0001 #define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 @@ -3331,14 +3452,12 @@ #define CM_RESOURCE_PORT_BAR 0x0100
/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeInterrupt */ - #define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000 #define CM_RESOURCE_INTERRUPT_LATCHED 0x0001 #define CM_RESOURCE_INTERRUPT_MESSAGE 0x0002 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */ - #define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 #define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 #define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 @@ -3352,7 +3471,6 @@ #define CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE 0x0100
/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */ - #define CM_RESOURCE_DMA_8 0x0000 #define CM_RESOURCE_DMA_16 0x0001 #define CM_RESOURCE_DMA_32 0x0002 @@ -3362,6 +3480,7 @@ #define CM_RESOURCE_DMA_TYPE_B 0x0020 #define CM_RESOURCE_DMA_TYPE_F 0x0040
+#include <pshpack1.h> typedef struct _CM_PARTIAL_RESOURCE_LIST { USHORT Version; USHORT Revision; @@ -3388,36 +3507,32 @@ USHORT NumberDrives; } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;
-typedef struct _CM_PNP_BIOS_DEVICE_NODE -{ - USHORT Size; - UCHAR Node; - ULONG ProductId; - UCHAR DeviceType[3]; - USHORT DeviceAttributes; +typedef struct _CM_PNP_BIOS_DEVICE_NODE { + USHORT Size; + UCHAR Node; + ULONG ProductId; + UCHAR DeviceType[3]; + USHORT DeviceAttributes; } CM_PNP_BIOS_DEVICE_NODE,*PCM_PNP_BIOS_DEVICE_NODE;
-typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK -{ - UCHAR Signature[4]; - UCHAR Revision; - UCHAR Length; - USHORT ControlField; - UCHAR Checksum; - ULONG EventFlagAddress; - USHORT RealModeEntryOffset; - USHORT RealModeEntrySegment; - USHORT ProtectedModeEntryOffset; - ULONG ProtectedModeCodeBaseAddress; - ULONG OemDeviceId; - USHORT RealModeDataBaseAddress; - ULONG ProtectedModeDataBaseAddress; +typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK { + UCHAR Signature[4]; + UCHAR Revision; + UCHAR Length; + USHORT ControlField; + UCHAR Checksum; + ULONG EventFlagAddress; + USHORT RealModeEntryOffset; + USHORT RealModeEntrySegment; + USHORT ProtectedModeEntryOffset; + ULONG ProtectedModeCodeBaseAddress; + ULONG OemDeviceId; + USHORT RealModeDataBaseAddress; + ULONG ProtectedModeDataBaseAddress; } CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK; - #include <poppack.h>
-typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA -{ +typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA { ULONG BytesPerSector; ULONG NumberOfCylinders; ULONG SectorsPerTrack; @@ -5091,7 +5206,6 @@ #define NT_ASSERTMSGW(exp) ((VOID)0)
#endif /* DBG */ -
/****************************************************************************** @@ -5503,7 +5617,7 @@ /* While MS WDK uses inheritance in C++, we cannot do this with gcc, as inheritance, even from a struct renders the type non-POD. So we use this hack */ -#define PCI_COMMON_HEADER_MEMBERS \ +#define PCI_COMMON_HEADER_LAYOUT \ USHORT VendorID; \ USHORT DeviceID; \ USHORT Command; \ @@ -5530,7 +5644,7 @@ UCHAR InterruptPin; \ UCHAR MinimumGrant; \ UCHAR MaximumLatency; \ - } type0; \ + } type0; \ struct _PCI_HEADER_TYPE_1 { \ ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \ UCHAR PrimaryBus; \ @@ -5554,7 +5668,7 @@ UCHAR InterruptLine; \ UCHAR InterruptPin; \ USHORT BridgeControl; \ - } type1; \ + } type1; \ struct _PCI_HEADER_TYPE_2 { \ ULONG SocketRegistersBaseAddress; \ UCHAR CapabilitiesPtr; \ @@ -5575,17 +5689,17 @@ } u;
typedef struct _PCI_COMMON_HEADER { - PCI_COMMON_HEADER_MEMBERS + PCI_COMMON_HEADER_LAYOUT } PCI_COMMON_HEADER, *PPCI_COMMON_HEADER;
#ifdef __cplusplus typedef struct _PCI_COMMON_CONFIG { - PCI_COMMON_HEADER_MEMBERS + PCI_COMMON_HEADER_LAYOUT UCHAR DeviceSpecific[192]; } PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG; #else typedef struct _PCI_COMMON_CONFIG { - PCI_COMMON_HEADER DUMMYSTRUCTNAME; + PCI_COMMON_HEADER DUMMYSTRUCTNAME; UCHAR DeviceSpecific[192]; } PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG; #endif @@ -8815,7 +8929,7 @@ IoSkipCurrentIrpStackLocation ( IN OUT PIRP Irp) { - ASSERT(Irp->CurrentLocation <= Irp->StackCount); + //ASSERT(Irp->CurrentLocation <= Irp->StackCount); FIXME: ReactOS is broken! Irp->CurrentLocation++; Irp->Tail.Overlay.CurrentStackLocation++; }