1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
/*++
Copyright (c) Microsoft Corporation All Rights Reserved
Module Name:
basetopo.h
Abstract:
Declaration of topology miniport.
--*/
#ifndef _SYSVAD_BASETOPO_H_
#define _SYSVAD_BASETOPO_H_
//=============================================================================
// Classes
//=============================================================================
///////////////////////////////////////////////////////////////////////////////
// CMiniportTopologySYSVAD
//
class CMiniportTopologySYSVAD
{
protected:
PADAPTERCOMMON m_AdapterCommon; // Adapter common object.
PPCFILTER_DESCRIPTOR m_FilterDescriptor; // Filter descriptor.
PPORTEVENTS m_PortEvents; // Event interface.
USHORT m_DeviceMaxChannels; // Max device channels.
public:
CMiniportTopologySYSVAD(
_In_ PCFILTER_DESCRIPTOR *FilterDesc,
_In_ USHORT DeviceMaxChannels
);
~CMiniportTopologySYSVAD();
NTSTATUS GetDescription
(
_Out_ PPCFILTER_DESCRIPTOR * Description
);
NTSTATUS DataRangeIntersection
(
_In_ ULONG PinId,
_In_ PKSDATARANGE ClientDataRange,
_In_ PKSDATARANGE MyDataRange,
_In_ ULONG OutputBufferLength,
_Out_writes_bytes_to_opt_(OutputBufferLength, *ResultantFormatLength)
PVOID ResultantFormat OPTIONAL,
_Out_ PULONG ResultantFormatLength
);
NTSTATUS Init
(
_In_ PUNKNOWN UnknownAdapter,
_In_ PPORTTOPOLOGY Port_
);
// PropertyHandlers.
NTSTATUS PropertyHandlerGeneric
(
_In_ PPCPROPERTY_REQUEST PropertyRequest
);
NTSTATUS PropertyHandlerMuxSource
(
_In_ PPCPROPERTY_REQUEST PropertyRequest
);
NTSTATUS PropertyHandlerDevSpecific
(
_In_ PPCPROPERTY_REQUEST PropertyRequest
);
VOID AddEventToEventList
(
_In_ PKSEVENT_ENTRY EventEntry
);
VOID GenerateEventList
(
_In_opt_ GUID *Set,
_In_ ULONG EventId,
_In_ BOOL PinEvent,
_In_ ULONG PinId,
_In_ BOOL NodeEvent,
_In_ ULONG NodeId
);
};
#endif
|