mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 20:03:12 +00:00
- Make ks.h and drmk.h msvc compatible
svn path=/trunk/; revision=41468
This commit is contained in:
parent
f791b1fa91
commit
10e71311b1
2 changed files with 515 additions and 82 deletions
|
@ -35,40 +35,47 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmAddContentHandlers(
|
DrmAddContentHandlers(
|
||||||
IN ULONG ContentId,
|
IN ULONG ContentId,
|
||||||
IN PVOID *paHandlers,
|
IN PVOID *paHandlers,
|
||||||
IN ULONG NumHandlers);
|
IN ULONG NumHandlers);
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmCreateContentMixed(
|
DrmCreateContentMixed(
|
||||||
IN PULONG paContentId,
|
IN PULONG paContentId,
|
||||||
IN ULONG cContentId,
|
IN ULONG cContentId,
|
||||||
OUT PULONG pMixedContentId);
|
OUT PULONG pMixedContentId);
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmDestroyContent(
|
DrmDestroyContent(
|
||||||
IN ULONG ContentId);
|
IN ULONG ContentId);
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmForwardContentToDeviceObject(
|
DrmForwardContentToDeviceObject(
|
||||||
IN ULONG ContentId,
|
IN ULONG ContentId,
|
||||||
IN PVOID Reserved,
|
IN PVOID Reserved,
|
||||||
IN PCDRMFORWARD DrmForward);
|
IN PCDRMFORWARD DrmForward);
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmForwardContentToFileObject(
|
DrmForwardContentToFileObject(
|
||||||
IN ULONG ContentId,
|
IN ULONG ContentId,
|
||||||
IN PFILE_OBJECT FileObject);
|
IN PFILE_OBJECT FileObject);
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmForwardContentToInterface(
|
DrmForwardContentToInterface(
|
||||||
IN ULONG ContentId,
|
IN ULONG ContentId,
|
||||||
IN PUNKNOWN pUnknown,
|
IN PUNKNOWN pUnknown,
|
||||||
IN ULONG NumMethods);
|
IN ULONG NumMethods);
|
||||||
|
|
||||||
NTAPI NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
DrmGetContentRights(
|
DrmGetContentRights(
|
||||||
IN ULONG ContentId,
|
IN ULONG ContentId,
|
||||||
OUT PDRMRIGHTS DrmRights);
|
OUT PDRMRIGHTS DrmRights);
|
||||||
|
|
|
@ -249,8 +249,18 @@ typedef KSIDENTIFIER KSDEGRADE, *PKSDEGRADE;
|
||||||
typedef KSIDENTIFIER KSPIN_INTERFACE, *PKSPIN_INTERFACE;
|
typedef KSIDENTIFIER KSPIN_INTERFACE, *PKSPIN_INTERFACE;
|
||||||
typedef KSIDENTIFIER KSPIN_MEDIUM, *PKSPIN_MEDIUM;
|
typedef KSIDENTIFIER KSPIN_MEDIUM, *PKSPIN_MEDIUM;
|
||||||
|
|
||||||
typedef union
|
#if !defined( _MSC_VER )
|
||||||
{
|
typedef struct {
|
||||||
|
ULONG FormatSize;
|
||||||
|
ULONG Flags;
|
||||||
|
ULONG SampleSize;
|
||||||
|
ULONG Reserved;
|
||||||
|
GUID MajorFormat;
|
||||||
|
GUID SubFormat;
|
||||||
|
GUID Specifier;
|
||||||
|
} KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;
|
||||||
|
#else
|
||||||
|
typedef union {
|
||||||
struct {
|
struct {
|
||||||
ULONG FormatSize;
|
ULONG FormatSize;
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
|
@ -262,9 +272,13 @@ typedef union
|
||||||
};
|
};
|
||||||
LONGLONG Alignment;
|
LONGLONG Alignment;
|
||||||
} KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;
|
} KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
ULONG Size;
|
||||||
|
ULONG Flags;
|
||||||
|
GUID Attribute;
|
||||||
} KSATTRIBUTE, *PKSATTRIBUTE;
|
} KSATTRIBUTE, *PKSATTRIBUTE;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1171,20 +1185,37 @@ enum VARENUM {
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
} KS_FRAMING_ITEM, *PKS_FRAMING_ITEM;
|
ULONG MinFrameSize;
|
||||||
|
ULONG MaxFrameSize;
|
||||||
typedef struct
|
ULONG Stepping;
|
||||||
{
|
|
||||||
} KS_FRAMING_RANGE, *PKS_FRAMING_RANGE;
|
} KS_FRAMING_RANGE, *PKS_FRAMING_RANGE;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
/* Obsolete */
|
KS_FRAMING_RANGE Range;
|
||||||
|
ULONG InPlaceWeight;
|
||||||
|
ULONG NotInPlaceWeight;
|
||||||
} KS_FRAMING_RANGE_WEIGHTED, *PKS_FRAMING_RANGE_WEIGHTED;
|
} KS_FRAMING_RANGE_WEIGHTED, *PKS_FRAMING_RANGE_WEIGHTED;
|
||||||
|
|
||||||
/* ??? */
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
GUID MemoryType;
|
||||||
|
GUID BusType;
|
||||||
|
ULONG MemoryFlags;
|
||||||
|
ULONG BusFlags;
|
||||||
|
ULONG Flags;
|
||||||
|
ULONG Frames;
|
||||||
|
ULONG FileAlignment;
|
||||||
|
ULONG MemoryTypeWeight;
|
||||||
|
KS_FRAMING_RANGE PhysicalRange;
|
||||||
|
KS_FRAMING_RANGE_WEIGHTED FramingRange;
|
||||||
|
} KS_FRAMING_ITEM, *PKS_FRAMING_ITEM;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ULONG RatioNumerator;
|
||||||
|
ULONG RatioDenominator;
|
||||||
|
ULONG RatioConstantMargin;
|
||||||
} KS_COMPRESSION, *PKS_COMPRESSION;
|
} KS_COMPRESSION, *PKS_COMPRESSION;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1236,12 +1267,48 @@ typedef struct
|
||||||
#define KSPROPERTY_ITEM_IRP_STORAGE(Irp) (*(const KSPROPERTY_ITEM**)&(Irp)->Tail.Overlay.DriverContext[3])
|
#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])
|
#define KSPROPERTY_ATTRIBUTES_IRP_STORAGE(Irp) (*(PKSATTRIBUTE_LIST*)&(Irp)->Tail.Overlay.DriverContext[2])
|
||||||
|
|
||||||
#endif
|
typedef
|
||||||
|
VOID
|
||||||
|
(*PFNREFERENCEDEVICEOBJECT)(
|
||||||
|
IN PVOID Context
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
VOID
|
||||||
|
(*PFNDEREFERENCEDEVICEOBJECT)(
|
||||||
|
IN PVOID Context
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
NTSTATUS
|
||||||
|
(*PFNQUERYREFERENCESTRING)(
|
||||||
|
IN PVOID Context,
|
||||||
|
IN OUT PWCHAR *String
|
||||||
|
);
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
INTERFACE Interface;
|
||||||
|
PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
|
||||||
|
PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
|
||||||
|
PFNQUERYREFERENCESTRING QueryReferenceString;
|
||||||
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
|
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
KDPC Dpc;
|
||||||
|
ULONG ReferenceCount;
|
||||||
|
KSPIN_LOCK AccessLock;
|
||||||
|
} KSDPC_ITEM, *PKSDPC_ITEM;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
KSDPC_ITEM DpcItem;
|
||||||
|
LIST_ENTRY BufferList;
|
||||||
|
} KSBUFFER_ITEM, *PKSBUFFER_ITEM;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
GUID Manufacturer;
|
GUID Manufacturer;
|
||||||
|
@ -1252,10 +1319,6 @@ typedef struct
|
||||||
ULONG Revision;
|
ULONG Revision;
|
||||||
} KSCOMPONENTID, *PKSCOMPONENTID;
|
} KSCOMPONENTID, *PKSCOMPONENTID;
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
} KSBUFFER_ITEM, *PKSBUFFER_ITEM;
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Properties
|
Properties
|
||||||
*/
|
*/
|
||||||
|
@ -1265,40 +1328,85 @@ typedef struct
|
||||||
#define KSPROPERTY_MEMBER_VALUES 0x00000003
|
#define KSPROPERTY_MEMBER_VALUES 0x00000003
|
||||||
#define KSPROPERTY_MEMBER_FLAG_DEFAULT KSPROPERTY_MEMBER_RANGES
|
#define KSPROPERTY_MEMBER_FLAG_DEFAULT KSPROPERTY_MEMBER_RANGES
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
KS_SEEKING_NoPositioning,
|
||||||
|
KS_SEEKING_AbsolutePositioning,
|
||||||
|
KS_SEEKING_RelativePositioning,
|
||||||
|
KS_SEEKING_IncrementalPositioning,
|
||||||
|
KS_SEEKING_PositioningBitsMask = 0x3,
|
||||||
|
KS_SEEKING_SeekToKeyFrame,
|
||||||
|
KS_SEEKING_ReturnTime = 0x8
|
||||||
|
} KS_SEEKING_FLAGS;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
LONGLONG Current;
|
||||||
|
LONGLONG Stop;
|
||||||
|
KS_SEEKING_FLAGS CurrentFlags;
|
||||||
|
KS_SEEKING_FLAGS StopFlags;
|
||||||
} KSPROPERTY_POSITIONS, *PKSPROPERTY_POSITIONS;
|
} KSPROPERTY_POSITIONS, *PKSPROPERTY_POSITIONS;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
} KSPROPERTY_SERIAL, *PKSPROPERTY_SERIAL;
|
GUID PropertySet;
|
||||||
|
ULONG Count;
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
} KSPROPERTY_SERIALHDR, *PKSPROPERTY_SERIALHDR;
|
} KSPROPERTY_SERIALHDR, *PKSPROPERTY_SERIALHDR;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
|
KSIDENTIFIER PropTypeSet;
|
||||||
struct _SIGNED {
|
ULONG Id;
|
||||||
#else
|
ULONG PropertyLength;
|
||||||
|
} KSPROPERTY_SERIAL, *PKSPROPERTY_SERIAL;
|
||||||
|
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
struct {
|
struct {
|
||||||
#endif
|
|
||||||
LONG SignedMinimum;
|
LONG SignedMinimum;
|
||||||
LONG SignedMaximum;
|
LONG SignedMaximum;
|
||||||
};
|
|
||||||
#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
|
#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
|
||||||
struct _UNSIGNED {
|
}_SIGNED;
|
||||||
#else
|
#else
|
||||||
struct {
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct {
|
||||||
ULONG UnsignedMinimum;
|
ULONG UnsignedMinimum;
|
||||||
ULONG UnsignedMaximum;
|
ULONG UnsignedMaximum;
|
||||||
};
|
#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
|
||||||
|
}_UNSIGNED;
|
||||||
|
#else
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
} KSPROPERTY_BOUNDS_LONG, *PKSPROPERTY_BOUNDS_LONG;
|
} KSPROPERTY_BOUNDS_LONG, *PKSPROPERTY_BOUNDS_LONG;
|
||||||
|
|
||||||
typedef struct
|
typedef union
|
||||||
{
|
{
|
||||||
|
struct {
|
||||||
|
LONGLONG SignedMinimum;
|
||||||
|
LONGLONG SignedMaximum;
|
||||||
|
#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
|
||||||
|
}_SIGNED64;
|
||||||
|
#else
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct {
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
ULONGLONG UnsignedMinimum;
|
||||||
|
ULONGLONG UnsignedMaximum;
|
||||||
|
#else
|
||||||
|
DWORDLONG UnsignedMinimum;
|
||||||
|
DWORDLONG UnsignedMaximum;
|
||||||
|
#endif
|
||||||
|
#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
|
||||||
|
}_UNSIGNED64;
|
||||||
|
#else
|
||||||
|
};
|
||||||
|
#endif
|
||||||
} KSPROPERTY_BOUNDS_LONGLONG, *PKSPROPERTY_BOUNDS_LONGLONG;
|
} KSPROPERTY_BOUNDS_LONGLONG, *PKSPROPERTY_BOUNDS_LONGLONG;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -1312,6 +1420,8 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
LONGLONG Earliest;
|
||||||
|
LONGLONG Latest;
|
||||||
} KSPROPERTY_MEDIAAVAILABLE, *PKSPROPERTY_MEDIAAVAILABLE;
|
} KSPROPERTY_MEDIAAVAILABLE, *PKSPROPERTY_MEDIAAVAILABLE;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1406,11 +1516,14 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
ULONGLONG SteppingDelta;
|
||||||
|
#else
|
||||||
|
DWORDLONG SteppingDelta;
|
||||||
|
#endif
|
||||||
|
KSPROPERTY_BOUNDS_LONGLONG Bounds;
|
||||||
} KSPROPERTY_STEPPING_LONGLONG, *PKSPROPERTY_STEPPING_LONGLONG;
|
} KSPROPERTY_STEPPING_LONGLONG, *PKSPROPERTY_STEPPING_LONGLONG;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Allocator Framing
|
Allocator Framing
|
||||||
*/
|
*/
|
||||||
|
@ -1434,6 +1547,11 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
ULONG CountItems; // count of FramingItem-s below.
|
||||||
|
ULONG PinFlags;
|
||||||
|
KS_COMPRESSION OutputCompression;
|
||||||
|
ULONG PinWeight; // this pin framing's Weight graph-wide
|
||||||
|
KS_FRAMING_ITEM FramingItem[1];
|
||||||
} KSALLOCATOR_FRAMING_EX, *PKSALLOCATOR_FRAMING_EX;
|
} KSALLOCATOR_FRAMING_EX, *PKSALLOCATOR_FRAMING_EX;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1443,6 +1561,9 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
PVOID Context;
|
||||||
|
ULONG Proportion;
|
||||||
|
LONGLONG DeltaTime;
|
||||||
} KSQUALITY, *PKSQUALITY;
|
} KSQUALITY, *PKSQUALITY;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -1453,10 +1574,17 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
LONGLONG PresentationStart;
|
||||||
|
LONGLONG Duration;
|
||||||
|
KSPIN_INTERFACE Interface;
|
||||||
|
LONG Rate;
|
||||||
|
ULONG Flags;
|
||||||
} KSRATE, *PKSRATE;
|
} KSRATE, *PKSRATE;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
KSPROPERTY Property;
|
||||||
|
KSRATE Rate;
|
||||||
} KSRATE_CAPABILITY, *PKSRATE_CAPABILITY;
|
} KSRATE_CAPABILITY, *PKSRATE_CAPABILITY;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -1467,6 +1595,62 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
ULONG NotificationType;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
HANDLE Event;
|
||||||
|
ULONG_PTR Reserved[2];
|
||||||
|
} EventHandle;
|
||||||
|
struct {
|
||||||
|
HANDLE Semaphore;
|
||||||
|
ULONG Reserved;
|
||||||
|
LONG Adjustment;
|
||||||
|
} SemaphoreHandle;
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
struct {
|
||||||
|
PVOID Event;
|
||||||
|
KPRIORITY Increment;
|
||||||
|
ULONG_PTR Reserved;
|
||||||
|
} EventObject;
|
||||||
|
struct {
|
||||||
|
PVOID Semaphore;
|
||||||
|
KPRIORITY Increment;
|
||||||
|
LONG Adjustment;
|
||||||
|
} SemaphoreObject;
|
||||||
|
struct {
|
||||||
|
PKDPC Dpc;
|
||||||
|
ULONG ReferenceCount;
|
||||||
|
ULONG_PTR Reserved;
|
||||||
|
} Dpc;
|
||||||
|
struct {
|
||||||
|
PWORK_QUEUE_ITEM WorkQueueItem;
|
||||||
|
WORK_QUEUE_TYPE WorkQueueType;
|
||||||
|
ULONG_PTR Reserved;
|
||||||
|
} WorkItem;
|
||||||
|
struct {
|
||||||
|
PWORK_QUEUE_ITEM WorkQueueItem;
|
||||||
|
PKSWORKER KsWorkerObject;
|
||||||
|
ULONG_PTR Reserved;
|
||||||
|
} KsWorkItem;
|
||||||
|
#endif
|
||||||
|
struct {
|
||||||
|
PVOID Unused;
|
||||||
|
LONG_PTR Alignment[2];
|
||||||
|
} Alignment;
|
||||||
|
};
|
||||||
|
} KSEVENTDATA, *PKSEVENTDATA;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ULONG Size;
|
||||||
|
ULONG Flags;
|
||||||
|
union {
|
||||||
|
HANDLE ObjectHandle;
|
||||||
|
PVOID ObjectPointer;
|
||||||
|
};
|
||||||
|
PVOID Reserved;
|
||||||
|
KSEVENT Event;
|
||||||
|
KSEVENTDATA EventData;
|
||||||
} KSRELATIVEEVENT, *PKSRELATIVEEVENT;
|
} KSRELATIVEEVENT, *PKSRELATIVEEVENT;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1483,6 +1667,8 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
LONGLONG Time;
|
||||||
|
LONGLONG SystemTime;
|
||||||
} KSCORRELATED_TIME, *PKSCORRELATED_TIME;
|
} KSCORRELATED_TIME, *PKSCORRELATED_TIME;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -1495,10 +1681,15 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
LONGLONG TimeBase;
|
||||||
|
LONGLONG Interval;
|
||||||
} KSINTERVAL, *PKSINTERVAL;
|
} KSINTERVAL, *PKSINTERVAL;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
LONGLONG Duration;
|
||||||
|
ULONG FrameFlags;
|
||||||
|
ULONG Reserved;
|
||||||
} KSFRAMETIME, *PKSFRAMETIME;
|
} KSFRAMETIME, *PKSFRAMETIME;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1506,23 +1697,39 @@ typedef struct
|
||||||
Clocks
|
Clocks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct
|
typedef PVOID PKSDEFAULTCLOCK;
|
||||||
{
|
|
||||||
} KSCLOCK, *PKSCLOCK, *PKSDEFAULTCLOCK; /* OK ? */
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
ULONG CreateFlags;
|
||||||
} KSCLOCK_CREATE, *PKSCLOCK_CREATE;
|
} KSCLOCK_CREATE, *PKSCLOCK_CREATE;
|
||||||
|
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
|
||||||
|
typedef
|
||||||
|
LONGLONG
|
||||||
|
(FASTCALL *PFNKSCLOCK_GETTIME)(
|
||||||
|
IN PFILE_OBJECT FileObject
|
||||||
|
);
|
||||||
|
typedef
|
||||||
|
LONGLONG
|
||||||
|
(FASTCALL *PFNKSCLOCK_CORRELATEDTIME)(
|
||||||
|
IN PFILE_OBJECT FileObject,
|
||||||
|
OUT PLONGLONG SystemTime);
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
PFNKSCLOCK_GETTIME GetTime;
|
||||||
|
PFNKSCLOCK_GETTIME GetPhysicalTime;
|
||||||
|
PFNKSCLOCK_CORRELATEDTIME GetCorrelatedTime;
|
||||||
|
PFNKSCLOCK_CORRELATEDTIME GetCorrelatedPhysicalTime;
|
||||||
} KSCLOCK_FUNCTIONTABLE, *PKSCLOCK_FUNCTIONTABLE;
|
} KSCLOCK_FUNCTIONTABLE, *PKSCLOCK_FUNCTIONTABLE;
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Objects ??? SORT ME!
|
Objects ??? SORT ME!
|
||||||
*/
|
*/
|
||||||
#if defined(_NTDDK_)
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
PDRIVER_DISPATCH Create;
|
PDRIVER_DISPATCH Create;
|
||||||
|
@ -1551,34 +1758,55 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
KSEVENT Event;
|
||||||
|
PKSEVENTDATA EventData;
|
||||||
|
PVOID Reserved;
|
||||||
} KSQUERYBUFFER, *PKSQUERYBUFFER;
|
} KSQUERYBUFFER, *PKSQUERYBUFFER;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
PVOID Context;
|
||||||
|
ULONG Status;
|
||||||
} KSERROR, *PKSERROR;
|
} KSERROR, *PKSERROR;
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
} KSDPC_ITEM, *PKSDPC_ITEM;
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Methods
|
Methods
|
||||||
*/
|
*/
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
} KSMETHOD_SET, *PKSMETHOD_SET;
|
ULONG MethodId;
|
||||||
|
union {
|
||||||
typedef struct
|
PFNKSHANDLER MethodHandler;
|
||||||
{
|
BOOLEAN MethodSupported;
|
||||||
|
};
|
||||||
|
ULONG MinMethod;
|
||||||
|
ULONG MinData;
|
||||||
|
PFNKSHANDLER SupportHandler;
|
||||||
|
ULONG Flags;
|
||||||
} KSMETHOD_ITEM, *PKSMETHOD_ITEM;
|
} KSMETHOD_ITEM, *PKSMETHOD_ITEM;
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
ULONG MethodId;
|
||||||
|
union {
|
||||||
|
PFNKSFASTHANDLER MethodHandler;
|
||||||
|
BOOLEAN MethodSupported;
|
||||||
|
};
|
||||||
} KSFASTMETHOD_ITEM, *PKSFASTMETHOD_ITEM;
|
} KSFASTMETHOD_ITEM, *PKSFASTMETHOD_ITEM;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
const GUID* Set;
|
||||||
|
ULONG MethodsCount;
|
||||||
|
const KSMETHOD_ITEM* MethodItem;
|
||||||
|
ULONG FastIoCount;
|
||||||
|
const KSFASTMETHOD_ITEM*FastIoTable;
|
||||||
|
} KSMETHOD_SET, *PKSMETHOD_SET;
|
||||||
|
|
||||||
|
#endif
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Nodes
|
Nodes
|
||||||
*/
|
*/
|
||||||
|
@ -1599,51 +1827,222 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
KSEVENT Event;
|
||||||
|
ULONG NodeId;
|
||||||
|
ULONG Reserved;
|
||||||
} KSE_NODE, *PKSE_NODE;
|
} KSE_NODE, *PKSE_NODE;
|
||||||
|
|
||||||
typedef struct
|
typedef struct {
|
||||||
{
|
ULONG CreateFlags;
|
||||||
|
ULONG Node;
|
||||||
} KSNODE_CREATE, *PKSNODE_CREATE;
|
} KSNODE_CREATE, *PKSNODE_CREATE;
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Events
|
Events
|
||||||
*/
|
*/
|
||||||
|
typedef struct _KSEVENT_ENTRY KSEVENT_ENTRY, *PKSEVENT_ENTRY;
|
||||||
|
|
||||||
|
#if defined(_NTDDK_)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
KSEVENTDATA EventData;
|
||||||
|
LONGLONG MarkTime;
|
||||||
} KSEVENT_TIME_MARK, *PKSEVENT_TIME_MARK;
|
} KSEVENT_TIME_MARK, *PKSEVENT_TIME_MARK;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
KSEVENTDATA EventData;
|
||||||
|
LONGLONG TimeBase;
|
||||||
|
LONGLONG Interval;
|
||||||
} KSEVENT_TIME_INTERVAL, *PKSEVENT_TIME_INTERVAL;
|
} KSEVENT_TIME_INTERVAL, *PKSEVENT_TIME_INTERVAL;
|
||||||
|
|
||||||
typedef struct
|
typedef NTSTATUS (*PFNKSADDEVENT)(
|
||||||
{
|
IN PIRP Irp,
|
||||||
} KSEVENT_SET, *PKSEVENT_SET;
|
IN PKSEVENTDATA EventData,
|
||||||
|
IN struct _KSEVENT_ENTRY* EventEntry);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
VOID
|
||||||
|
(*PFNKSREMOVEEVENT)(
|
||||||
|
IN PFILE_OBJECT FileObject,
|
||||||
|
IN struct _KSEVENT_ENTRY* EventEntry
|
||||||
|
);
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
ULONG EventId;
|
||||||
|
ULONG DataInput;
|
||||||
|
ULONG ExtraEntryData;
|
||||||
|
PFNKSADDEVENT AddHandler;
|
||||||
|
PFNKSREMOVEEVENT RemoveHandler;
|
||||||
|
PFNKSHANDLER SupportHandler;
|
||||||
} KSEVENT_ITEM, *PKSEVENT_ITEM;
|
} KSEVENT_ITEM, *PKSEVENT_ITEM;
|
||||||
|
|
||||||
typedef struct _KSEVENT_ENTRY
|
|
||||||
{
|
|
||||||
} KSEVENT_ENTRY, *PKSEVENT_ENTRY;
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
} KSEVENTDATA, *PKSEVENTDATA;
|
const GUID* Set;
|
||||||
|
ULONG EventsCount;
|
||||||
|
const KSEVENT_ITEM* EventItem;
|
||||||
|
} KSEVENT_SET, *PKSEVENT_SET;
|
||||||
|
|
||||||
|
struct _KSEVENT_ENTRY
|
||||||
|
{
|
||||||
|
LIST_ENTRY ListEntry;
|
||||||
|
PVOID Object;
|
||||||
|
union {
|
||||||
|
PKSDPC_ITEM DpcItem;
|
||||||
|
PKSBUFFER_ITEM BufferItem;
|
||||||
|
};
|
||||||
|
PKSEVENTDATA EventData;
|
||||||
|
ULONG NotificationType;
|
||||||
|
const KSEVENT_SET* EventSet;
|
||||||
|
const KSEVENT_ITEM* EventItem;
|
||||||
|
PFILE_OBJECT FileObject;
|
||||||
|
ULONG SemaphoreAdjustment;
|
||||||
|
ULONG Reserved;
|
||||||
|
ULONG Flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Pins
|
Pins
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
|
||||||
|
typedef struct _KSPIN KSPIN, *PKSPIN;
|
||||||
|
typedef struct _KSSTREAM_POINTER KSSTREAM_POINTER, *PKSSTREAM_POINTER;
|
||||||
|
typedef struct _KSSTREAM_POINTER_OFFSET KSSTREAM_POINTER_OFFSET, *PKSSTREAM_POINTER_OFFSET;
|
||||||
|
typedef struct _KSMAPPING KSMAPPING, *PKSMAPPING;
|
||||||
|
typedef struct _KSPROCESSPIN KSPROCESSPIN, *PKSPROCESSPIN;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
NTSTATUS
|
||||||
|
(*PFNKSPINIRP)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
IN PIRP Irp
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
NTSTATUS
|
||||||
|
(*PFNKSPIN)(
|
||||||
|
IN PKSPIN Pin
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
void
|
||||||
|
(*PFNKSPINVOID)(
|
||||||
|
IN PKSPIN Pin
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
void
|
||||||
|
(*PFNKSSTREAMPOINTER)(
|
||||||
|
IN PKSSTREAM_POINTER StreamPointer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ULONG Count;
|
||||||
|
PKSATTRIBUTE* Attributes;
|
||||||
|
} KSATTRIBUTE_LIST, *PKSATTRIBUTE_LIST;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
NTSTATUS
|
||||||
|
(*PFNKSPINSETDATAFORMAT)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
IN PKSDATAFORMAT OldFormat OPTIONAL,
|
||||||
|
IN PKSMULTIPLE_ITEM OldAttributeList OPTIONAL,
|
||||||
|
IN const KSDATARANGE* DataRange,
|
||||||
|
IN const KSATTRIBUTE_LIST* AttributeRange OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
NTSTATUS
|
||||||
|
(*PFNKSPINSETDEVICESTATE)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
IN KSSTATE ToState,
|
||||||
|
IN KSSTATE FromState
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef struct _KSCLOCK_DISPATCH KSCLOCK_DISPATCH, *PKSCLOCK_DISPATCH;
|
||||||
|
typedef struct _KSALLOCATOR_DISPATCH KSALLOCATOR_DISPATCH, *PKSALLOCATOR_DISPATCH;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
PFNKSPINIRP Create;
|
||||||
|
PFNKSPINIRP Close;
|
||||||
|
PFNKSPIN Process;
|
||||||
|
PFNKSPINVOID Reset;
|
||||||
|
PFNKSPINSETDATAFORMAT SetDataFormat;
|
||||||
|
PFNKSPINSETDEVICESTATE SetDeviceState;
|
||||||
|
PFNKSPIN Connect;
|
||||||
|
PFNKSPINVOID Disconnect;
|
||||||
|
const KSCLOCK_DISPATCH* Clock;
|
||||||
|
const KSALLOCATOR_DISPATCH* Allocator;
|
||||||
} KSPIN_DISPATCH, *PKSPIN_DISPATCH;
|
} KSPIN_DISPATCH, *PKSPIN_DISPATCH;
|
||||||
|
|
||||||
#if defined(_NTDDK_)
|
typedef
|
||||||
|
BOOLEAN
|
||||||
|
(*PFNKSPINSETTIMER)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
IN PKTIMER Timer,
|
||||||
|
IN LARGE_INTEGER DueTime,
|
||||||
|
IN PKDPC Dpc
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
BOOLEAN
|
||||||
|
(*PFNKSPINCANCELTIMER)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
IN PKTIMER Timer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
LONGLONG
|
||||||
|
(FASTCALL *PFNKSPINCORRELATEDTIME)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
OUT PLONGLONG SystemTime
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
void
|
||||||
|
(*PFNKSPINRESOLUTION)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
OUT PKSRESOLUTION Resolution
|
||||||
|
);
|
||||||
|
|
||||||
|
struct _KSCLOCK_DISPATCH {
|
||||||
|
PFNKSPINSETTIMER SetTimer;
|
||||||
|
PFNKSPINCANCELTIMER CancelTimer;
|
||||||
|
PFNKSPINCORRELATEDTIME CorrelatedTime;
|
||||||
|
PFNKSPINRESOLUTION Resolution;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef
|
||||||
|
NTSTATUS
|
||||||
|
(*PFNKSPININITIALIZEALLOCATOR)(
|
||||||
|
IN PKSPIN Pin,
|
||||||
|
IN PKSALLOCATOR_FRAMING AllocatorFraming,
|
||||||
|
OUT PVOID* Context
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef PVOID (*PFNKSDELETEALLOCATOR)(
|
||||||
|
IN PVOID Context);
|
||||||
|
|
||||||
|
typedef PVOID (*PFNKSDEFAULTALLOCATE)(
|
||||||
|
IN PVOID Context);
|
||||||
|
|
||||||
|
typedef PVOID (*PFNKSDEFAULTFREE)(
|
||||||
|
IN PVOID Context,
|
||||||
|
IN PVOID Buffer);
|
||||||
|
|
||||||
|
struct _KSALLOCATOR_DISPATCH {
|
||||||
|
PFNKSPININITIALIZEALLOCATOR InitializeAllocator;
|
||||||
|
PFNKSDELETEALLOCATOR DeleteAllocator;
|
||||||
|
PFNKSDEFAULTALLOCATE Allocate;
|
||||||
|
PFNKSDEFAULTFREE Free;
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -1741,7 +2140,7 @@ typedef struct
|
||||||
#define KSPIN_FLAG_DENY_USERMODE_ACCESS
|
#define KSPIN_FLAG_DENY_USERMODE_ACCESS
|
||||||
#define KSPIN_FLAG_IMPLEMENT_CLOCK
|
#define KSPIN_FLAG_IMPLEMENT_CLOCK
|
||||||
|
|
||||||
typedef struct
|
struct _KSPIN
|
||||||
{
|
{
|
||||||
const KSPIN_DESCRIPTOR_EX* Descriptor;
|
const KSPIN_DESCRIPTOR_EX* Descriptor;
|
||||||
KSOBJECT_BAG Bag;
|
KSOBJECT_BAG Bag;
|
||||||
|
@ -1759,7 +2158,7 @@ typedef struct
|
||||||
KSSTATE DeviceState;
|
KSSTATE DeviceState;
|
||||||
KSRESET ResetState;
|
KSRESET ResetState;
|
||||||
KSSTATE ClientState;
|
KSSTATE ClientState;
|
||||||
} KSPIN, *PKSPIN;
|
};
|
||||||
|
|
||||||
#define DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(Handler)\
|
#define DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(Handler)\
|
||||||
DEFINE_KSPROPERTY_ITEM(\
|
DEFINE_KSPROPERTY_ITEM(\
|
||||||
|
@ -2008,32 +2407,17 @@ DEFINE_KSPROPERTY_TABLE(TopologySet) {\
|
||||||
/* TODO */
|
/* TODO */
|
||||||
typedef void* UNKNOWN;
|
typedef void* UNKNOWN;
|
||||||
|
|
||||||
typedef PVOID (*PFNKSDEFAULTALLOCATE)(
|
|
||||||
IN PVOID Context);
|
|
||||||
|
|
||||||
typedef PVOID (*PFNKSDEFAULTFREE)(
|
|
||||||
IN PVOID Context,
|
|
||||||
IN PVOID Buffer);
|
|
||||||
|
|
||||||
typedef PVOID (*PFNKSINITIALIZEALLOCATOR)(
|
typedef PVOID (*PFNKSINITIALIZEALLOCATOR)(
|
||||||
IN PVOID InitialContext,
|
IN PVOID InitialContext,
|
||||||
IN PKSALLOCATOR_FRAMING AllocatorFraming,
|
IN PKSALLOCATOR_FRAMING AllocatorFraming,
|
||||||
OUT PVOID* Context);
|
OUT PVOID* Context);
|
||||||
|
|
||||||
typedef PVOID (*PFNKSDELETEALLOCATOR)(
|
|
||||||
IN PVOID Context);
|
|
||||||
|
|
||||||
#if defined(_NTDDK_)
|
#if defined(_NTDDK_)
|
||||||
typedef NTSTATUS (*PFNKSALLOCATOR)(
|
typedef NTSTATUS (*PFNKSALLOCATOR)(
|
||||||
IN PIRP Irp,
|
IN PIRP Irp,
|
||||||
IN ULONG BufferSize,
|
IN ULONG BufferSize,
|
||||||
IN BOOLEAN InputOperation);
|
IN BOOLEAN InputOperation);
|
||||||
|
|
||||||
typedef NTSTATUS (*PFNKSADDEVENT)(
|
|
||||||
IN PIRP Irp,
|
|
||||||
IN PKSEVENTDATA EventData,
|
|
||||||
IN struct _KSEVENT_ENTRY* EventEntry);
|
|
||||||
|
|
||||||
typedef NTSTATUS (*PFNKINTERSECTHANDLEREX)(
|
typedef NTSTATUS (*PFNKINTERSECTHANDLEREX)(
|
||||||
IN PVOID Context,
|
IN PVOID Context,
|
||||||
IN PIRP Irp,
|
IN PIRP Irp,
|
||||||
|
@ -2088,17 +2472,59 @@ typedef struct
|
||||||
XP / DX8
|
XP / DX8
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct
|
struct _KSMAPPING {
|
||||||
|
PHYSICAL_ADDRESS PhysicalAddress;
|
||||||
|
ULONG ByteCount;
|
||||||
|
ULONG Alignment;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _KSSTREAM_POINTER_OFFSET
|
||||||
{
|
{
|
||||||
/* TODO */
|
#if defined(_NTDDK_)
|
||||||
} KSPROCESSPIN, *PKSPROCESSPIN;
|
union {
|
||||||
|
PUCHAR Data;
|
||||||
|
PKSMAPPING Mappings;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
PUCHAR Data;
|
||||||
|
#endif
|
||||||
|
#if !defined(_WIN64)
|
||||||
|
PVOID Alignment;
|
||||||
|
#endif
|
||||||
|
ULONG Count;
|
||||||
|
ULONG Remaining;
|
||||||
|
};
|
||||||
|
#if defined(_NTDDK_)
|
||||||
|
struct _KSSTREAM_POINTER
|
||||||
|
{
|
||||||
|
PVOID Context;
|
||||||
|
PKSPIN Pin;
|
||||||
|
PKSSTREAM_HEADER StreamHeader;
|
||||||
|
PKSSTREAM_POINTER_OFFSET Offset;
|
||||||
|
KSSTREAM_POINTER_OFFSET OffsetIn;
|
||||||
|
KSSTREAM_POINTER_OFFSET OffsetOut;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _KSPROCESSPIN
|
||||||
|
{
|
||||||
|
PKSPIN Pin;
|
||||||
|
PKSSTREAM_POINTER StreamPointer;
|
||||||
|
PKSPROCESSPIN InPlaceCounterpart;
|
||||||
|
PKSPROCESSPIN DelegateBranch;
|
||||||
|
PKSPROCESSPIN CopySource;
|
||||||
|
PVOID Data;
|
||||||
|
ULONG BytesAvailable;
|
||||||
|
ULONG BytesUsed;
|
||||||
|
ULONG Flags;
|
||||||
|
BOOLEAN Terminate;
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
PKSPROCESSPIN* Pins;
|
PKSPROCESSPIN* Pins;
|
||||||
ULONG Count;
|
ULONG Count;
|
||||||
} KSPROCESSPIN_INDEXENTRY, *PKSPROCESSPIN_INDEXENTRY;
|
} KSPROCESSPIN_INDEXENTRY, *PKSPROCESSPIN_INDEXENTRY;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Device Dispatch
|
Device Dispatch
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue