- Fix include guard

- Define PKNKSFREE type
- Add KSFILTERFACTORY type
- Fix definition of KsAllocateObjectHeader
- Fix calling convention for lots of functions
- Remove dummy stub implementations

svn path=/trunk/; revision=39523
This commit is contained in:
Johannes Anderwald 2009-02-10 07:44:14 +00:00
parent 31dd9c0a1c
commit 77f7338705

View file

@ -27,9 +27,7 @@
&Overlapped); &Overlapped);
*/ */
#ifndef KS_H #ifndef _KS_
#define KS_H
#define _KS_ #define _KS_
#ifdef __cplusplus #ifdef __cplusplus
@ -1533,6 +1531,11 @@ typedef struct
KSPRIORITY Priority; KSPRIORITY Priority;
} KSPIN_CONNECT, *PKSPIN_CONNECT; } KSPIN_CONNECT, *PKSPIN_CONNECT;
typedef
void
(*PFNKSFREE)(
IN PVOID Data
);
/* =============================================================== /* ===============================================================
Topology Topology
@ -1825,6 +1828,13 @@ struct _KSDEVICE_DESCRIPTOR
ULONG FilterDescriptorsCount; ULONG FilterDescriptorsCount;
const KSFILTER_DESCRIPTOR*const* FilterDescriptors; const KSFILTER_DESCRIPTOR*const* FilterDescriptors;
}; };
struct _KSFILTERFACTORY {
const KSFILTER_DESCRIPTOR* FilterDescriptor;
KSOBJECT_BAG Bag;
PVOID Context;
};
#endif #endif
/* =============================================================== /* ===============================================================
Minidriver Callbacks Minidriver Callbacks
@ -2221,7 +2231,7 @@ KsAllocateObjectCreateItem(
KSDDKAPI NTSTATUS NTAPI KSDDKAPI NTSTATUS NTAPI
KsAllocateObjectHeader( KsAllocateObjectHeader(
OUT PVOID Header, OUT KSOBJECT_HEADER *Header,
IN ULONG ItemsCount, IN ULONG ItemsCount,
IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL,
IN PIRP Irp, IN PIRP Irp,
@ -2578,19 +2588,23 @@ KsSynchronousIoControlDevice(
*/ */
#if defined(_NTDDK_) #if defined(_NTDDK_)
KSDDKAPI NTSTATUS NTAPI KSDDKAPI
NTSTATUS
NTAPI
KsInitializeDriver( KsInitializeDriver(
IN PDRIVER_OBJECT DriverObject, IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING RegistryPath,
IN const KSDEVICE_DESCRIPTOR *Descriptor OPTIONAL); IN const KSDEVICE_DESCRIPTOR *Descriptor OPTIONAL);
#endif
#if 0 typedef struct _KSFILTERFACTORY KSFILTERFACTORY, *PKSFILTERFACTORY; //FIXME
typedef void (*PFNKSFILTERFACTORYPOWER)( typedef void (*PFNKSFILTERFACTORYPOWER)(
IN PKSFILTERFACTORY FilterFactory, IN PKSFILTERFACTORY FilterFactory,
IN DEVICE_POWER_STATE State); IN DEVICE_POWER_STATE State);
KSDDKAPI NTSTATUS NTAPI KSDDKAPI
NTSTATUS
NTAPI
_KsEdit( _KsEdit(
IN KSOBJECT_BAG ObjectBag, IN KSOBJECT_BAG ObjectBag,
IN OUT PVOID* PointerToPointerToItem, IN OUT PVOID* PointerToPointerToItem,
@ -2598,71 +2612,73 @@ _KsEdit(
IN ULONG OldSize, IN ULONG OldSize,
IN ULONG Tag); IN ULONG Tag);
KSDDKAPI
VOID VOID
NTAPI
KsAcquireControl( KsAcquireControl(
IN PVOID Object) IN PVOID Object);
{
}
KSDDKAPI
VOID VOID
NTAPI
KsAcquireDevice( KsAcquireDevice(
IN PKSDEVICE Device) IN PKSDEVICE Device);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsAddDevice( KsAddDevice(
IN PDRIVER_OBJECT DriverObject, IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject) IN PDEVICE_OBJECT PhysicalDeviceObject);
{
}
KSDDKAPI
VOID VOID
NTAPI
KsAddEvent( KsAddEvent(
IN PVOID Object, IN PVOID Object,
IN PKSEVENT_ENTRY EventEntry) IN PKSEVENT_ENTRY EventEntry);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsAddItemToObjectBag( KsAddItemToObjectBag(
IN KSOBJECT_BAG ObjectBag, IN KSOBJECT_BAG ObjectBag,
IN PVOID Item, IN PVOID Item,
IN PFNKSFREE Free OPTIONAL) IN PFNKSFREE Free OPTIONAL);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsAllocateObjectBag( KsAllocateObjectBag(
IN PKSDEVICE Device, IN PKSDEVICE Device,
OUT KSOBJECT_BAG* ObjectBag) OUT KSOBJECT_BAG* ObjectBag);
{
}
KSDDKAPI
VOID VOID
NTAPI
KsCompletePendingRequest( KsCompletePendingRequest(
IN PIRP Irp) IN PIRP Irp);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsCopyObjectBagItems( KsCopyObjectBagItems(
IN KSOBJECT_BAG ObjectBagDestination, IN KSOBJECT_BAG ObjectBagDestination,
IN KSOBJECT_BAG ObjectBagSource) IN KSOBJECT_BAG ObjectBagSource);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsCreateDevice( KsCreateDevice(
IN PDRIVER_OBJECT DriverObject, IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_OBJECT PhysicalDeviceObject,
IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL, IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL,
IN ULONG ExtensionSize OPTIONAL, IN ULONG ExtensionSize OPTIONAL,
OUT PKSDEVICE* Device OPTIONAL) OUT PKSDEVICE* Device OPTIONAL);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsCreateFilterFactory( KsCreateFilterFactory(
IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
IN const KSFILTER_DESCRIPTOR* Descriptor, IN const KSFILTER_DESCRIPTOR* Descriptor,
@ -2671,114 +2687,136 @@ KsCreateFilterFactory(
IN ULONG CreateItemFlags, IN ULONG CreateItemFlags,
IN PFNKSFILTERFACTORYPOWER SleepCallback OPTIONAL, IN PFNKSFILTERFACTORYPOWER SleepCallback OPTIONAL,
IN PFNKSFILTERFACTORYPOWER WakeCallback OPTIONAL, IN PFNKSFILTERFACTORYPOWER WakeCallback OPTIONAL,
OUT PKFSFILTERFACTORY FilterFactory OPTIONAL) OUT PKSFILTERFACTORY FilterFactory OPTIONAL);
{
}
KSDDKAPI
NTSTATUS NTSTATUS
NTAPI
KsDefaultAddEventHandler( KsDefaultAddEventHandler(
IN PIRP Irp, IN PIRP Irp,
IN PKSEVENTDATA EventData, IN PKSEVENTDATA EventData,
IN OUT PKSEVENT_ENTRY EventEntry) IN OUT PKSEVENT_ENTRY EventEntry);
{
}
NTSTATUS
KsDeleteFilterFactory(
IN PKSFILTERFACTORY FilterFactory)
{
}
#define KsDeleteFilterFactory(FilterFactory) \
KsFreeObjectCreateItemsByContext( \
*(KSDEVICE_HEADER *)( \
KsFilterFactoryGetParentDevice(FilterFactory)->FunctionalDeviceObject-> \
DeviceExtension), \
FilterFactory)
KSDDKAPI
ULONG ULONG
NTAPI
KsDeviceGetBusData( KsDeviceGetBusData(
IN PKSDEVICE Device, IN PKSDEVICE Device,
IN ULONG DataType, IN ULONG DataType,
IN PVOID Buffer, IN PVOID Buffer,
IN ULONG Offset, IN ULONG Offset,
IN ULONG Length) IN ULONG Length);
{
}
KSDDKAPI
PVOID
NTAPI
KsGetFirstChild(
IN PVOID Object
);
KSDDKAPI
PKSFILTERFACTORY PKSFILTERFACTORY
NTAPI
KsDeviceGetFirstChildFilterFactory( KsDeviceGetFirstChildFilterFactory(
IN PKSDEVICE Device) IN PKSDEVICE Device);
{
} #if defined(_UNKNOWN_H_) || defined(__IUnknown_INTERFACE_DEFINED__)
PUNKNOWN PUNKNOWN
NTAPI
KsDeviceGetOuterUnknown( KsDeviceGetOuterUnknown(
IN PKSDEVICE Device) IN PKSDEVICE Device)
{ {
return KsGetOuterUnknown((PVOID) Device);
} }
VOID KSDDKAPI
KsDeviceRegisterAdapterObject( PUNKNOWN
IN PKSDEVICE Device, NTAPI
IN PADAPTER_OBJECT AdapterObject,
IN ULONG MaxMappingByteCount,
IN ULONG MappingTableStride)
{
}
KSDDKAPI PUNKNOWN NTAPI
KsDeviceRegisterAggregatedClientUnknown( KsDeviceRegisterAggregatedClientUnknown(
IN PKSDEVICE Device, IN PKSDEVICE Device,
IN PUNKNOWN ClientUnknown); IN PUNKNOWN ClientUnknown);
#endif
KSDDKAPI
VOID
NTAPI
KsDeviceRegisterAdapterObject(
IN PKSDEVICE Device,
IN PADAPTER_OBJECT AdapterObject,
IN ULONG MaxMappingByteCount,
IN ULONG MappingTableStride);
KSDDKAPI
ULONG ULONG
NTAPI
KsDeviceSetBusData( KsDeviceSetBusData(
IN PKSDEVICE Device, IN PKSDEVICE Device,
IN ULONG DataType, IN ULONG DataType,
IN PVOID Buffer, IN PVOID Buffer,
IN ULONG Offset, IN ULONG Offset,
IN ULONG Length) IN ULONG Length);
{
}
#define KsDiscard(object, pointer) \ #define KsDiscard(object, pointer) \
KsRemoveItemFromObjectBag(object->Bag, pointer, TRUE) KsRemoveItemFromObjectBag(object->Bag, pointer, TRUE)
VOID #define KsFilterAcquireControl(Filter) \
KsFilterAcquireControl( KsAcquireControl((PVOID) Filter);
IN PKSFILTER Filter)
{
}
#define KsFilterAddEvent(Filter, EventEntry) \
KsAddEvent(Filter,EventEntry);
KSDDKAPI
VOID VOID
NTAPI
KsFilterAcquireProcessingMutex( KsFilterAcquireProcessingMutex(
IN PKSFILTER Filter); IN PKSFILTER Filter);
VOID KSDDKAPI
KsFilterAddEvent( NTSTATUS
IN PKSFILTER Filter, NTAPI
IN PKSEVENT_ENTRY EventEntry)
{
}
KSDDKAPI NTSTATUS NTAPI
KsFilterAddTopologyConnections( KsFilterAddTopologyConnections(
IN PKSFILTER Filter, IN PKSFILTER Filter,
IN ULONG NewConnectionsCount, IN ULONG NewConnectionsCount,
IN const KSTOPOLOGY_CONNECTION* NewTopologyConnections); IN const KSTOPOLOGY_CONNECTION* NewTopologyConnections);
KSDDKAPI
VOID VOID
NTAPI
KsFilterAttemptProcessing( KsFilterAttemptProcessing(
IN PKSFILTER Filter, IN PKSFILTER Filter,
IN BOOLEAN Asynchronous); IN BOOLEAN Asynchronous);
KSDDKAPI NTSTATUS NTAPI KSDDKAPI
NTSTATUS
NTAPI
KsFilterCreateNode( KsFilterCreateNode(
IN PKSFILTER Filter, IN PKSFILTER Filter,
IN const KSNODE_DESCRIPTOR* NodeDescriptor, IN const KSNODE_DESCRIPTOR* NodeDescriptor,
OUT PULONG NodeID); OUT PULONG NodeID);
KSDDKAPI NTSTATUS NTAPI KSDDKAPI
NTSTATUS
NTAPI
KsFilterCreatePinFactory( KsFilterCreatePinFactory(
IN PKSFILTER Filter, IN PKSFILTER Filter,
IN const KSPIN_DESCRIPTOR_EX* PinDescriptor, IN const KSPIN_DESCRIPTOR_EX* PinDescriptor,
OUT PULONG PinID); OUT PULONG PinID);
PKSDEVICE __inline KSDDKAPI
PKSDEVICE
__inline
KsFilterFactoryGetDevice( KsFilterFactoryGetDevice(
IN PKSFILTERFACTORY FilterFactory); IN PKSFILTERFACTORY FilterFactory);