Go to the source code of this file.
|
NTSTATUS NTAPI | PinCreate (IN PKSPIN Pin, IN PIRP Irp) |
|
NTSTATUS NTAPI | PinClose (IN PKSPIN Pin, IN PIRP Irp) |
|
VOID NTAPI | PinReset (IN PKSPIN Pin) |
|
NTSTATUS NTAPI | PinState (IN PKSPIN Pin, IN KSSTATE ToState, IN KSSTATE FromState) |
|
NTSTATUS NTAPI | AudioPositionPropertyHandler (IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data) |
|
NTSTATUS NTAPI | PinIntersectHandler (IN PVOID Context, IN PIRP Irp, IN PKSP_PIN Pin, IN PKSDATARANGE DataRange, IN PKSDATARANGE MatchingDataRange, IN ULONG DataBufferSize, OUT PVOID Data OPTIONAL, OUT PULONG DataSize) |
|
◆ AudioPositionPropertyHandler()
Definition at line 127 of file pin.c.
131{
133 PKSPIN
Pin, FirstPin;
137
138
140
141
143
144
146
147
148 KsFilterAcquireControl(
Filter);
149
150
152
153
155
157 {
158
160 }
161 else
162 {
163
165
166
168 }
169
170
171 KsFilterReleaseControl(
Filter);
172
173
175}
KSDDKAPI NTSTATUS NTAPI KsSynchronousIoControlDevice(IN PFILE_OBJECT FileObject, IN KPROCESSOR_MODE RequestorMode, IN ULONG IoControl, IN PVOID InBuffer, IN ULONG InSize, OUT PVOID OutBuffer, IN ULONG OutSize, OUT PULONG BytesReturned)
KSDDKAPI PKSPIN NTAPI KsFilterGetFirstChildPin(IN PKSFILTER Filter, IN ULONG PinId)
PKSFILTER NTAPI KsPinGetParentFilter(IN PKSPIN Pin)
KSDDKAPI PKSPIN NTAPI KsGetPinFromIrp(IN PIRP Irp)
PFILE_OBJECT NTAPI KsPinGetConnectedPinFileObject(IN PKSPIN Pin)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
#define IOCTL_KS_PROPERTY
#define STATUS_INVALID_PARAMETER
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
◆ PinClose()
Definition at line 60 of file pin.c.
63{
64
66 {
67
69 }
70
72}
◆ PinCreate()
Definition at line 13 of file pin.c.
16{
18 PKSPIN FirstPin;
20
21
23
24
26
27
29
31 {
32
33 if (
RtlCompareMemory(FirstPin->ConnectionFormat,
Pin->ConnectionFormat,
Pin->ConnectionFormat->FormatSize) !=
Pin->ConnectionFormat->FormatSize)
34 {
35
37 }
38 }
39
40
42 if (!PinContext)
44
45
46 Pin->Context = PinContext;
47
48
50
51
52
53
54
56}
#define RtlCompareMemory(s1, s2, l)
#define ExAllocatePool(type, size)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INSUFFICIENT_RESOURCES
◆ PinIntersectHandler()
Definition at line 179 of file pin.c.
188{
189 PKSPIN FirstPin;
191
192
194
195
197
198
199 if (!
IsEqualGUIDAligned(&FirstPin->ConnectionFormat->SubFormat, &DataRange->SubFormat) ||
203 {
204
206 }
207
208
209 if (DataBufferSize)
210 {
211
212 if (DataBufferSize >= FirstPin->ConnectionFormat->FormatSize)
213 {
214
215 RtlMoveMemory(
Data, FirstPin->ConnectionFormat, FirstPin->ConnectionFormat->FormatSize);
216
217
218 *
DataSize = FirstPin->ConnectionFormat->FormatSize;
219
221 }
222 else
223 {
224
226 }
227 }
228 else
229 {
230
231 *
DataSize = FirstPin->ConnectionFormat->FormatSize;
232
234 }
235
236
238}
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
#define RtlMoveMemory(Destination, Source, Length)
#define IsEqualGUIDAligned(guid1, guid2)
◆ PinReset()
Definition at line 76 of file pin.c.
78{
80
81
83
84
86
87
89
90
92
93
95}
KSDDKAPI VOID NTAPI KsFilterAttemptProcessing(IN PKSFILTER Filter, IN BOOLEAN Asynchronous)
◆ PinState()
Definition at line 99 of file pin.c.
103{
105
106
108 {
109
111 }
112
113
115
116
118
119
121
123}