mirror of
https://github.com/reactos/reactos.git
synced 2024-10-07 18:04:41 +00:00
- Move includes to a common header- Implement IKsDevice interface stubs
- Add a DriverEntry - Partly implement KsAllocateObjectHeader - Check for IID_IUnknown in KoCreateInstance svn path=/trunk/; revision=39524
This commit is contained in:
parent
77f7338705
commit
919e4f45d7
|
@ -1,10 +1,5 @@
|
||||||
/* ===============================================================
|
#include "priv.h"
|
||||||
Allocator Functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ntddk.h>
|
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@unimplemented
|
@unimplemented
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
#if 0
|
#if 0
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,10 +1,4 @@
|
||||||
/* ===============================================================
|
#include "priv.h"
|
||||||
Clock Functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ntddk.h>
|
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,14 +1,4 @@
|
||||||
/*
|
#include "priv.h"
|
||||||
KsCreatePin
|
|
||||||
KsValidateConnectRequest
|
|
||||||
KsPinPropertyHandler
|
|
||||||
KsPinDataIntersection
|
|
||||||
KsHandleSizedListQuery
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ntddk.h>
|
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
KSDDKAPI NTSTATUS NTAPI
|
KSDDKAPI NTSTATUS NTAPI
|
||||||
KsCreatePin(
|
KsCreatePin(
|
||||||
|
|
|
@ -1,32 +1,218 @@
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
#include "ksiface.h"
|
|
||||||
#include "ksfunc.h"
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
IKsDeviceVtbl *lpVtbl;
|
IKsDeviceVtbl *lpVtbl;
|
||||||
|
|
||||||
LONG ref;
|
LONG ref;
|
||||||
|
KSDEVICE KsDevice;
|
||||||
|
|
||||||
}IKsDeviceImpl;
|
}IKsDeviceImpl;
|
||||||
|
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnQueryInterface(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
REFIID InterfaceId,
|
||||||
|
PVOID* Interface)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnQueryInterface %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnAddRef(
|
||||||
|
IN IKsDevice * iface)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
return InterlockedIncrement(&This->ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnRelease(
|
||||||
|
IN IKsDevice * iface)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
InterlockedDecrement(&This->ref);
|
||||||
|
|
||||||
|
if (This->ref == 0)
|
||||||
|
{
|
||||||
|
ExFreePoolWithTag(This, TAG_KSDEVICE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return This->ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
KSDEVICE *
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnGetStruct(
|
||||||
|
IN IKsDevice * iface)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
return &This->KsDevice;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnInitializeObjectBag(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN struct KSIOBJECTBAG *Bag,
|
||||||
|
IN KMUTANT * Mutant)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnInitializeObjectBag %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnAcquireDevice(
|
||||||
|
IN IKsDevice * iface)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnAcquireDevice %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnReleaseDevice(
|
||||||
|
IN IKsDevice * iface)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnReleaseDevice %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnGetAdapterObject(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN PADAPTER_OBJECT Object,
|
||||||
|
IN PULONG Unknown1,
|
||||||
|
IN PULONG Unknown2)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnGetAdapterObject %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnAddPowerEntry(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN struct KSPOWER_ENTRY * Entry,
|
||||||
|
IN IKsPowerNotify* Notify)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnAddPowerEntry %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnRemovePowerEntry(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN struct KSPOWER_ENTRY * Entry)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnRemovePowerEntry %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnPinStateChange(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN KSPIN Pin,
|
||||||
|
IN PIRP Irp,
|
||||||
|
IN KSSTATE OldState,
|
||||||
|
IN KSSTATE NewState)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnPinStateChange %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnArbitrateAdapterChannel(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN ULONG ControlCode,
|
||||||
|
IN IO_ALLOCATION_ACTION Action,
|
||||||
|
IN PVOID Context)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnArbitrateAdapterChannel %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
IKsDevice_fnCheckIoCapability(
|
||||||
|
IN IKsDevice * iface,
|
||||||
|
IN ULONG Unknown)
|
||||||
|
{
|
||||||
|
IKsDeviceImpl * This = (IKsDeviceImpl*)iface;
|
||||||
|
|
||||||
|
DPRINT1("IKsDevice_fnCheckIoCapability %p\n", This);
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
static IKsDeviceVtbl vt_IKsDevice =
|
||||||
|
{
|
||||||
|
IKsDevice_fnQueryInterface,
|
||||||
|
IKsDevice_fnAddRef,
|
||||||
|
IKsDevice_fnRelease,
|
||||||
|
IKsDevice_fnGetStruct,
|
||||||
|
IKsDevice_fnInitializeObjectBag,
|
||||||
|
IKsDevice_fnAcquireDevice,
|
||||||
|
IKsDevice_fnReleaseDevice,
|
||||||
|
IKsDevice_fnGetAdapterObject,
|
||||||
|
IKsDevice_fnAddPowerEntry,
|
||||||
|
IKsDevice_fnRemovePowerEntry,
|
||||||
|
IKsDevice_fnPinStateChange,
|
||||||
|
IKsDevice_fnArbitrateAdapterChannel,
|
||||||
|
IKsDevice_fnCheckIoCapability
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NewIKsDevice(IKsDevice** OutDevice)
|
NewIKsDevice(IKsDevice** OutDevice)
|
||||||
{
|
{
|
||||||
IKsDeviceImpl * This;
|
IKsDeviceImpl * This;
|
||||||
|
|
||||||
This = ExAllocatePoolWithTag(NonPagedPool, sizeof(IKsDeviceImpl), 0x12345678); //FIX TAG
|
This = ExAllocatePoolWithTag(NonPagedPool, sizeof(IKsDeviceImpl), TAG_KSDEVICE);
|
||||||
if (!This)
|
if (!This)
|
||||||
return STATUS_INSUFFICIENT_RESOURCES;
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
|
|
||||||
This->ref = 1;
|
This->ref = 1;
|
||||||
//This->lpVtbl = &vt_IKsDevice;
|
This->lpVtbl = &vt_IKsDevice;
|
||||||
|
|
||||||
*OutDevice = (IKsDevice*)This;
|
*OutDevice = (IKsDevice*)This;
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
|
|
|
@ -1,10 +1,19 @@
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
#include "ksfunc.h"
|
#include "ksfunc.h"
|
||||||
|
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
DriverEntry(
|
||||||
|
IN PDRIVER_OBJECT Driver,
|
||||||
|
IN PUNICODE_STRING Registry_path
|
||||||
|
)
|
||||||
|
{
|
||||||
|
DPRINT1("ks.sys loaded\n");
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@unimplemented
|
@unimplemented
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Event Functions
|
Event Functions
|
||||||
|
|
|
@ -3,11 +3,7 @@
|
||||||
IRP Helpers
|
IRP Helpers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
#define TAG(A, B, C, D) (IN ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@unimplemented
|
@unimplemented
|
||||||
|
@ -145,32 +141,31 @@ 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,
|
||||||
IN KSDISPATCH_TABLE* Table)
|
IN KSDISPATCH_TABLE* Table)
|
||||||
{
|
{
|
||||||
/* NOTE: PKSOBJECT_HEADER is not defined yet */
|
PKSIOBJECT_HEADER ObjectHeader;
|
||||||
#if 0
|
|
||||||
PKSOBJECT_HEADER object_header;
|
|
||||||
|
|
||||||
/* TODO: Validate parameters */
|
ObjectHeader = ExAllocatePoolWithTag(PagedPool, sizeof(KSIOBJECT_HEADER), TAG_KSOBJECT_TAG);
|
||||||
|
if (!ObjectHeader)
|
||||||
object_header = ExAllocatePoolWithTag(PagedPool, sizeof(KSOBJECT_HEADER), TAG('H','O','S','K'));
|
|
||||||
|
|
||||||
if ( ! object_header )
|
|
||||||
{
|
{
|
||||||
return STATUS_INSUFFICIENT_RESOURCES;
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
(PVOID)(*Header) = object_header;
|
RtlZeroMemory(ObjectHeader, sizeof(KSIOBJECT_HEADER));
|
||||||
|
|
||||||
/* TODO ... */
|
RtlCopyMemory(&ObjectHeader->DispatchTable, Table, sizeof(KSDISPATCH_TABLE));
|
||||||
#endif
|
ObjectHeader->CreateItem = ItemsList;
|
||||||
|
|
||||||
|
//FIXME
|
||||||
|
// copy itemlist
|
||||||
|
|
||||||
|
*Header = ObjectHeader;
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -584,11 +579,13 @@ KsInternalIrpDispatcher(
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
IN PIRP Irp)
|
IN PIRP Irp)
|
||||||
{
|
{
|
||||||
|
PIO_STACK_LOCATION IoStack;
|
||||||
|
|
||||||
/* TODO - Nothing implemented really yet! */
|
/* TODO - Nothing implemented really yet! */
|
||||||
|
IoStack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
|
||||||
DPRINT1("KS IRP dispatch function called\n");
|
|
||||||
|
|
||||||
//PKSDISPATCH_TABLE ks_dispatch_table = NULL;
|
DPRINT1("KS IRP dispatch function called with func %x\n", IoStack->MajorFunction);
|
||||||
|
|
||||||
/* ks_dispatch_table is the first element in a structure pointed to by FsContext */
|
/* ks_dispatch_table is the first element in a structure pointed to by FsContext */
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,9 @@
|
||||||
Kernel-mode COM
|
Kernel-mode COM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <portcls.h>
|
|
||||||
#include <kcom.h>
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
|
const GUID IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x46}};
|
||||||
|
|
||||||
/* http://msdn2.microsoft.com/en-us/library/ms809781.aspx */
|
/* http://msdn2.microsoft.com/en-us/library/ms809781.aspx */
|
||||||
COMDDKAPI NTSTATUS NTAPI
|
COMDDKAPI NTSTATUS NTAPI
|
||||||
|
@ -24,10 +22,17 @@ KoCreateInstance(
|
||||||
|
|
||||||
if ( ClsContext != CLSCTX_KERNEL_SERVER )
|
if ( ClsContext != CLSCTX_KERNEL_SERVER )
|
||||||
{
|
{
|
||||||
DPRINT("FAILED: ClsContext must be CLSCTX_KERNEL_SERVER\n");
|
DPRINT("KoCreateInstance: ClsContext must be CLSCTX_KERNEL_SERVER\n");
|
||||||
return STATUS_INVALID_PARAMETER_3;
|
return STATUS_INVALID_PARAMETER_3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsEqualGUIDAligned(InterfaceId, &IID_IUnknown))
|
||||||
|
{
|
||||||
|
DPRINT("KoCreateInstance: InterfaceId cannot be IID_IUnknown\n");
|
||||||
|
return STATUS_INVALID_PARAMETER_4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Find the desired interface and create an instance.
|
Find the desired interface and create an instance.
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,9 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NewIKsDevice(IKsDevice** OutDevice);
|
NewIKsDevice(IKsDevice** OutDevice);
|
||||||
|
|
||||||
|
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
|
||||||
|
#define TAG_KSDEVICE TAG('K', 'S', 'E', 'D')
|
||||||
|
#define TAG_KSOBJECT_TAG TAG('K', 'S', 'O', 'H')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,15 @@
|
||||||
#include <ntddk.h>
|
#include <ntddk.h>
|
||||||
#include <ks.h>
|
#include <ks.h>
|
||||||
|
|
||||||
|
#if !defined(DEFINE_ABSTRACT_UNKNOWN)
|
||||||
|
|
||||||
|
#define DEFINE_ABSTRACT_UNKNOWN() \
|
||||||
|
STDMETHOD_(NTSTATUS, QueryInterface)(THIS_ \
|
||||||
|
REFIID InterfaceId, \
|
||||||
|
PVOID* Interface)PURE; \
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* IKsFilterFactory
|
* IKsFilterFactory
|
||||||
|
@ -14,16 +22,13 @@
|
||||||
#undef INTERFACE
|
#undef INTERFACE
|
||||||
#define INTERFACE IKsFilterFactory
|
#define INTERFACE IKsFilterFactory
|
||||||
|
|
||||||
struct KSFILTERFACTORY;
|
|
||||||
|
|
||||||
DECLARE_INTERFACE_(IKsFilterFactory, IUnknown)
|
DECLARE_INTERFACE_(IKsFilterFactory, IUnknown)
|
||||||
{
|
{
|
||||||
//DEFINE_ABSTRACT_UNKNOWN()
|
DEFINE_ABSTRACT_UNKNOWN()
|
||||||
|
|
||||||
STDMETHOD_(struct KSFILTERFACTORY*,GetStruct)(THIS) PURE;
|
STDMETHOD_(KSFILTERFACTORY*,GetStruct)(THIS) PURE;
|
||||||
|
|
||||||
STDMETHOD_(NTSTATUS,SetDeviceClassesState)(THIS_
|
STDMETHOD_(NTSTATUS,SetDeviceClassesState)(THIS_
|
||||||
IN ULONG Unknown1,
|
|
||||||
IN BOOLEAN Enable)PURE;
|
IN BOOLEAN Enable)PURE;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -38,12 +43,12 @@ DECLARE_INTERFACE_(IKsFilterFactory, IUnknown)
|
||||||
|
|
||||||
DECLARE_INTERFACE_(IKsPowerNotify, IUnknown)
|
DECLARE_INTERFACE_(IKsPowerNotify, IUnknown)
|
||||||
{
|
{
|
||||||
//DEFINE_ABSTRACT_UNKNOWN()
|
DEFINE_ABSTRACT_UNKNOWN()
|
||||||
|
|
||||||
STDMETHOD_(ULONG,Sleep)(THIS_
|
STDMETHOD_(VOID,Sleep)(THIS_
|
||||||
IN DEVICE_POWER_STATE State) PURE;
|
IN DEVICE_POWER_STATE State) PURE;
|
||||||
|
|
||||||
STDMETHOD_(ULONG,Wake)(THIS) PURE;
|
STDMETHOD_(VOID,Wake)(THIS) PURE;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,27 +65,27 @@ struct KSPOWER_ENTRY;
|
||||||
|
|
||||||
DECLARE_INTERFACE_(IKsDevice, IUnknown)
|
DECLARE_INTERFACE_(IKsDevice, IUnknown)
|
||||||
{
|
{
|
||||||
//DEFINE_ABSTRACT_UNKNOWN()
|
DEFINE_ABSTRACT_UNKNOWN()
|
||||||
|
|
||||||
STDMETHOD_(struct KSDEVICE*,GetStruct)(THIS) PURE;
|
STDMETHOD_(KSDEVICE*,GetStruct)(THIS) PURE;
|
||||||
|
|
||||||
STDMETHOD_(NTSTATUS, InitializeObjectBag)(THIS_
|
STDMETHOD_(NTSTATUS, InitializeObjectBag)(THIS_
|
||||||
IN struct KSIOBJECTBAG *Bag,
|
IN struct KSIOBJECTBAG *Bag,
|
||||||
IN KMUTANT * Mutant) PURE;
|
IN KMUTANT * Mutant) PURE;
|
||||||
|
|
||||||
STDMETHOD_(ULONG,AcquireDevice)(THIS) PURE;
|
STDMETHOD_(NTSTATUS,AcquireDevice)(THIS) PURE;
|
||||||
STDMETHOD_(ULONG,ReleaseDevice)(THIS) PURE;
|
STDMETHOD_(NTSTATUS,ReleaseDevice)(THIS) PURE;
|
||||||
|
|
||||||
STDMETHOD_(VOID, GetAdapterObject)(THIS_
|
STDMETHOD_(NTSTATUS, GetAdapterObject)(THIS_
|
||||||
IN PADAPTER_OBJECT Object,
|
IN PADAPTER_OBJECT Object,
|
||||||
IN PULONG Unknown1,
|
IN PULONG Unknown1,
|
||||||
IN PULONG Unknown2) PURE;
|
IN PULONG Unknown2) PURE;
|
||||||
|
|
||||||
STDMETHOD_(VOID, AddPowerEntry)(THIS_
|
STDMETHOD_(NTSTATUS, AddPowerEntry)(THIS_
|
||||||
IN struct KSPOWER_ENTRY * Entry,
|
IN struct KSPOWER_ENTRY * Entry,
|
||||||
IN struct IKsPowerNotify* Notify)PURE;
|
IN IKsPowerNotify* Notify)PURE;
|
||||||
|
|
||||||
STDMETHOD_(VOID, RemovePowerEntry)(THIS_
|
STDMETHOD_(NTSTATUS, RemovePowerEntry)(THIS_
|
||||||
IN struct KSPOWER_ENTRY * Entry)PURE;
|
IN struct KSPOWER_ENTRY * Entry)PURE;
|
||||||
|
|
||||||
STDMETHOD_(NTSTATUS, PinStateChange)(THIS_
|
STDMETHOD_(NTSTATUS, PinStateChange)(THIS_
|
||||||
|
|
18
reactos/drivers/ksfilter/ks/kstypes.h
Normal file
18
reactos/drivers/ksfilter/ks/kstypes.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef KSTYPES_H__
|
||||||
|
#define KSTYPES_H__
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
KSDISPATCH_TABLE DispatchTable;
|
||||||
|
LIST_ENTRY ListEntry;
|
||||||
|
ACCESS_MASK AccessMask;
|
||||||
|
PKSOBJECT_CREATE_ITEM CreateItem;
|
||||||
|
|
||||||
|
}KSIOBJECT_HEADER, *PKSIOBJECT_HEADER;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,11 +1,9 @@
|
||||||
|
#include "priv.h"
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Method Functions
|
Method Functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ntddk.h>
|
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@unimplemented
|
@unimplemented
|
||||||
*/
|
*/
|
||||||
|
|
19
reactos/drivers/ksfilter/ks/priv.h
Normal file
19
reactos/drivers/ksfilter/ks/priv.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#ifndef PRIV_H__
|
||||||
|
#define PRIV_H__
|
||||||
|
|
||||||
|
#include <ntddk.h>
|
||||||
|
#include <debug.h>
|
||||||
|
#include <ks.h>
|
||||||
|
#include <portcls.h>
|
||||||
|
#include <kcom.h>
|
||||||
|
|
||||||
|
#include "ksfunc.h"
|
||||||
|
#include "kstypes.h"
|
||||||
|
#include "ksiface.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,6 +1,4 @@
|
||||||
#include <ntddk.h>
|
#include "priv.h"
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Property Functions
|
Property Functions
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
|
#include "priv.h"
|
||||||
|
|
||||||
/* ===============================================================
|
/* ===============================================================
|
||||||
Worker Management Functions
|
Worker Management Functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ntddk.h>
|
|
||||||
#include <debug.h>
|
|
||||||
#include <ks.h>
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
KEVENT Event;
|
KEVENT Event;
|
||||||
|
|
Loading…
Reference in a new issue