- 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
This commit is contained in:
Alex Ionescu 2005-09-04 22:16:57 +00:00
parent d5829ea63d
commit a5243c8e37
2 changed files with 246 additions and 16 deletions

View file

@ -647,6 +647,252 @@ typedef struct _PRIVATE_DRIVER_EXTENSIONS
PVOID ClientIdentificationAddress; PVOID ClientIdentificationAddress;
CHAR Extension[1]; CHAR Extension[1];
} PRIVATE_DRIVER_EXTENSIONS, *PPRIVATE_DRIVER_EXTENSIONS; } PRIVATE_DRIVER_EXTENSIONS, *PPRIVATE_DRIVER_EXTENSIONS;
#if !defined(_ALPHA_)
#include <pshpack4.h>
#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 <poppack.h>
#endif
#endif #endif
/* FUNCTION TYPES ************************************************************/ /* FUNCTION TYPES ************************************************************/

View file

@ -3180,22 +3180,6 @@ typedef struct _IO_STACK_LOCATION {
USHORT ShareAccess; USHORT ShareAccess;
ULONG POINTER_ALIGNMENT EaLength; ULONG POINTER_ALIGNMENT EaLength;
} Create; } 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 { struct {
ULONG Length; ULONG Length;
ULONG POINTER_ALIGNMENT Key; ULONG POINTER_ALIGNMENT Key;