- A few updates from the Ninja-Arch

svn path=/trunk/; revision=42100
This commit is contained in:
Johannes Anderwald 2009-07-20 17:14:21 +00:00
parent 95d1d17ba9
commit 3cf7214094

View file

@ -542,8 +542,10 @@ typedef enum
Properties/Methods/Events Properties/Methods/Events
*/ */
#define KSPROPSETID_StreamAllocator \ #define STATIC_KSPROPSETID_StreamAllocator\
0xcf6e4342L, 0xec87, 0x11cf, 0xa1, 0x30, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4 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 typedef enum
{ {
@ -1463,6 +1465,7 @@ typedef struct
typedef typedef
BOOLEAN BOOLEAN
NTAPI
(*PFNKSFASTHANDLER)( (*PFNKSFASTHANDLER)(
IN PFILE_OBJECT FileObject, IN PFILE_OBJECT FileObject,
IN PKSIDENTIFIER Request, IN PKSIDENTIFIER Request,
@ -1536,13 +1539,17 @@ typedef struct
typedef struct typedef struct
{ {
ULONG CountItems; // count of FramingItem-s below. ULONG CountItems;
ULONG PinFlags; ULONG PinFlags;
KS_COMPRESSION OutputCompression; KS_COMPRESSION OutputCompression;
ULONG PinWeight; // this pin framing's Weight graph-wide ULONG PinWeight;
KS_FRAMING_ITEM FramingItem[1]; KS_FRAMING_ITEM FramingItem[1];
} KSALLOCATOR_FRAMING_EX, *PKSALLOCATOR_FRAMING_EX; } 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 Quality
@ -1739,7 +1746,7 @@ typedef struct
PKSOBJECT_CREATE_ITEM CreateItemsList; PKSOBJECT_CREATE_ITEM CreateItemsList;
} KSOBJECT_CREATE, *PKSOBJECT_CREATE; } KSOBJECT_CREATE, *PKSOBJECT_CREATE;
typedef VOID (*PFNKSITEMFREECALLBACK)( typedef VOID (NTAPI *PFNKSITEMFREECALLBACK)(
IN PKSOBJECT_CREATE_ITEM CreateItem); IN PKSOBJECT_CREATE_ITEM CreateItem);
#endif #endif
@ -2401,7 +2408,7 @@ DEFINE_KSPROPERTY_TABLE(TopologySet) {\
/* TODO */ /* TODO */
typedef void* UNKNOWN; typedef void* UNKNOWN;
typedef PVOID (*PFNKSINITIALIZEALLOCATOR)( typedef PVOID NTAPI(*PFNKSINITIALIZEALLOCATOR)(
IN PVOID InitialContext, IN PVOID InitialContext,
IN PKSALLOCATOR_FRAMING AllocatorFraming, IN PKSALLOCATOR_FRAMING AllocatorFraming,
OUT PVOID* Context); OUT PVOID* Context);
@ -2421,19 +2428,31 @@ typedef NTSTATUS (*PFNKINTERSECTHANDLEREX)(
IN ULONG DataBufferSize, IN ULONG DataBufferSize,
OUT PVOID Data OPTIONAL, OUT PVOID Data OPTIONAL,
OUT PULONG DataSize); OUT PULONG DataSize);
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 #endif
typedef UNKNOWN PFNALLOCATORE_ALLOCATEFRAME;
typedef UNKNOWN PFNALLOCATOR_FREEFRAME;
/*
typedef struct
{
PFNALLOCATOR_ALLOCATEFRAME AllocateFrame;
PFNALLOCATOR_FREEFRAME FreeFrame;
}
*/
typedef struct typedef struct
{ {
KSALLOCATOR_FRAMING Framing; KSALLOCATOR_FRAMING Framing;
@ -2473,6 +2492,21 @@ struct _KSMAPPING {
}; };
#endif #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 struct _KSSTREAM_POINTER_OFFSET
{ {
#if defined(_NTDDK_) #if defined(_NTDDK_)
@ -2514,11 +2548,11 @@ struct _KSPROCESSPIN
BOOLEAN Terminate; BOOLEAN Terminate;
}; };
typedef struct struct _KSPROCESSPIN_INDEXENTRY
{ {
PKSPROCESSPIN* Pins; PKSPROCESSPIN* Pins;
ULONG Count; ULONG Count;
} KSPROCESSPIN_INDEXENTRY, *PKSPROCESSPIN_INDEXENTRY; };
#endif #endif
/* =============================================================== /* ===============================================================
@ -2671,9 +2705,11 @@ struct _KSFILTER_DESCRIPTOR
struct _KSDEVICE_DESCRIPTOR 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;
ULONG Version;
ULONG Flags;
}; };
struct _KSFILTERFACTORY { struct _KSFILTERFACTORY {
@ -3462,6 +3498,17 @@ KsInitializeDriver(
typedef struct _KSFILTERFACTORY KSFILTERFACTORY, *PKSFILTERFACTORY; //FIXME 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)( typedef void (*PFNKSFILTERFACTORYPOWER)(
IN PKSFILTERFACTORY FilterFactory, IN PKSFILTERFACTORY FilterFactory,
IN DEVICE_POWER_STATE State); IN DEVICE_POWER_STATE State);
@ -3551,7 +3598,7 @@ KsCreateFilterFactory(
IN ULONG CreateItemFlags, IN ULONG CreateItemFlags,
IN PFNKSFILTERFACTORYPOWER SleepCallback OPTIONAL, IN PFNKSFILTERFACTORYPOWER SleepCallback OPTIONAL,
IN PFNKSFILTERFACTORYPOWER WakeCallback OPTIONAL, IN PFNKSFILTERFACTORYPOWER WakeCallback OPTIONAL,
OUT PKSFILTERFACTORY FilterFactory OPTIONAL); OUT PKSFILTERFACTORY *FilterFactory OPTIONAL);
KSDDKAPI KSDDKAPI
NTSTATUS NTSTATUS
@ -3561,6 +3608,23 @@ KsDefaultAddEventHandler(
IN PKSEVENTDATA EventData, IN PKSEVENTDATA EventData,
IN OUT PKSEVENT_ENTRY EventEntry); 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) \ #define KsDeleteFilterFactory(FilterFactory) \
KsFreeObjectCreateItemsByContext( \ KsFreeObjectCreateItemsByContext( \
@ -3618,8 +3682,50 @@ KsDeviceRegisterAggregatedClientUnknown(
IN PKSDEVICE Device, IN PKSDEVICE Device,
IN PUNKNOWN ClientUnknown); 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 KSDDKAPI
VOID VOID
NTAPI NTAPI