- Make the NDK compatible with the MSDDK again.

- Fix some w32api incompatibility cruft since w32api insists on including winnt.h from kernel-mode.
- Fix some stuff that was including both kernel-mode and user-mode headers together.
- Use PISECURITY_DESCRIPTOR, not PSECURITY_DESCRIPTOR.

svn path=/trunk/; revision=19726
This commit is contained in:
Alex Ionescu 2005-11-28 21:40:21 +00:00
parent c816db4fb7
commit c1da20b370
29 changed files with 356 additions and 101 deletions

View file

@ -25,8 +25,6 @@
* REVISION HISTORY:
* 21 November 2005 Created James Tabor
*/
#include <ddk/ntddk.h>
#include <windows.h>
#include "portcls.h"

View file

@ -13,7 +13,6 @@
extern "C" {
#endif
#include <windef.h>
#include <ddk/ntddk.h>
#define PORTCLASSAPI extern

View file

@ -17,6 +17,8 @@
#include <tdikrnl.h>
#include <tdiinfo.h>
#include <string.h>
#define _WINBASE_
#define _WINDOWS_H
#include <winsock2.h>
#include <afd/shared.h>

View file

@ -7,7 +7,9 @@
#ifndef __WSHTCPIP_H
#define __WSHTCPIP_H
#include <ddk/ntddk.h>
#define WIN32_NO_STATUS
#include <windows.h>
#include <rtlfuncs.h>
#include <wsahelp.h>
#define EXPORT STDCALL

View file

@ -1,3 +1,5 @@
#define _WINBASE_
#define _WINDOWS_H
#include <windef.h>
#include <wingdi.h>
#include <ddk/ntddk.h>

View file

@ -42,4 +42,17 @@ typedef struct _CONFIGURATION_COMPONENT
LPSTR Identifier;
} CONFIGURATION_COMPONENT, *PCONFIGURATION_COMPONENT;
typedef struct _CONFIGURATION_COMPONENT_DATA
{
struct _CONFIGURATION_COMPONENT_DATA *Parent;
struct _CONFIGURATION_COMPONENT_DATA *Child;
struct _CONFIGURATION_COMPONENT_DATA *Sibling;
CONFIGURATION_COMPONENT Component;
} CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
typedef struct _ARC_DISK_INFORMATION
{
LIST_ENTRY DiskSignatureListHead;
} ARC_DISK_INFORMATION, *PARC_DISK_INFORMATION;
#endif

View file

@ -230,6 +230,7 @@ NtUnloadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes
);
#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwCreateKey(
@ -242,6 +243,7 @@ ZwCreateKey(
IN PULONG Disposition OPTIONAL
);
NTSTATUS
NTAPI
ZwDeleteKey(
@ -426,6 +428,7 @@ ZwSetValueKey(
IN PVOID Data,
IN ULONG DataSize
);
#endif
NTSTATUS
NTAPI

View file

@ -417,12 +417,14 @@ ZwAddAtom(
IN OUT PRTL_ATOM Atom
);
#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwCancelTimer(
IN HANDLE TimerHandle,
OUT PBOOLEAN CurrentState OPTIONAL
);
#endif
NTSTATUS
NTAPI
@ -467,6 +469,7 @@ ZwCreateSemaphore(
IN LONG MaximumCount
);
#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwCreateTimer(
@ -475,6 +478,7 @@ ZwCreateTimer(
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN TIMER_TYPE TimerType
);
#endif
NTSTATUS
NTAPI
@ -528,6 +532,7 @@ ZwOpenSemaphore(
IN POBJECT_ATTRIBUTES ObjectAttributes
);
#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwOpenTimer(
@ -535,6 +540,7 @@ ZwOpenTimer(
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
#endif
NTSTATUS
NTAPI
@ -728,6 +734,7 @@ ZwSetSystemInformation(
IN ULONG SystemInformationLength
);
#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwSetTimer(
@ -739,6 +746,7 @@ ZwSetTimer(
IN LONG Period OPTIONAL,
OUT PBOOLEAN PreviousState OPTIONAL
);
#endif
NTSTATUS
NTAPI

View file

@ -87,8 +87,8 @@ typedef struct _PROFILE_PARAMETER_BLOCK
USHORT DockData1;
USHORT DockData2;
USHORT DockData3;
ULONG DockData3;
ULONG DockData4;
ULONG DockData5;
} PROFILE_PARAMETER_BLOCK, *PPROFILE_PARAMETER_BLOCK;
typedef struct _HEADLESS_LOADER_BLOCK

