Author: janderwald Date: Mon Jul 20 19:14:21 2009 New Revision: 42100
URL: http://svn.reactos.org/svn/reactos?rev=42100&view=rev Log: - A few updates from the Ninja-Arch
Modified: trunk/reactos/include/psdk/ks.h
Modified: trunk/reactos/include/psdk/ks.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ks.h?rev=42100... ============================================================================== --- trunk/reactos/include/psdk/ks.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/ks.h [iso-8859-1] Mon Jul 20 19:14:21 2009 @@ -542,8 +542,10 @@ Properties/Methods/Events */
-#define KSPROPSETID_StreamAllocator \ +#define STATIC_KSPROPSETID_StreamAllocator\ 0xcf6e4342L, 0xec87, 0x11cf, 0xa1, 0x30, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4 +DEFINE_GUIDSTRUCT("cf6e4342-ec87-11cf-a130-0020afd156e4", KSPROPSETID_StreamAllocator); +#define KSPROPSETID_StreamAllocator DEFINE_GUIDNAMED(KSPROPSETID_StreamAllocator)
typedef enum { @@ -1463,6 +1465,7 @@
typedef BOOLEAN +NTAPI (*PFNKSFASTHANDLER)( IN PFILE_OBJECT FileObject, IN PKSIDENTIFIER Request, @@ -1536,13 +1539,17 @@
typedef struct { - ULONG CountItems; // count of FramingItem-s below. + ULONG CountItems; ULONG PinFlags; KS_COMPRESSION OutputCompression; - ULONG PinWeight; // this pin framing's Weight graph-wide + ULONG PinWeight; KS_FRAMING_ITEM FramingItem[1]; } KSALLOCATOR_FRAMING_EX, *PKSALLOCATOR_FRAMING_EX;
+#define KSALLOCATOR_FLAG_PARTIAL_READ_SUPPORT 0x00000010 +#define KSALLOCATOR_FLAG_DEVICE_SPECIFIC 0x00000020 +#define KSALLOCATOR_FLAG_CAN_ALLOCATE 0x00000040 +#define KSALLOCATOR_FLAG_INSIST_ON_FRAMESIZE_RATIO 0x00000080
/* =============================================================== Quality @@ -1739,7 +1746,7 @@ PKSOBJECT_CREATE_ITEM CreateItemsList; } KSOBJECT_CREATE, *PKSOBJECT_CREATE;
-typedef VOID (*PFNKSITEMFREECALLBACK)( +typedef VOID (NTAPI *PFNKSITEMFREECALLBACK)( IN PKSOBJECT_CREATE_ITEM CreateItem);
#endif @@ -2401,7 +2408,7 @@ /* TODO */ typedef void* UNKNOWN;
-typedef PVOID (*PFNKSINITIALIZEALLOCATOR)( +typedef PVOID NTAPI(*PFNKSINITIALIZEALLOCATOR)( IN PVOID InitialContext, IN PKSALLOCATOR_FRAMING AllocatorFraming, OUT PVOID* Context); @@ -2421,18 +2428,30 @@ IN ULONG DataBufferSize, OUT PVOID Data OPTIONAL, OUT PULONG DataSize); -#endif - -typedef UNKNOWN PFNALLOCATORE_ALLOCATEFRAME; -typedef UNKNOWN PFNALLOCATOR_FREEFRAME; - -/* -typedef struct -{ - PFNALLOCATOR_ALLOCATEFRAME AllocateFrame; - PFNALLOCATOR_FREEFRAME FreeFrame; -} -*/ + + +typedef +NTSTATUS +NTAPI +(*PFNALLOCATOR_ALLOCATEFRAME)( + IN PFILE_OBJECT FileObject, + PVOID *Frame + ); + +typedef +VOID +NTAPI +(*PFNALLOCATOR_FREEFRAME)( + IN PFILE_OBJECT FileObject, + IN PVOID Frame + ); + +typedef struct { + PFNALLOCATOR_ALLOCATEFRAME AllocateFrame; + PFNALLOCATOR_FREEFRAME FreeFrame; +} KSSTREAMALLOCATOR_FUNCTIONTABLE, *PKSSTREAMALLOCATOR_FUNCTIONTABLE; + +#endif
typedef struct { @@ -2472,6 +2491,21 @@ ULONG Alignment; }; #endif + + +typedef struct { + GUID ProtocolId; + PVOID Argument1; + PVOID Argument2; +} KSHANDSHAKE, *PKSHANDSHAKE; + +typedef struct _KSGATE KSGATE, *PKSGATE; +typedef struct _KSPROCESSPIN_INDEXENTRY KSPROCESSPIN_INDEXENTRY, *PKSPROCESSPIN_INDEXENTRY; + +struct _KSGATE { + LONG Count; + PKSGATE NextGate; +};
struct _KSSTREAM_POINTER_OFFSET { @@ -2514,11 +2548,11 @@ BOOLEAN Terminate; };
-typedef struct +struct _KSPROCESSPIN_INDEXENTRY { PKSPROCESSPIN* Pins; ULONG Count; -} KSPROCESSPIN_INDEXENTRY, *PKSPROCESSPIN_INDEXENTRY; +}; #endif
/* =============================================================== @@ -2671,9 +2705,11 @@
struct _KSDEVICE_DESCRIPTOR { - const KSDEVICE_DISPATCH* Dispatch; - ULONG FilterDescriptorsCount; - const KSFILTER_DESCRIPTOR*const* FilterDescriptors; + const KSDEVICE_DISPATCH* Dispatch; + ULONG FilterDescriptorsCount; + const KSFILTER_DESCRIPTOR*const* FilterDescriptors; + ULONG Version; + ULONG Flags; };
struct _KSFILTERFACTORY { @@ -3462,6 +3498,17 @@
typedef struct _KSFILTERFACTORY KSFILTERFACTORY, *PKSFILTERFACTORY; //FIXME
+ +KSDDKAPI +NTSTATUS +NTAPI +KsInitializeDevice ( + IN PDEVICE_OBJECT FunctionalDeviceObject, + IN PDEVICE_OBJECT PhysicalDeviceObject, + IN PDEVICE_OBJECT NextDeviceObject, + IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL); + + typedef void (*PFNKSFILTERFACTORYPOWER)( IN PKSFILTERFACTORY FilterFactory, IN DEVICE_POWER_STATE State); @@ -3551,7 +3598,7 @@ IN ULONG CreateItemFlags, IN PFNKSFILTERFACTORYPOWER SleepCallback OPTIONAL, IN PFNKSFILTERFACTORYPOWER WakeCallback OPTIONAL, - OUT PKSFILTERFACTORY FilterFactory OPTIONAL); + OUT PKSFILTERFACTORY *FilterFactory OPTIONAL);
KSDDKAPI NTSTATUS @@ -3560,6 +3607,23 @@ IN PIRP Irp, IN PKSEVENTDATA EventData, IN OUT PKSEVENT_ENTRY EventEntry); + +KSDDKAPI +NTSTATUS +NTAPI +KsDispatchQuerySecurity( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp + ); + +KSDDKAPI +NTSTATUS +NTAPI +KsDispatchSetSecurity( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp + ); +
#define KsDeleteFilterFactory(FilterFactory) \ @@ -3618,7 +3682,49 @@ IN PKSDEVICE Device, IN PUNKNOWN ClientUnknown);
-#endif + +#endif + +#undef INTERFACE +#define INTERFACE IKsControl + +DEFINE_GUID(IID_IKsControl, 0x28F54685L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96); + +DECLARE_INTERFACE_(IKsControl,IUnknown) +{ + STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ + REFIID InterfaceId, + PVOID* Interface)PURE; + + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + + STDMETHOD_(ULONG, Release)(THIS) PURE; + + STDMETHOD_(NTSTATUS, KsProperty)(THIS_ + IN PKSPROPERTY Property, + IN ULONG PropertyLength, + IN OUT PVOID PropertyData, + IN ULONG DataLength, + OUT ULONG* BytesReturned + ) PURE; + STDMETHOD_(NTSTATUS, KsMethod)(THIS_ + IN PKSMETHOD Method, + IN ULONG MethodLength, + IN OUT PVOID MethodData, + IN ULONG DataLength, + OUT ULONG* BytesReturned + ) PURE; + STDMETHOD_(NTSTATUS, KsEvent)(THIS_ + IN PKSEVENT Event OPTIONAL, + IN ULONG EventLength, + IN OUT PVOID EventData, + IN ULONG DataLength, + OUT ULONG* BytesReturned + ) PURE; +}; + +#undef INTERFACE +typedef IKsControl* PIKSCONTROL;
KSDDKAPI VOID