2007-03-14 19:50:47 +00:00
|
|
|
/*
|
|
|
|
PortCls FDO Extension
|
|
|
|
|
|
|
|
by Andrew Greenwood
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef PORTCLS_PRIVATE_H
|
|
|
|
#define PORTCLS_PRIVATE_H
|
|
|
|
|
2009-06-20 23:37:55 +00:00
|
|
|
//#define _KS_NO_ANONYMOUS_STRUCTURES_
|
2009-09-11 06:33:55 +00:00
|
|
|
#define PC_IMPLEMENTATION
|
2009-10-13 12:29:41 +00:00
|
|
|
#define COM_STDMETHOD_CAN_THROW
|
|
|
|
#define PC_NO_IMPORTS
|
2009-06-20 23:37:55 +00:00
|
|
|
|
2007-07-08 14:50:25 +00:00
|
|
|
#include <ntddk.h>
|
2007-03-14 19:50:47 +00:00
|
|
|
#include <portcls.h>
|
2010-05-15 17:57:09 +00:00
|
|
|
#define NDEBUG
|
2008-12-01 15:12:23 +00:00
|
|
|
#include <debug.h>
|
2007-03-14 19:50:47 +00:00
|
|
|
|
2008-12-04 18:43:42 +00:00
|
|
|
#include <dmusicks.h>
|
2009-09-11 06:33:55 +00:00
|
|
|
#include <kcom.h>
|
|
|
|
#include "interfaces.hpp"
|
2009-01-12 18:37:02 +00:00
|
|
|
#include <ks.h>
|
2009-01-26 17:38:22 +00:00
|
|
|
#include <ksmedia.h>
|
2010-11-01 00:26:59 +00:00
|
|
|
#include <stdio.h>
|
|
|
|
|
2009-10-13 12:29:41 +00:00
|
|
|
//#include <intrin.h>
|
2009-01-02 15:05:57 +00:00
|
|
|
|
2009-08-24 17:12:25 +00:00
|
|
|
#define TAG_PORTCLASS 'SLCP'
|
2007-07-08 20:38:35 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
#define PC_ASSERT(exp) \
|
|
|
|
(VOID)((!(exp)) ? \
|
|
|
|
RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
|
|
|
|
|
|
|
|
#define PC_ASSERT_IRQL(x) PC_ASSERT(KeGetCurrentIrql() <= (x))
|
|
|
|
#define PC_ASSERT_IRQL_EQUAL(x) PC_ASSERT(KeGetCurrentIrql()==(x))
|
2009-04-23 19:06:36 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2007-03-14 19:50:47 +00:00
|
|
|
NTSTATUS
|
2007-07-08 18:54:07 +00:00
|
|
|
NTAPI
|
2007-03-14 19:50:47 +00:00
|
|
|
PortClsCreate(
|
|
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
|
|
IN PIRP Irp);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2007-03-14 19:50:47 +00:00
|
|
|
NTSTATUS
|
2007-07-08 18:54:07 +00:00
|
|
|
NTAPI
|
2007-03-14 19:50:47 +00:00
|
|
|
PortClsPnp(
|
|
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
|
|
IN PIRP Irp);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2007-03-14 19:50:47 +00:00
|
|
|
NTSTATUS
|
2007-07-08 18:54:07 +00:00
|
|
|
NTAPI
|
2007-03-14 19:50:47 +00:00
|
|
|
PortClsPower(
|
|
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
|
|
IN PIRP Irp);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2007-03-14 19:50:47 +00:00
|
|
|
NTSTATUS
|
2007-07-08 18:54:07 +00:00
|
|
|
NTAPI
|
2007-03-14 19:50:47 +00:00
|
|
|
PortClsSysControl(
|
|
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
|
|
IN PIRP Irp);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewMiniportDMusUART(
|
2008-12-04 18:43:42 +00:00
|
|
|
OUT PMINIPORT* OutMiniport,
|
|
|
|
IN REFCLSID ClassId);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewMiniportFmSynth(
|
2008-12-04 18:43:42 +00:00
|
|
|
OUT PMINIPORT* OutMiniport,
|
|
|
|
IN REFCLSID ClassId);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortDMus(
|
2008-12-04 18:43:42 +00:00
|
|
|
OUT PPORT* OutPort);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortTopology(
|
2008-12-04 18:43:42 +00:00
|
|
|
OUT PPORT* OutPort);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortWaveCyclic(
|
2008-12-04 18:43:42 +00:00
|
|
|
OUT PPORT* OutPort);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortWavePci(
|
2008-12-04 18:43:42 +00:00
|
|
|
OUT PPORT* OutPort);
|
2007-03-14 19:50:47 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewIDrmPort(
|
2008-12-11 14:51:57 +00:00
|
|
|
OUT PDRMPORT2 *OutPort);
|
2008-12-11 11:23:14 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortClsVersion(
|
2009-01-02 15:05:57 +00:00
|
|
|
OUT PPORTCLSVERSION * OutVersion);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortFilterWaveCyclic(
|
2009-02-18 18:00:08 +00:00
|
|
|
OUT IPortFilterWaveCyclic ** OutFilter);
|
2009-02-15 13:29:01 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortPinWaveCyclic(
|
2009-02-15 13:29:01 +00:00
|
|
|
OUT IPortPinWaveCyclic ** OutPin);
|
2009-01-02 15:05:57 +00:00
|
|
|
|
2009-04-19 18:32:53 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortFilterWavePci(
|
|
|
|
OUT IPortFilterWavePci ** OutFilter);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortPinWavePci(
|
2009-04-19 18:32:53 +00:00
|
|
|
OUT IPortPinWavePci ** OutPin);
|
|
|
|
|
|
|
|
PDEVICE_OBJECT
|
|
|
|
GetDeviceObjectFromWaveCyclic(
|
|
|
|
IPortWavePci* iface);
|
|
|
|
|
2009-04-27 00:33:49 +00:00
|
|
|
PDEVICE_OBJECT
|
|
|
|
GetDeviceObjectFromPortWavePci(
|
|
|
|
IPortWavePci* iface);
|
|
|
|
|
|
|
|
PMINIPORTWAVEPCI
|
|
|
|
GetWavePciMiniport(
|
|
|
|
PPORTWAVEPCI Port);
|
2009-04-19 18:32:53 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
|
2009-05-08 09:36:02 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortFilterDMus(
|
|
|
|
OUT PPORTFILTERDMUS * OutFilter);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NewPortPinDMus(
|
2009-05-08 09:36:02 +00:00
|
|
|
OUT PPORTPINDMUS * OutPin);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
GetDMusMiniport(
|
|
|
|
IN IPortDMus * iface,
|
|
|
|
IN PMINIPORTDMUS * Miniport,
|
|
|
|
IN PMINIPORTMIDI * MidiMiniport);
|
|
|
|
|
2009-05-05 16:59:36 +00:00
|
|
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
|
|
|
|
2009-05-05 16:01:39 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortFilterWaveRT(
|
|
|
|
OUT IPortFilterWaveRT ** OutFilter);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortPinWaveRT(
|
2009-05-05 16:01:39 +00:00
|
|
|
OUT IPortPinWaveRT ** OutPin);
|
|
|
|
|
|
|
|
PMINIPORTWAVERT
|
|
|
|
GetWaveRTMiniport(
|
|
|
|
IN IPortWaveRT* iface);
|
|
|
|
|
|
|
|
PDEVICE_OBJECT
|
|
|
|
GetDeviceObjectFromPortWaveRT(
|
|
|
|
IPortWaveRT* iface);
|
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
|
2009-05-05 16:01:39 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortWaveRTStream(
|
|
|
|
PPORTWAVERTSTREAM *OutStream);
|
|
|
|
|
2009-05-12 16:09:44 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortWaveRT(
|
|
|
|
OUT PPORT* OutPort);
|
|
|
|
|
|
|
|
|
2009-05-05 16:59:36 +00:00
|
|
|
#endif
|
|
|
|
|
2009-06-07 18:22:24 +00:00
|
|
|
NTSTATUS
|
|
|
|
NewPortFilterTopology(
|
|
|
|
OUT IPortFilterTopology ** OutFilter);
|
|
|
|
|
|
|
|
PMINIPORTTOPOLOGY
|
|
|
|
GetTopologyMiniport(
|
|
|
|
PPORTTOPOLOGY Port);
|
|
|
|
|
2009-02-18 18:00:08 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NewDispatchObject(
|
|
|
|
IN PIRP Irp,
|
2009-06-07 18:22:24 +00:00
|
|
|
IN IIrpTarget * Target,
|
2009-07-22 14:42:51 +00:00
|
|
|
IN ULONG ObjectCreateItemCount,
|
|
|
|
IN PKSOBJECT_CREATE_ITEM ObjectCreateItem);
|
2009-02-18 18:00:08 +00:00
|
|
|
|
2009-02-18 23:27:10 +00:00
|
|
|
PMINIPORTWAVECYCLIC
|
|
|
|
GetWaveCyclicMiniport(
|
|
|
|
IN IPortWaveCyclic* iface);
|
|
|
|
|
|
|
|
PVOID
|
|
|
|
AllocateItem(
|
|
|
|
IN POOL_TYPE PoolType,
|
|
|
|
IN SIZE_T NumberOfBytes,
|
|
|
|
IN ULONG Tag);
|
2009-01-17 11:19:27 +00:00
|
|
|
|
|
|
|
VOID
|
|
|
|
FreeItem(
|
|
|
|
IN PVOID Item,
|
|
|
|
IN ULONG Tag);
|
|
|
|
|
2009-03-06 19:06:21 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NewIrpQueue(
|
|
|
|
IN IIrpQueue **Queue);
|
|
|
|
|
2009-02-18 18:00:08 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
TopologyPropertyHandler(
|
|
|
|
IN PIRP Irp,
|
|
|
|
IN PKSIDENTIFIER Request,
|
|
|
|
IN OUT PVOID Data);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PinPropertyHandler(
|
|
|
|
IN PIRP Irp,
|
|
|
|
IN PKSIDENTIFIER Request,
|
|
|
|
IN OUT PVOID Data);
|
2009-01-02 15:05:57 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2009-01-06 00:44:16 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcDmaMasterDescription(
|
|
|
|
IN PRESOURCELIST ResourceList OPTIONAL,
|
|
|
|
IN BOOLEAN ScatterGather,
|
|
|
|
IN BOOLEAN Dma32BitAddresses,
|
|
|
|
IN BOOLEAN IgnoreCount,
|
|
|
|
IN BOOLEAN Dma64BitAddresses,
|
|
|
|
IN DMA_WIDTH DmaWidth,
|
|
|
|
IN DMA_SPEED DmaSpeed,
|
|
|
|
IN ULONG MaximumLength,
|
|
|
|
IN ULONG DmaPort,
|
|
|
|
OUT PDEVICE_DESCRIPTION DeviceDescription);
|
2009-01-02 15:05:57 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2009-01-06 00:44:16 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcDmaSlaveDescription(
|
|
|
|
IN PRESOURCELIST ResourceList OPTIONAL,
|
|
|
|
IN ULONG DmaIndex,
|
2009-10-13 12:29:41 +00:00
|
|
|
IN BOOLEAN DemandMode,
|
|
|
|
IN BOOLEAN AutoInitialize,
|
2009-01-06 00:44:16 +00:00
|
|
|
IN DMA_SPEED DmaSpeed,
|
|
|
|
IN ULONG MaximumLength,
|
|
|
|
IN ULONG DmaPort,
|
|
|
|
OUT PDEVICE_DESCRIPTION DeviceDescription);
|
2009-01-02 15:05:57 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2009-01-18 23:46:09 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcCreateSubdeviceDescriptor(
|
|
|
|
OUT SUBDEVICE_DESCRIPTOR ** OutSubdeviceDescriptor,
|
|
|
|
IN ULONG InterfaceCount,
|
|
|
|
IN GUID * InterfaceGuids,
|
|
|
|
IN ULONG IdentifierCount,
|
|
|
|
IN KSIDENTIFIER *Identifier,
|
|
|
|
IN ULONG FilterPropertiesCount,
|
|
|
|
IN KSPROPERTY_SET * FilterProperties,
|
|
|
|
IN ULONG Unknown1,
|
|
|
|
IN ULONG Unknown2,
|
|
|
|
IN ULONG PinPropertiesCount,
|
|
|
|
IN KSPROPERTY_SET * PinProperties,
|
|
|
|
IN ULONG EventSetCount,
|
|
|
|
IN KSEVENT_SET * EventSet,
|
|
|
|
IN PPCFILTER_DESCRIPTOR FilterDescription);
|
2009-01-02 15:05:57 +00:00
|
|
|
|
2009-09-11 06:33:55 +00:00
|
|
|
extern
|
|
|
|
"C"
|
2009-02-15 13:29:01 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcValidateConnectRequest(
|
|
|
|
IN PIRP Irp,
|
|
|
|
IN KSPIN_FACTORY * Descriptor,
|
|
|
|
OUT PKSPIN_CONNECT* Connect);
|
|
|
|
|
2009-02-10 22:17:33 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcCreateItemDispatch(
|
|
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
|
|
IN PIRP Irp);
|
|
|
|
|
2009-03-06 19:06:21 +00:00
|
|
|
PDEVICE_OBJECT
|
|
|
|
GetDeviceObject(
|
|
|
|
IPortWaveCyclic* iface);
|
2009-02-10 22:17:33 +00:00
|
|
|
|
2009-06-26 13:08:09 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PcIoTimerRoutine(
|
|
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
|
|
IN PVOID Context);
|
|
|
|
|
2009-07-11 17:44:41 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NewIUnregisterSubdevice(
|
|
|
|
OUT PUNREGISTERSUBDEVICE *OutDevice);
|
|
|
|
|
2009-07-11 19:01:18 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NewIUnregisterPhysicalConnection(
|
|
|
|
OUT PUNREGISTERPHYSICALCONNECTION *OutConnection);
|
2009-07-11 17:44:41 +00:00
|
|
|
|
2009-09-29 10:46:30 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcHandlePropertyWithTable(
|
|
|
|
IN PIRP Irp,
|
|
|
|
IN ULONG PropertySetCount,
|
|
|
|
IN PKSPROPERTY_SET PropertySet,
|
|
|
|
IN PSUBDEVICE_DESCRIPTOR Descriptor);
|
|
|
|
|
2009-11-10 10:01:25 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcHandleEnableEventWithTable(
|
|
|
|
IN PIRP Irp,
|
|
|
|
IN PSUBDEVICE_DESCRIPTOR Descriptor);
|
|
|
|
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PcHandleDisableEventWithTable(
|
|
|
|
IN PIRP Irp,
|
|
|
|
IN PSUBDEVICE_DESCRIPTOR Descriptor);
|
|
|
|
|
2009-11-28 17:01:46 +00:00
|
|
|
IIrpTarget *
|
|
|
|
NTAPI
|
|
|
|
KsoGetIrpTargetFromIrp(
|
|
|
|
PIRP Irp);
|
2009-11-10 10:01:25 +00:00
|
|
|
|
2009-10-12 19:20:33 +00:00
|
|
|
#define DEFINE_KSPROPERTY_CONNECTIONSET(PinSet,\
|
2009-10-13 12:29:41 +00:00
|
|
|
PropStateHandler, PropDataFormatHandler, PropAllocatorFraming)\
|
|
|
|
DEFINE_KSPROPERTY_TABLE(PinSet) {\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_CONNECTION_STATE(PropStateHandler, PropStateHandler),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_CONNECTION_DATAFORMAT(PropDataFormatHandler, PropDataFormatHandler),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_CONNECTION_ALLOCATORFRAMING(PropAllocatorFraming)\
|
|
|
|
}
|
|
|
|
|
2009-10-12 19:20:33 +00:00
|
|
|
#define DEFINE_KSPROPERTY_ITEM_AUDIO_POSITION(GetHandler, SetHandler)\
|
|
|
|
DEFINE_KSPROPERTY_ITEM(\
|
|
|
|
KSPROPERTY_AUDIO_POSITION,\
|
|
|
|
(GetHandler),\
|
|
|
|
sizeof(KSPROPERTY),\
|
|
|
|
sizeof(KSAUDIO_POSITION),\
|
|
|
|
(SetHandler),\
|
|
|
|
NULL, 0, NULL, NULL, 0)
|
|
|
|
|
|
|
|
#define DEFINE_KSPROPERTY_AUDIOSET(PinSet,\
|
|
|
|
PropPositionHandler)\
|
|
|
|
DEFINE_KSPROPERTY_TABLE(PinSet) {\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_AUDIO_POSITION(PropPositionHandler, PropPositionHandler)\
|
|
|
|
}
|
|
|
|
|
2010-10-23 18:42:59 +00:00
|
|
|
|
|
|
|
#define DEFINE_KSPROPERTY_ITEM_DRMAUDIOSTREAM_CONTENTID(SetHandler)\
|
|
|
|
DEFINE_KSPROPERTY_ITEM(\
|
|
|
|
KSPROPERTY_DRMAUDIOSTREAM_CONTENTID,\
|
|
|
|
NULL,\
|
|
|
|
sizeof(KSPROPERTY),\
|
|
|
|
sizeof(ULONG),\
|
|
|
|
(SetHandler),\
|
|
|
|
NULL, 0, NULL, NULL, 0)
|
|
|
|
|
|
|
|
#define DEFINE_KSPROPERTY_DRMSET(PinSet,\
|
|
|
|
PropPositionHandler)\
|
|
|
|
DEFINE_KSPROPERTY_TABLE(PinSet) {\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_DRMAUDIOSTREAM_CONTENTID(PropPositionHandler)\
|
|
|
|
}
|
|
|
|
|
2009-03-10 01:52:51 +00:00
|
|
|
#define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet,\
|
|
|
|
PropGeneral, PropInstances, PropIntersection)\
|
|
|
|
DEFINE_KSPROPERTY_TABLE(PinSet) {\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(PropInstances),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_CTYPES(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_DATAFLOW(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_DATARANGES(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_DATAINTERSECTION(PropIntersection),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_INTERFACES(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_MEDIUMS(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_COMMUNICATION(PropGeneral),\
|
2009-08-23 22:50:09 +00:00
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_GLOBALCINSTANCES(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_NECESSARYINSTANCES(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_PHYSICALCONNECTION(PropGeneral),\
|
2009-03-10 01:52:51 +00:00
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_CATEGORY(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_NAME(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_CONSTRAINEDDATARANGES(PropGeneral),\
|
|
|
|
DEFINE_KSPROPERTY_ITEM_PIN_PROPOSEDATAFORMAT(PropGeneral)\
|
|
|
|
}
|
|
|
|
|
2009-06-20 23:37:55 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
KSDEVICE_HEADER KsDeviceHeader;
|
|
|
|
PDEVICE_OBJECT PhysicalDeviceObject;
|
|
|
|
PDEVICE_OBJECT PrevDeviceObject;
|
|
|
|
PCPFNSTARTDEVICE StartDevice;
|
|
|
|
ULONG_PTR Unused[4];
|
|
|
|
IAdapterPowerManagement * AdapterPowerManagement;
|
|
|
|
ULONG MaxSubDevices;
|
|
|
|
KSOBJECT_CREATE_ITEM * CreateItems;
|
|
|
|
|
|
|
|
IResourceList* resources;
|
|
|
|
|
2009-06-26 13:08:09 +00:00
|
|
|
LIST_ENTRY TimerList;
|
|
|
|
KSPIN_LOCK TimerListLock;
|
|
|
|
|
2009-11-28 17:01:46 +00:00
|
|
|
DEVICE_POWER_STATE DevicePowerState;
|
|
|
|
SYSTEM_POWER_STATE SystemPowerState;
|
|
|
|
|
2009-06-20 23:37:55 +00:00
|
|
|
} PCLASS_DEVICE_EXTENSION, *PPCLASS_DEVICE_EXTENSION;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
PVOID Pin;
|
|
|
|
PIO_WORKITEM WorkItem;
|
|
|
|
PIRP Irp;
|
|
|
|
}CLOSESTREAM_CONTEXT, *PCLOSESTREAM_CONTEXT;
|
|
|
|
|
2009-06-26 13:08:09 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
LIST_ENTRY Entry;
|
|
|
|
PIO_TIMER_ROUTINE pTimerRoutine;
|
|
|
|
PVOID Context;
|
|
|
|
}TIMER_CONTEXT, *PTIMER_CONTEXT;
|
|
|
|
|
2009-11-28 17:01:46 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
KSOBJECT_HEADER ObjectHeader;
|
|
|
|
IIrpTarget * Target;
|
|
|
|
PKSOBJECT_CREATE_ITEM CreateItem;
|
|
|
|
}DISPATCH_CONTEXT, *PDISPATCH_CONTEXT;
|
|
|
|
|
2007-03-14 19:50:47 +00:00
|
|
|
#endif
|