View file

@ -86,7 +86,7 @@ typedef struct _FX_SAVE_AREA
} FX_SAVE_AREA, *PFX_SAVE_AREA;
//
// FIXME: Trap Frame Definition
// Trap Frame Definition
//
typedef struct _KTRAP_FRAME
{

View file

@ -19,7 +19,16 @@ Author:
#ifndef NTOS_MODE_USER
#define _NTIFS_
#define TOKEN_SOURCE_LENGTH 8
typedef enum _TOKEN_TYPE
{
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE, *PTOKEN_TYPE;
typedef PVOID PRTL_HEAP_PARAMETERS;
typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _RTL_SPLAY_LINKS
{
@ -93,7 +102,7 @@ typedef struct _REMOTE_PORT_VIEW
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[2];
PKPROCESS Process;
struct _KPROCESS *Process;
BOOLEAN KernelApcInProgress;
BOOLEAN KernelApcPending;
BOOLEAN UserApcPending;
@ -108,9 +117,40 @@ typedef struct _KQUEUE
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
typedef PVOID EX_RUNDOWN_REF;
typedef PVOID EX_PUSH_LOCK;
typedef enum _RTL_GENERIC_COMPARE_RESULTS
{
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
typedef struct _SID_IDENTIFIER_AUTHORITY
{
UCHAR Value[6];
} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
typedef struct _SID_AND_ATTRIBUTES
{
PSID Sid;
ULONG Attributes;
} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES;
typedef struct _TOKEN_SOURCE
{
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;
typedef struct _TOKEN_CONTROL
{
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
} TOKEN_CONTROL, *PTOKEN_CONTROL;
typedef struct _SECURITY_CLIENT_CONTEXT
{
SECURITY_QUALITY_OF_SERVICE SecurityQos;
@ -121,12 +161,79 @@ typedef struct _SECURITY_CLIENT_CONTEXT
TOKEN_CONTROL ClientTokenControl;
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
typedef enum _RTL_GENERIC_COMPARE_RESULTS
typedef struct _SECURITY_DESCRIPTOR_RELATIVE
{
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
UCHAR Revision;
UCHAR Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
ULONG Owner;
ULONG Group;
ULONG Sacl;
ULONG Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;
typedef struct _TOKEN_GROUPS
{
ULONG GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS, *PTOKEN_GROUPS;
typedef struct _TOKEN_PRIVILEGES
{
ULONG PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
typedef struct _TOKEN_USER
{
SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER;
typedef enum _TOKEN_INFORMATION_CLASS
{
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics,
TokenRestrictedSids,
TokenSessionId,
TokenGroupsAndPrivileges,
TokenSessionReference,
TokenSandBoxInert,
TokenAuditPolicy,
TokenOrigin,
TokenElevationType,
TokenLinkedToken,
TokenElevation,
TokenIsRestricted,
TokenAccessInformation,
TokenVirtualization,
TokenIntegrityLevel,
TokenIntegrityLevelDesktop,
TokenMandatoryPolicy,
MaxTokenInfoClass
} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;
typedef struct _TOKEN_OWNER
{
PSID Owner;
} TOKEN_OWNER, *PTOKEN_OWNER;
typedef struct _TOKEN_PRIMARY_GROUP
{
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_DEFAULT_DACL
{
PACL DefaultDacl;
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
#endif // !NTOS_MODE_USER
#endif // _NTIFS_

View file

@ -617,11 +617,13 @@ ZwFsControlFile(
IN ULONG OutputBufferSize
);
#ifdef NTOS_MODE_USER
NTSTATUS
NTAPI
ZwLoadDriver(
IN PUNICODE_STRING DriverServiceName
);
#endif
NTSYSCALLAPI
NTSTATUS
@ -891,6 +893,7 @@ ZwTranslateFilePath(
ULONG Unknown3
);
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadDriver(

View file

@ -338,17 +338,6 @@ typedef struct _PP_LOOKASIDE_LIST
//
#include <arch/ketypes.h>
//
// ARC Component Data
//
typedef struct _CONFIGURATION_COMPONENT_DATA
{
struct _CONFIGURATION_COMPONENT_DATA *Parent;
struct _CONFIGURATION_COMPONENT_DATA *Child;
struct _CONFIGURATION_COMPONENT_DATA *Sibling;
CONFIGURATION_COMPONENT Component;
} CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
//
// Kernel Memory Node
//
@ -374,7 +363,7 @@ typedef struct _KPROFILE
CSHORT Type;
CSHORT Size;
LIST_ENTRY ProfileListEntry;
PKPROCESS Process;
struct _KPROCESS *Process;
PVOID RangeBase;
PVOID RangeLimit;
ULONG BucketShift;
@ -696,7 +685,7 @@ typedef struct _KPROCESS
KEXECUTE_OPTIONS Flags; /* 06B */
ULONG StackCount; /* 06C */
LIST_ENTRY ProcessListEntry; /* 070 */
} KPROCESS;
} KPROCESS, *PKPROCESS;
//
// System Service Table Descriptor

View file

@ -260,6 +260,7 @@ ZwLockVirtualMemory(
PULONG NumberOfBytesLocked
);
NTSYSAPI
NTSTATUS
NTAPI
ZwMapViewOfSection(
@ -275,6 +276,7 @@ ZwMapViewOfSection(
IN ULONG AccessProtection
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenSection(
@ -333,6 +335,7 @@ ZwUnlockVirtualMemory(
OUT PULONG NumberOfBytesUnlocked OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwUnmapViewOfSection(

View file

@ -269,6 +269,7 @@ ZwCloseObjectAuditAlarm(
IN BOOLEAN GenerateOnClose
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateDirectoryObject(
@ -313,6 +314,7 @@ ZwMakePermanentObject(
IN HANDLE Object
);
NTSYSAPI
NTSTATUS
NTAPI
ZwMakeTemporaryObject(
@ -335,6 +337,7 @@ ZwOpenJobObject(
POBJECT_ATTRIBUTES ObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenSymbolicLinkObject(
@ -376,6 +379,7 @@ ZwQuerySecurityObject(
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQuerySymbolicLinkObject(

View file

@ -120,11 +120,11 @@ typedef enum _OBJECT_INFORMATION_CLASS
//
// Dump Control Structure for Object Debugging
//
typedef struct _OBJECT_DUMP_CONTROL
typedef struct _OB_DUMP_CONTROL
{
PVOID Stream;
ULONG Detail;
} OBJECT_DUMP_CONTROL, *POBJECT_DUMP_CONTROL;
} OB_DUMP_CONTROL, *POB_DUMP_CONTROL;
#ifndef NTOS_MODE_USER
#ifndef _REACTOS_
@ -196,6 +196,11 @@ typedef NTSTATUS
OUT PULONG ReturnLength
);
typedef NTSTATUS
(NTAPI *OB_OKAYTOCLOSE_METHOD)(
VOID
);
#else
//

View file

@ -1595,32 +1595,7 @@ RtlSetProcessIsCritical(
IN BOOLEAN IsWinlogon
);
static __inline
struct _PEB*
NtCurrentPeb(VOID)
{
struct _PEB *pPeb;
#if defined(__GNUC__)
__asm__ __volatile__
(
"movl %%fs:0x30, %0\n" /* fs:30h == Teb->Peb */
: "=r" (pPeb) /* can't have two memory operands */
: /* no inputs */
);
#elif defined(_MSC_VER)
__asm mov eax, fs:0x30;
__asm mov pPeb, eax
#else
#error Unknown compiler for inline assembler
#endif
return pPeb;
}
#define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
//
// Environment/Path Functions

View file

@ -537,11 +537,18 @@ typedef struct _TIME_FIELDS
CSHORT Milliseconds;
CSHORT Weekday;
} TIME_FIELDS, *PTIME_FIELDS;
#endif
#else
//
// ACE Definition
// ACE Definitions
//
typedef struct _ACE_HEADER
{
UCHAR AceType;
UCHAR AceFlags;
USHORT AceSize;
} ACE_HEADER, *PACE_HEADER;
#endif
typedef struct _ACE
{
ACE_HEADER Header;

View file

@ -24,10 +24,11 @@ Author:
//
#include <umtypes.h>
#ifdef NTOS_MODE_USER
//
// Privilege constants
//
#ifdef NTOS_MODE_USER
#define SE_MIN_WELL_KNOWN_PRIVILEGE (2L)
#define SE_CREATE_TOKEN_PRIVILEGE (2L)
#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L)
@ -54,12 +55,11 @@ Author:
#define SE_CHANGE_NOTIFY_PRIVILEGE (23L)
#define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L)
#define SE_MAX_WELL_KNOWN_PRIVILEGE (SE_REMOTE_SHUTDOWN_PRIVILEGE)
#endif
#else
//
// Policy types
// Audit and Policy Structures
//
#ifndef NTOS_MODE_USER
typedef struct _SEP_AUDIT_POLICY_CATEGORIES
{
UCHAR System:4;

View file

@ -1,8 +1,16 @@
#include <ddk/ntddk.h>
#define WIN32_NO_STATUS
#include <windows.h>
#define DDKAPI __stdcall
#define _HIDPI_
#define _HIDPI_NO_FUNCTION_MACROS_
typedef VOID
(DDKAPI *PINTERFACE_REFERENCE)(
PVOID Context);
typedef VOID
(DDKAPI *PINTERFACE_DEREFERENCE)(
PVOID Context);
#include <ntndk.h>
#include <ddk/hidusage.h>
#include <ddk/hidclass.h>
#include <ddk/hidpi.h>

View file

@ -126,7 +126,7 @@ Cleanup:
static NTSTATUS
RtlpSysVolCheckOwnerAndSecurity(IN HANDLE DirectoryHandle,
IN PSECURITY_DESCRIPTOR SecurityDescriptor)
IN PISECURITY_DESCRIPTOR SecurityDescriptor)
{
PSECURITY_DESCRIPTOR RelSD = NULL;
PSECURITY_DESCRIPTOR NewRelSD = NULL;
@ -549,7 +549,7 @@ RtlCreateSystemVolumeInformationFolder(
HANDLE hDirectory;
UNICODE_STRING DirectoryName, NewPath;
ULONG PathLen;
PSECURITY_DESCRIPTOR SecurityDescriptor = NULL;
PISECURITY_DESCRIPTOR SecurityDescriptor = NULL;
PSID SystemSid = NULL;
BOOLEAN AddSep = FALSE;
NTSTATUS Status;

View file

@ -336,7 +336,7 @@ CmiObjectDelete(PVOID DeletedObject)
static NTSTATUS
CmiQuerySecurityDescriptor(PKEY_OBJECT KeyObject,
SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR SecurityDescriptor,
PISECURITY_DESCRIPTOR SecurityDescriptor,
PULONG BufferLength)
{
ULONG_PTR Current;

View file

@ -13,8 +13,8 @@
#define _NTSYSTEM_
/* DDK/IFS/NDK Headers */
#include <ddk/ntddk.h>
#include <ddk/ntifs.h>
#include <ddk/ntddk.h>
#include <ddk/wdmguid.h>
#include <ndk/ntndk.h>

View file

@ -263,7 +263,7 @@ ObLogSecurityDescriptor(IN PSECURITY_DESCRIPTOR InputSecurityDescriptor,
IN ULONG RefBias)
{
/* HACK: Return the same descriptor back */
PSECURITY_DESCRIPTOR SdCopy;
PISECURITY_DESCRIPTOR SdCopy;
DPRINT1("ObLogSecurityDescriptor is not implemented!\n", InputSecurityDescriptor);
SdCopy = ExAllocatePool(PagedPool, sizeof(*SdCopy));

View file

@ -113,7 +113,7 @@ SepInitSDs(VOID)
NTSTATUS
STDCALL
SeSetWorldSecurityDescriptor(SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR SecurityDescriptor,
PISECURITY_DESCRIPTOR SecurityDescriptor,
PULONG BufferLength)
{
ULONG_PTR Current;
@ -356,15 +356,16 @@ SepReleaseSecurityQualityOfService(IN PSECURITY_QUALITY_OF_SERVICE CapturedSecur
NTSTATUS
STDCALL
SeCaptureSecurityDescriptor(
IN PSECURITY_DESCRIPTOR OriginalSecurityDescriptor,
IN PSECURITY_DESCRIPTOR _OriginalSecurityDescriptor,
IN KPROCESSOR_MODE CurrentMode,
IN POOL_TYPE PoolType,
IN BOOLEAN CaptureIfKernel,
OUT PSECURITY_DESCRIPTOR *CapturedSecurityDescriptor
)
{
PISECURITY_DESCRIPTOR OriginalSecurityDescriptor = _OriginalSecurityDescriptor;
SECURITY_DESCRIPTOR DescriptorCopy;
PSECURITY_DESCRIPTOR NewDescriptor;
PISECURITY_DESCRIPTOR NewDescriptor;
ULONG OwnerSAC = 0, GroupSAC = 0;
ULONG OwnerSize = 0, GroupSize = 0;
ULONG SaclSize = 0, DaclSize = 0;
@ -678,7 +679,7 @@ SeQuerySecurityDescriptorInfo(IN PSECURITY_INFORMATION SecurityInformation,
IN OUT PULONG Length,
IN PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor OPTIONAL)
{
PSECURITY_DESCRIPTOR ObjectSd;
PISECURITY_DESCRIPTOR ObjectSd;
PISECURITY_DESCRIPTOR_RELATIVE RelSD;
PSID Owner = NULL;
PSID Group = NULL;
@ -873,11 +874,12 @@ SeSetSecurityDescriptorInfoEx(
*/
BOOLEAN STDCALL
SeValidSecurityDescriptor(IN ULONG Length,
IN PSECURITY_DESCRIPTOR SecurityDescriptor)
IN PSECURITY_DESCRIPTOR _SecurityDescriptor)
{
ULONG SdLength;
PISID Sid;
PACL Acl;
PISECURITY_DESCRIPTOR SecurityDescriptor = _SecurityDescriptor;
if (Length < SECURITY_DESCRIPTOR_MIN_LENGTH)
{

View file

@ -196,16 +196,17 @@ VOID SepDeReferenceLogonSession(PLUID AuthenticationId)
NTSTATUS
STDCALL
SeDefaultObjectMethod(PVOID Object,
SECURITY_OPERATION_CODE OperationType,
SECURITY_OPERATION_CODE OperationType,
SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR SecurityDescriptor,
PSECURITY_DESCRIPTOR _SecurityDescriptor,
PULONG ReturnLength,
PSECURITY_DESCRIPTOR *OldSecurityDescriptor,
POOL_TYPE PoolType,
PGENERIC_MAPPING GenericMapping)
{
PSECURITY_DESCRIPTOR ObjectSd;
PSECURITY_DESCRIPTOR NewSd;
PISECURITY_DESCRIPTOR ObjectSd;
PISECURITY_DESCRIPTOR NewSd;
PISECURITY_DESCRIPTOR SecurityDescriptor = _SecurityDescriptor;
POBJECT_HEADER Header = BODY_TO_HEADER(Object);
PSID Owner = 0;
PSID Group = 0;
@ -541,15 +542,17 @@ SeAssignSecurityEx(IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
* @implemented
*/
NTSTATUS STDCALL
SeAssignSecurity(PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
PSECURITY_DESCRIPTOR _ExplicitDescriptor OPTIONAL,
PSECURITY_DESCRIPTOR *NewDescriptor,
BOOLEAN IsDirectoryObject,
PSECURITY_SUBJECT_CONTEXT SubjectContext,
PGENERIC_MAPPING GenericMapping,
POOL_TYPE PoolType)
{
PSECURITY_DESCRIPTOR Descriptor;
PISECURITY_DESCRIPTOR ParentDescriptor = _ParentDescriptor;
PISECURITY_DESCRIPTOR ExplicitDescriptor = _ExplicitDescriptor;
PISECURITY_DESCRIPTOR Descriptor;
PTOKEN Token;
ULONG OwnerLength = 0;
ULONG GroupLength = 0;

View file

@ -619,17 +619,6 @@ typedef struct _COMPRESSED_DATA_INFO {
ULONG CompressedChunkSizes[ANYSIZE_ARRAY];
} COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
#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;
PVOID Ptr;
} DUMMYUNIONNAME;
} EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
#define EX_PUSH_LOCK_LOCK_V ((ULONG_PTR)0x0)
#define EX_PUSH_LOCK_LOCK ((ULONG_PTR)0x1)
#define EX_PUSH_LOCK_WAITING ((ULONG_PTR)0x2)
@ -655,6 +644,111 @@ typedef struct _EX_PUSH_LOCK
};
} EX_PUSH_LOCK, *PEX_PUSH_LOCK;
typedef struct _SID_IDENTIFIER_AUTHORITY {
BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
typedef PVOID PSID;
typedef struct _SID {
BYTE Revision;
BYTE SubAuthorityCount;
SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
DWORD SubAuthority[ANYSIZE_ARRAY];
} SID, *PISID;
typedef struct _SID_AND_ATTRIBUTES {
PSID Sid;
DWORD Attributes;
} SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES;
typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
typedef struct _TOKEN_SOURCE {
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
} TOKEN_SOURCE,*PTOKEN_SOURCE;
typedef struct _TOKEN_CONTROL {
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
} TOKEN_CONTROL,*PTOKEN_CONTROL;
typedef struct _TOKEN_DEFAULT_DACL {
PACL DefaultDacl;
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
typedef struct _TOKEN_GROUPS {
DWORD GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
ULONG SidCount;
ULONG SidLength;
PSID_AND_ATTRIBUTES Sids;
ULONG RestrictedSidCount;
ULONG RestrictedSidLength;
PSID_AND_ATTRIBUTES RestrictedSids;
ULONG PrivilegeCount;
ULONG PrivilegeLength;
PLUID_AND_ATTRIBUTES Privileges;
LUID AuthenticationId;
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
typedef struct _TOKEN_ORIGIN {
LUID OriginatingLogonSession;
} TOKEN_ORIGIN, *PTOKEN_ORIGIN;
typedef struct _TOKEN_OWNER {
PSID Owner;
} TOKEN_OWNER,*PTOKEN_OWNER;
typedef struct _TOKEN_PRIMARY_GROUP {
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
typedef enum tagTOKEN_TYPE {
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE,*PTOKEN_TYPE;
typedef struct _TOKEN_STATISTICS {
LUID TokenId;
LUID AuthenticationId;
LARGE_INTEGER ExpirationTime;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
DWORD DynamicCharged;
DWORD DynamicAvailable;
DWORD GroupCount;
DWORD PrivilegeCount;
LUID ModifiedId;
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
typedef struct _TOKEN_USER {
SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER;
typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION;
typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _SECURITY_DESCRIPTOR {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
PSID Owner;
PSID Group;
PACL Sacl;
PACL Dacl;
} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;
typedef struct _SECURITY_DESCRIPTOR_RELATIVE {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
DWORD Owner;
DWORD Group;
DWORD Sacl;
DWORD Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;
typedef enum _TOKEN_INFORMATION_CLASS {
TokenUser=1,TokenGroups,TokenPrivileges,TokenOwner,
TokenPrimaryGroup,TokenDefaultDacl,TokenSource,TokenType,
TokenImpersonationLevel,TokenStatistics,TokenRestrictedSids,
TokenSessionId,TokenGroupsAndPrivileges,TokenSessionReference,
TokenSandBoxInert,TokenAuditPolicy,TokenOrigin,
} TOKEN_INFORMATION_CLASS;
typedef struct _FILE_ACCESS_INFORMATION {
ACCESS_MASK AccessFlags;
} FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION;
@ -831,6 +925,17 @@ typedef struct _FILE_GET_QUOTA_INFORMATION {
SID Sid;
} FILE_GET_QUOTA_INFORMATION, *PFILE_GET_QUOTA_INFORMATION;
typedef struct _FILE_QUOTA_INFORMATION
{
ULONG NextEntryOffset;
ULONG SidLength;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER QuotaUsed;
LARGE_INTEGER QuotaThreshold;
LARGE_INTEGER QuotaLimit;
SID Sid;
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
typedef struct _FILE_INTERNAL_INFORMATION {
LARGE_INTEGER IndexNumber;
} FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION;

View file

@ -134,6 +134,10 @@ struct _SCATTER_GATHER_LIST;
struct _DRIVE_LAYOUT_INFORMATION;
struct _DRIVE_LAYOUT_INFORMATION_EX;
typedef PVOID PSECURITY_DESCRIPTOR;
typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;
typedef PVOID PSID;
DECLARE_INTERNAL_OBJECT(ADAPTER_OBJECT)
DECLARE_INTERNAL_OBJECT(DMA_ADAPTER)
DECLARE_INTERNAL_OBJECT(IO_STATUS_BLOCK)
@ -212,6 +216,10 @@ typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
#define MAXIMUM_WAIT_OBJECTS 64
#define EX_RUNDOWN_ACTIVE 0x1
#define EX_RUNDOWN_COUNT_SHIFT 0x1
#define EX_RUNDOWN_COUNT_INC (1 << EX_RUNDOWN_COUNT_SHIFT)
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
@ -1114,6 +1122,15 @@ typedef struct _FAST_MUTEX
ULONG OldIrql;
} FAST_MUTEX, *PFAST_MUTEX;
typedef struct _EX_RUNDOWN_REF
{
union
{
ULONG_PTR Count;
PVOID Ptr;
};
} EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
typedef struct _KGATE
{
DISPATCHER_HEADER Header;
@ -2556,7 +2573,7 @@ typedef struct {
pHalMirrorVerify HalMirrorVerify;
} HAL_DISPATCH, *PHAL_DISPATCH;
#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_)
#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTHAL_)
extern DECL_IMPORT PHAL_DISPATCH HalDispatchTable;
#define HALDISPATCH ((PHAL_DISPATCH)&HalDispatchTable)
#else
@ -2681,16 +2698,6 @@ typedef struct _FILE_DISPOSITION_INFORMATION {
BOOLEAN DeleteFile;
} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
typedef struct _FILE_QUOTA_INFORMATION {
ULONG NextEntryOffset;
ULONG SidLength;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER QuotaUsed;
LARGE_INTEGER QuotaThreshold;
LARGE_INTEGER QuotaLimit;
SID Sid;
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
typedef struct _FILE_END_OF_FILE_INFORMATION {
LARGE_INTEGER EndOfFile;
} FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
@ -10247,7 +10254,7 @@ DbgSetDebugFilterState(
#endif /* !DBG */
#if defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_)
#if defined(_NTDDK_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_)
extern NTOSAPI PBOOLEAN KdDebuggerNotPresent;
extern NTOSAPI PBOOLEAN KdDebuggerEnabled;

View file

@ -1530,11 +1530,14 @@ typedef struct _GENERIC_MAPPING {
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
} GENERIC_MAPPING, *PGENERIC_MAPPING;
/* Sigh..when will they learn... */
#ifndef __NTDDK_H
typedef struct _ACE_HEADER {
BYTE AceType;
BYTE AceFlags;
WORD AceSize;
} ACE_HEADER, *PACE_HEADER;
typedef struct _ACCESS_ALLOWED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
@ -1588,6 +1591,7 @@ typedef struct _SYSTEM_ALARM_OBJECT_ACE {
GUID InheritedObjectType;
DWORD SidStart;
} SYSTEM_ALARM_OBJECT_ACE,*PSYSTEM_ALARM_OBJECT_ACE;
#endif
typedef struct _ACL {
BYTE AclRevision;
BYTE Sbz1;
@ -2217,6 +2221,8 @@ typedef struct _SE_IMPERSONATION_STATE {
BOOLEAN EffectiveOnly;
SECURITY_IMPERSONATION_LEVEL Level;
} SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE;
/* Steven you are my hero when you fix the w32api ddk! */
#if !defined(__NTDDK_H)
typedef struct _SID_IDENTIFIER_AUTHORITY {
BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
@ -2321,6 +2327,7 @@ typedef enum _TOKEN_INFORMATION_CLASS {
TokenSessionId,TokenGroupsAndPrivileges,TokenSessionReference,
TokenSandBoxInert,TokenAuditPolicy,TokenOrigin,
} TOKEN_INFORMATION_CLASS;
#endif
typedef enum _SID_NAME_USE {
SidTypeUser=1,SidTypeGroup,SidTypeDomain,SidTypeAlias,
SidTypeWellKnownGroup,SidTypeDeletedAccount,SidTypeInvalid,
@ -3225,6 +3232,8 @@ typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST {
typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS {
DWORD UIRestrictionsClass;
} JOBOBJECT_BASIC_UI_RESTRICTIONS,*PJOBOBJECT_BASIC_UI_RESTRICTIONS;
/* Steven you are my hero when you fix the w32api ddk! */
#ifndef __NTDDK_H
typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {
DWORD SecurityLimitFlags;
HANDLE JobToken;
@ -3232,6 +3241,7 @@ typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {
PTOKEN_PRIVILEGES PrivilegesToDelete;
PTOKEN_GROUPS RestrictedSids;
} JOBOBJECT_SECURITY_LIMIT_INFORMATION,*PJOBOBJECT_SECURITY_LIMIT_INFORMATION;
#endif
typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
DWORD EndOfJobTimeAction;
} JOBOBJECT_END_OF_JOB_TIME_INFORMATION,*PJOBOBJECT_END_OF_JOB_TIME_INFORMATION;