7 #ifndef PORTCLS_PRIVATE_H
8 #define PORTCLS_PRIVATE_H
17 #include "interfaces.h"
24 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
25 #define TAG_PORTCLASS TAG('P', 'C', 'L', 'S')
35 IN PDEVICE_OBJECT DeviceObject
,
41 IN PDEVICE_OBJECT DeviceObject
,
47 IN PDEVICE_OBJECT DeviceObject
,
53 IN PDEVICE_OBJECT DeviceObject
,
56 NTSTATUS
NewMiniportDMusUART(
57 OUT PMINIPORT
* OutMiniport
,
60 NTSTATUS
NewMiniportFmSynth(
61 OUT PMINIPORT
* OutMiniport
,
70 NTSTATUS
NewPortTopology(
73 NTSTATUS
NewPortWaveCyclic(
76 NTSTATUS
NewPortWavePci(
80 OUT PDRMPORT2
*OutPort
);
82 NTSTATUS
NewPortClsVersion(
83 OUT PPORTCLSVERSION
* OutVersion
);
85 NTSTATUS
NewPortFilterWaveCyclic(
86 OUT IPortFilterWaveCyclic
** OutFilter
);
88 NTSTATUS
NewPortPinWaveCyclic(
89 OUT IPortPinWaveCyclic
** OutPin
);
95 IN IIrpTarget
* Target
);
98 GetWaveCyclicMiniport(
99 IN IPortWaveCyclic
* iface
);
103 IN POOL_TYPE PoolType
,
104 IN SIZE_T NumberOfBytes
,
115 IN IIrpQueue
**Queue
);
121 KSOBJECT_HEADER ObjectHeader
;
127 ISubdevice
* FromSubDevice
;
128 LPWSTR FromUnicodeString
;
130 ISubdevice
* ToSubDevice
;
131 LPWSTR ToUnicodeString
;
133 }PHYSICAL_CONNECTION
;
137 TopologyPropertyHandler(
139 IN PKSIDENTIFIER Request
,
146 IN PKSIDENTIFIER Request
,
151 KSDEVICE_HEADER KsDeviceHeader
;
152 PDEVICE_OBJECT PhysicalDeviceObject
;
153 PDEVICE_OBJECT PrevDeviceObject
;
154 PCPFNSTARTDEVICE StartDevice
;
155 IAdapterPowerManagement
* AdapterPowerManagement
;
157 KSOBJECT_CREATE_ITEM
* CreateItems
;
160 IResourceList
* resources
;
161 LIST_ENTRY SubDeviceList
;
162 LIST_ENTRY PhysicalConnectionList
;
164 } PCLASS_DEVICE_EXTENSION
, *PPCLASS_DEVICE_EXTENSION
;
169 KSSTREAM_HEADER Header
;
171 }CONTEXT_WRITE
, *PCONTEXT_WRITE
;
175 PcDmaMasterDescription(
176 IN PRESOURCELIST ResourceList OPTIONAL
,
177 IN BOOLEAN ScatterGather
,
178 IN BOOLEAN Dma32BitAddresses
,
179 IN BOOLEAN IgnoreCount
,
180 IN BOOLEAN Dma64BitAddresses
,
181 IN DMA_WIDTH DmaWidth
,
182 IN DMA_SPEED DmaSpeed
,
183 IN ULONG MaximumLength
,
185 OUT PDEVICE_DESCRIPTION DeviceDescription
);
189 PcDmaSlaveDescription(
190 IN PRESOURCELIST ResourceList OPTIONAL
,
193 IN ULONG AutoInitialize
,
194 IN DMA_SPEED DmaSpeed
,
195 IN ULONG MaximumLength
,
197 OUT PDEVICE_DESCRIPTION DeviceDescription
);
201 PcCreateSubdeviceDescriptor(
202 OUT SUBDEVICE_DESCRIPTOR
** OutSubdeviceDescriptor
,
203 IN ULONG InterfaceCount
,
204 IN GUID
* InterfaceGuids
,
205 IN ULONG IdentifierCount
,
206 IN KSIDENTIFIER
*Identifier
,
207 IN ULONG FilterPropertiesCount
,
208 IN KSPROPERTY_SET
* FilterProperties
,
211 IN ULONG PinPropertiesCount
,
212 IN KSPROPERTY_SET
* PinProperties
,
213 IN ULONG EventSetCount
,
214 IN KSEVENT_SET
* EventSet
,
215 IN PPCFILTER_DESCRIPTOR FilterDescription
);
219 PcValidateConnectRequest(
221 IN KSPIN_FACTORY
* Descriptor
,
222 OUT PKSPIN_CONNECT
* Connect
);
226 PcCreateItemDispatch(
227 IN PDEVICE_OBJECT DeviceObject
,
234 IN PSUBDEVICE_DESCRIPTOR Descriptor
);
238 IPortWaveCyclic
* iface
);
242 IPortWavePciStream_AddMapping(
243 IN IPortWavePciStream
*iface
,
250 NewIPortWavePciStream(
251 OUT PPORTWAVEPCISTREAM
*Stream
,
252 IN KSPIN_CONNECT
*ConnectDetails
,
253 IN PKSDATAFORMAT DataFormat
,
254 IN PDEVICE_OBJECT DeviceObject
,
257 #define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet,\
258 PropGeneral, PropInstances, PropIntersection)\
259 DEFINE_KSPROPERTY_TABLE(PinSet) {\
260 DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(PropInstances),\
261 DEFINE_KSPROPERTY_ITEM_PIN_CTYPES(PropGeneral),\
262 DEFINE_KSPROPERTY_ITEM_PIN_DATAFLOW(PropGeneral),\
263 DEFINE_KSPROPERTY_ITEM_PIN_DATARANGES(PropGeneral),\
264 DEFINE_KSPROPERTY_ITEM_PIN_DATAINTERSECTION(PropIntersection),\
265 DEFINE_KSPROPERTY_ITEM_PIN_INTERFACES(PropGeneral),\
266 DEFINE_KSPROPERTY_ITEM_PIN_MEDIUMS(PropGeneral),\
267 DEFINE_KSPROPERTY_ITEM_PIN_COMMUNICATION(PropGeneral),\
268 DEFINE_KSPROPERTY_ITEM_PIN_CATEGORY(PropGeneral),\
269 DEFINE_KSPROPERTY_ITEM_PIN_NAME(PropGeneral),\
270 DEFINE_KSPROPERTY_ITEM_PIN_CONSTRAINEDDATARANGES(PropGeneral),\
271 DEFINE_KSPROPERTY_ITEM_PIN_PROPOSEDATAFORMAT(PropGeneral)\