#include <ntddk.h>
#include <portcls.h>
#include <ks.h>
#include <ksmedia.h>
#include <debug.h>
Go to the source code of this file.
|
NTSTATUS NTAPI | FilterProcess (IN PKSFILTER Filter, IN PKSPROCESSPIN_INDEXENTRY ProcessPinsIndex) |
|
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) |
|
◆ PPIN_CONTEXT
◆ AudioPositionPropertyHandler()
Definition at line 127 of file pin.c.
133 PKSPIN
Pin, FirstPin;
148 KsFilterAcquireControl(
Filter);
171 KsFilterReleaseControl(
Filter);
PKSFILTER NTAPI KsPinGetParentFilter(IN PKSPIN Pin)
#define IOCTL_KS_PROPERTY
KSDDKAPI PKSPIN NTAPI KsFilterGetFirstChildPin(IN PKSFILTER Filter, IN ULONG PinId)
#define STATUS_INVALID_PARAMETER
_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
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)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
KSDDKAPI PKSPIN NTAPI KsGetPinFromIrp(IN PIRP Irp)
PFILE_OBJECT NTAPI KsPinGetConnectedPinFileObject(IN PKSPIN Pin)
◆ FilterProcess()
Definition at line 13 of file filter.c.
18 PKSPROCESSPIN CurPin,
Pin;
21 if (ProcessPinsIndex->Count)
27 CurPin = ProcessPinsIndex->Pins[
Index];
29 if (CurPin->BytesAvailable && CurPin->Pin->DeviceState ==
KSSTATE_RUN)
39 if (!PendingFrames && ProcessPinsIndex->Count)
42 Pin = ProcessPinsIndex->Pins[0];
45 if (
Pin->BytesAvailable)
50 CurPin = ProcessPinsIndex->Pins[
Index];
54 CurPin->BytesUsed =
Pin->BytesAvailable;
#define RtlMoveMemory(Destination, Source, Length)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
_In_ WDFCOLLECTION _In_ ULONG Index
◆ PinClose()
Definition at line 60 of file pin.c.
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
◆ PinCreate()
Definition at line 13 of file pin.c.
33 if (
RtlCompareMemory(FirstPin->ConnectionFormat,
Pin->ConnectionFormat,
Pin->ConnectionFormat->FormatSize) !=
Pin->ConnectionFormat->FormatSize)
46 Pin->Context = PinContext;
PKSFILTER NTAPI KsPinGetParentFilter(IN PKSPIN Pin)
#define STATUS_INSUFFICIENT_RESOURCES
KSDDKAPI PKSPIN NTAPI KsFilterGetFirstChildPin(IN PKSFILTER Filter, IN ULONG PinId)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
#define ExAllocatePool(type, size)
#define RtlZeroMemory(Destination, Length)
#define RtlCompareMemory(s1, s2, l)
◆ PinIntersectHandler()
Definition at line 179 of file pin.c.
199 if (!
IsEqualGUIDAligned(&FirstPin->ConnectionFormat->SubFormat, &DataRange->SubFormat) ||
212 if (DataBufferSize >= FirstPin->ConnectionFormat->FormatSize)
215 RtlMoveMemory(
Data, FirstPin->ConnectionFormat, FirstPin->ConnectionFormat->FormatSize);
218 *
DataSize = FirstPin->ConnectionFormat->FormatSize;
231 *
DataSize = FirstPin->ConnectionFormat->FormatSize;
KSDDKAPI PKSPIN NTAPI KsFilterGetFirstChildPin(IN PKSFILTER Filter, IN ULONG PinId)
#define RtlMoveMemory(Destination, Source, Length)
#define STATUS_BUFFER_TOO_SMALL
#define IsEqualGUIDAligned(guid1, guid2)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
#define STATUS_BUFFER_OVERFLOW
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
◆ PinReset()
Definition at line 76 of file pin.c.
PKSFILTER NTAPI KsPinGetParentFilter(IN PKSPIN Pin)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
KSDDKAPI VOID NTAPI KsFilterAttemptProcessing(IN PKSFILTER Filter, IN BOOLEAN Asynchronous)
#define RtlZeroMemory(Destination, Length)
◆ PinState()
Definition at line 99 of file pin.c.
PKSFILTER NTAPI KsPinGetParentFilter(IN PKSPIN Pin)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
KSDDKAPI VOID NTAPI KsFilterAttemptProcessing(IN PKSFILTER Filter, IN BOOLEAN Asynchronous)
#define RtlZeroMemory(Destination, Length)