- Fix a few definitions

svn path=/trunk/; revision=39226
This commit is contained in:
Johannes Anderwald 2009-01-31 12:59:56 +00:00
parent cca55b4587
commit a51869e510

View file

@ -1120,6 +1120,20 @@ typedef struct
PFAST_IO_READ FastRead; PFAST_IO_READ FastRead;
PFAST_IO_WRITE FastWrite; PFAST_IO_WRITE FastWrite;
} KSDISPATCH_TABLE, *PKSDISPATCH_TABLE; } KSDISPATCH_TABLE, *PKSDISPATCH_TABLE;
#define KSCREATE_ITEM_IRP_STORAGE(Irp) (*(PKSOBJECT_CREATE_ITEM*)&(Irp)->Tail.Overlay.DriverContext[0])
#define KSEVENT_SET_IRP_STORAGE(Irp) (*(const KSEVENT_SET**)&(Irp)->Tail.Overlay.DriverContext[0])
#define KSEVENT_ITEM_IRP_STORAGE(Irp) (*(const KSEVENT_ITEM**)&(Irp)->Tail.Overlay.DriverContext[3])
#define KSEVENT_ENTRY_IRP_STORAGE(Irp) (*(PKSEVENT_ENTRY*)&(Irp)->Tail.Overlay.DriverContext[0])
#define KSMETHOD_SET_IRP_STORAGE(Irp) (*(const KSMETHOD_SET**)&(Irp)->Tail.Overlay.DriverContext[0])
#define KSMETHOD_ITEM_IRP_STORAGE(Irp) (*(const KSMETHOD_ITEM**)&(Irp)->Tail.Overlay.DriverContext[3])
#define KSMETHOD_TYPE_IRP_STORAGE(Irp) (*(ULONG_PTR*)(&(Irp)->Tail.Overlay.DriverContext[2]))
#define KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) (*(PKSPIN_LOCK*)&(Irp)->Tail.Overlay.DriverContext[1])
#define KSPROPERTY_SET_IRP_STORAGE(Irp) (*(const KSPROPERTY_SET**)&(Irp)->Tail.Overlay.DriverContext[0])
#define KSPROPERTY_ITEM_IRP_STORAGE(Irp) (*(const KSPROPERTY_ITEM**)&(Irp)->Tail.Overlay.DriverContext[3])
#define KSPROPERTY_ATTRIBUTES_IRP_STORAGE(Irp) (*(PKSATTRIBUTE_LIST*)&(Irp)->Tail.Overlay.DriverContext[2])
#endif #endif
typedef struct typedef struct
@ -1432,6 +1446,18 @@ typedef struct
typedef struct typedef struct
{ {
ULONG PropertySetsCount;
ULONG PropertyItemSize;
const KSPROPERTY_SET* PropertySets;
ULONG MethodSetsCount;
ULONG MethodItemSize;
const KSMETHOD_SET* MethodSets;
ULONG EventSetsCount;
ULONG EventItemSize;
const KSEVENT_SET* EventSets;
#if !defined(_WIN64)
PVOID Alignment;
#endif
} KSAUTOMATION_TABLE, *PKSAUTOMATION_TABLE; } KSAUTOMATION_TABLE, *PKSAUTOMATION_TABLE;
typedef struct typedef struct
@ -1648,11 +1674,17 @@ typedef struct
/* =============================================================== /* ===============================================================
Device Dispatch Device Dispatch
*/ */
#if defined(_NTDDK_) #if defined(_NTDDK_)
typedef struct
{ typedef struct _KSFILTER_DISPATCH KSFILTER_DISPATCH, *PKSFILTER_DISPATCH;
/* TODO */ typedef struct _KSDEVICE KSDEVICE, *PKSDEVICE;
} KSDEVICE, *PKSDEVICE; typedef struct _KSFILTER KSFILTER, *PKSFILTER;
typedef struct _KSNODE_DESCRIPTOR KSNODE_DESCRIPTOR, *PKSNODE_DESCRIPTOR;
typedef struct _KSFILTER_DESCRIPTOR KSFILTER_DESCRIPTOR, *PKSFILTER_DESCRIPTOR;
typedef struct _KSDEVICE_DESCRIPTOR KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR;
typedef NTSTATUS (*PFNKSDEVICECREATE)( typedef NTSTATUS (*PFNKSDEVICECREATE)(
IN PKSDEVICE Device); IN PKSDEVICE Device);
@ -1694,8 +1726,7 @@ typedef VOID (*PFNKSDEVICESETPOWER)(
IN DEVICE_POWER_STATE To, IN DEVICE_POWER_STATE To,
IN DEVICE_POWER_STATE From); IN DEVICE_POWER_STATE From);
typedef struct _KSDEVICE_DISPATCH typedef struct _KSDEVICE_DISPATCH {
{
PFNKSDEVICECREATE Add; PFNKSDEVICECREATE Add;
PFNKSDEVICEPNPSTART Start; PFNKSDEVICEPNPSTART Start;
PFNKSDEVICE PostStart; PFNKSDEVICE PostStart;
@ -1707,18 +1738,40 @@ typedef struct _KSDEVICE_DISPATCH
PFNKSDEVICEIRPVOID Remove; PFNKSDEVICEIRPVOID Remove;
PFNKSDEVICEQUERYCAPABILITIES QueryCapabilities; PFNKSDEVICEQUERYCAPABILITIES QueryCapabilities;
PFNKSDEVICEIRPVOID SurpriseRemoval; PFNKSDEVICEIRPVOID SurpriseRemoval;
PFNKSDEVICEQUERYPOWER Querypower; PFNKSDEVICEQUERYPOWER QueryPower;
PFNKSDEVICESETPOWER SetPower; PFNKSDEVICESETPOWER SetPower;
} KSDEVICE_DISPATCH, *PKSDEVICE_DISPATCH; PFNKSDEVICEIRP QueryInterface;
}KSDEVICE_DISPATCH, *PKSDEVICE_DISPATCH;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
#define KSDEVICE_DESCRIPTOR_VERSION_2 (0x110)
#define MIN_DEV_VER_FOR_FLAGS (0x110)
#endif
struct _KSDEVICE
{
const KSDEVICE_DESCRIPTOR* Descriptor;
KSOBJECT_BAG Bag;
PVOID Context;
PDEVICE_OBJECT FunctionalDeviceObject;
PDEVICE_OBJECT PhysicalDeviceObject;
PDEVICE_OBJECT NextDeviceObject;
BOOLEAN Started;
SYSTEM_POWER_STATE SystemPowerState;
DEVICE_POWER_STATE DevicePowerState;
};
#endif #endif
/* =============================================================== /* ===============================================================
Filter Dispatch Filter Dispatch
*/ */
#if defined(_NTDDK_) #if defined(_NTDDK_)
typedef struct struct _KSFILTER
{ {
} KSFILTER, *PKSFILTER; const KSFILTER_DESCRIPTOR* Descriptor;
KSOBJECT_BAG Bag;
PVOID Context;
};
typedef NTSTATUS (*PFNKSFILTERIRP)( typedef NTSTATUS (*PFNKSFILTERIRP)(
IN PKSFILTER Filter, IN PKSFILTER Filter,
@ -1731,21 +1784,23 @@ typedef NTSTATUS (*PFNKSFILTERPROCESS)(
typedef NTSTATUS (*PFNKSFILTERVOID)( typedef NTSTATUS (*PFNKSFILTERVOID)(
IN PKSFILTER Filter); IN PKSFILTER Filter);
typedef struct _KSFILTER_DISPATCH struct _KSFILTER_DISPATCH
{ {
PFNKSFILTERIRP Create; PFNKSFILTERIRP Create;
PFNKSFILTERIRP Close; PFNKSFILTERIRP Close;
PFNKSFILTERPROCESS Process; PFNKSFILTERPROCESS Process;
PFNKSFILTERVOID Reset; PFNKSFILTERVOID Reset;
} KSFILTER_DISPATCH, *PKSFILTER_DISPATCH; };
typedef struct { struct _KSNODE_DESCRIPTOR
{
const KSAUTOMATION_TABLE* AutomationTable; const KSAUTOMATION_TABLE* AutomationTable;
const GUID* Type; const GUID* Type;
const GUID* Name; const GUID* Name;
} KSNODE_DESCRIPTOR, *PKSNODE_DESCRIPTOR; };
typedef struct { struct _KSFILTER_DESCRIPTOR
{
const KSFILTER_DISPATCH* Dispatch; const KSFILTER_DISPATCH* Dispatch;
const KSAUTOMATION_TABLE* AutomationTable; const KSAUTOMATION_TABLE* AutomationTable;
ULONG Version; ULONG Version;
@ -1762,14 +1817,14 @@ typedef struct {
ULONG ConnectionsCount; ULONG ConnectionsCount;
const KSTOPOLOGY_CONNECTION* Connections; const KSTOPOLOGY_CONNECTION* Connections;
const KSCOMPONENTID* ComponentId; const KSCOMPONENTID* ComponentId;
} KSFILTER_DESCRIPTOR, *PKSFILTER_DESCRIPTOR; };
typedef struct struct _KSDEVICE_DESCRIPTOR
{ {
const KSDEVICE_DISPATCH* Dispatch; const KSDEVICE_DISPATCH* Dispatch;
ULONG FilterDescriptorsCount; ULONG FilterDescriptorsCount;
const KSFILTER_DESCRIPTOR*const* FilterDescriptors; const KSFILTER_DESCRIPTOR*const* FilterDescriptors;
} KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR; };
#endif #endif
/* =============================================================== /* ===============================================================
Minidriver Callbacks Minidriver Callbacks