From: Alex Ionescu Date: Sun, 4 Sep 2005 22:16:57 +0000 (+0000) Subject: - Fix incompatible IO_STACK_LOCATION definition in W32api ddk/winddk.k X-Git-Tag: ReactOS-0.2.8~764 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=a5243c8e37ca6b59f956bdab5831110b801f1037 - Fix incompatible IO_STACK_LOCATION definition in W32api ddk/winddk.k - Add EXTENDED_IO_STACK_LOCATION to NDK, with the full definition. svn path=/trunk/; revision=17645 --- diff --git a/reactos/include/ndk/iotypes.h b/reactos/include/ndk/iotypes.h index ad4283de8bb..ce8f96b40ec 100644 --- a/reactos/include/ndk/iotypes.h +++ b/reactos/include/ndk/iotypes.h @@ -647,6 +647,252 @@ typedef struct _PRIVATE_DRIVER_EXTENSIONS PVOID ClientIdentificationAddress; CHAR Extension[1]; } PRIVATE_DRIVER_EXTENSIONS, *PPRIVATE_DRIVER_EXTENSIONS; + +#if !defined(_ALPHA_) +#include +#endif +typedef struct _EXTENDED_IO_STACK_LOCATION +{ + UCHAR MajorFunction; + UCHAR MinorFunction; + UCHAR Flags; + UCHAR Control; + union + { + struct + { + PIO_SECURITY_CONTEXT SecurityContext; + ULONG Options; + USHORT FileAttributes; + USHORT ShareAccess; + ULONG EaLength; + } Create; + struct + { + PIO_SECURITY_CONTEXT SecurityContext; + ULONG Options; + USHORT Reserved; + USHORT ShareAccess; + struct _NAMED_PIPE_CREATE_PARAMETERS *Parameters; + } CreatePipe; + struct + { + PIO_SECURITY_CONTEXT SecurityContext; + ULONG Options; + USHORT Reserved; + USHORT ShareAccess; + struct _MAILSLOT_CREATE_PARAMETERS *Parameters; + } CreateMailslot; + struct + { + ULONG Length; + ULONG Key; + LARGE_INTEGER ByteOffset; + } Read; + struct + { + ULONG Length; + ULONG Key; + LARGE_INTEGER ByteOffset; + } Write; + struct + { + ULONG Length; + PUNICODE_STRING FileName; + FILE_INFORMATION_CLASS FileInformationClass; + ULONG FileIndex; + } QueryDirectory; + struct + { + ULONG Length; + ULONG CompletionFilter; + } NotifyDirectory; + struct + { + ULONG Length; + FILE_INFORMATION_CLASS FileInformationClass; + } QueryFile; + struct + { + ULONG Length; + FILE_INFORMATION_CLASS FileInformationClass; + PFILE_OBJECT FileObject; + union + { + struct + { + BOOLEAN ReplaceIfExists; + BOOLEAN AdvanceOnly; + }; + ULONG ClusterCount; + HANDLE DeleteHandle; + }; + } SetFile; + struct + { + ULONG Length; + PVOID EaList; + ULONG EaListLength; + ULONG EaIndex; + } QueryEa; + struct + { + ULONG Length; + } SetEa; + struct + { + ULONG Length; + FS_INFORMATION_CLASS FsInformationClass; + } QueryVolume; + struct + { + ULONG Length; + FS_INFORMATION_CLASS FsInformationClass; + } SetVolume; + struct + { + ULONG OutputBufferLength; + ULONG InputBufferLength; + ULONG FsControlCode; + PVOID Type3InputBuffer; + } FileSystemControl; + struct + { + PLARGE_INTEGER Length; + ULONG Key; + LARGE_INTEGER ByteOffset; + } LockControl; + struct + { + ULONG OutputBufferLength; + ULONG InputBufferLength; + ULONG IoControlCode; + PVOID Type3InputBuffer; + } DeviceIoControl; + struct + { + SECURITY_INFORMATION SecurityInformation; + ULONG POINTER_ALIGNMENT Length; + } QuerySecurity; + struct + { + SECURITY_INFORMATION SecurityInformation; + PSECURITY_DESCRIPTOR SecurityDescriptor; + } SetSecurity; + struct + { + PVPB Vpb; + PDEVICE_OBJECT DeviceObject; + } MountVolume; + struct + { + PVPB Vpb; + PDEVICE_OBJECT DeviceObject; + } VerifyVolume; + struct + { + struct _SCSI_REQUEST_BLOCK *Srb; + } Scsi; + struct + { + ULONG Length; + PSID StartSid; + struct _FILE_GET_QUOTA_INFORMATION *SidList; + ULONG SidListLength; + } QueryQuota; + struct + { + ULONG Length; + } SetQuota; + struct + { + DEVICE_RELATION_TYPE Type; + } QueryDeviceRelations; + struct + { + CONST GUID *InterfaceType; + USHORT Size; + USHORT Version; + PINTERFACE Interface; + PVOID InterfaceSpecificData; + } QueryInterface; + struct + { + PDEVICE_CAPABILITIES Capabilities; + } DeviceCapabilities; + struct + { + PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList; + } FilterResourceRequirements; + struct + { + ULONG WhichSpace; + PVOID Buffer; + ULONG Offset; + ULONG Length; + } ReadWriteConfig; + struct + { + BOOLEAN Lock; + } SetLock; + struct + { + BUS_QUERY_ID_TYPE IdType; + } QueryId; + struct + { + DEVICE_TEXT_TYPE DeviceTextType; + LCID LocaleId; + } QueryDeviceText; + struct + { + BOOLEAN InPath; + BOOLEAN Reserved[3]; + DEVICE_USAGE_NOTIFICATION_TYPE Type; + } UsageNotification; + struct + { + SYSTEM_POWER_STATE PowerState; + } WaitWake; + struct + { + PPOWER_SEQUENCE PowerSequence; + } PowerSequence; + struct + { + ULONG SystemContext; + POWER_STATE_TYPE Type; + POWER_STATE State; + POWER_ACTION ShutdownType; + } Power; + struct + { + PCM_RESOURCE_LIST AllocatedResources; + PCM_RESOURCE_LIST AllocatedResourcesTranslated; + } StartDevice; + struct + { + ULONG_PTR ProviderId; + PVOID DataPath; + ULONG BufferSize; + PVOID Buffer; + } WMI; + struct + { + PVOID Argument1; + PVOID Argument2; + PVOID Argument3; + PVOID Argument4; + } Others; + } Parameters; + PDEVICE_OBJECT DeviceObject; + PFILE_OBJECT FileObject; + PIO_COMPLETION_ROUTINE CompletionRoutine; + PVOID Context; +} IO_STACK_LOCATION, *PIO_STACK_LOCATION; +#if !defined(_ALPHA_) +#include +#endif #endif /* FUNCTION TYPES ************************************************************/ diff --git a/reactos/w32api/include/ddk/winddk.h b/reactos/w32api/include/ddk/winddk.h index 10f789441ba..256c87ac5dc 100644 --- a/reactos/w32api/include/ddk/winddk.h +++ b/reactos/w32api/include/ddk/winddk.h @@ -3180,22 +3180,6 @@ typedef struct _IO_STACK_LOCATION { USHORT ShareAccess; ULONG POINTER_ALIGNMENT EaLength; } Create; - /* FIXME: CreatePipe and CreateMailslot aren't defined in official - * DDK/IFS headers. */ - struct { - PIO_SECURITY_CONTEXT SecurityContext; - ULONG Options; - USHORT Reserved; - USHORT ShareAccess; - struct _NAMED_PIPE_CREATE_PARAMETERS *Parameters; - } CreatePipe; - struct { - PIO_SECURITY_CONTEXT SecurityContext; - ULONG Options; - USHORT Reserved; - USHORT ShareAccess; - struct _MAILSLOT_CREATE_PARAMETERS *Parameters; - } CreateMailslot; struct { ULONG Length; ULONG POINTER_ALIGNMENT Key;