28const GUID KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT = {0xf4aeb342, 0x0329, 0x4fdd, {0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78}};
48 ConnectSize +=
Format->DataFormat.FormatSize;
89 (
PVOID*)&ConnectDetails);
96 if (ConnectDetails->
PinId >= DescriptorsCount)
317 *OutInformation = KeyInfo;
329 IN const KSPIN_DESCRIPTOR* Descriptors,
356 if (
Pin->PinId >= DescriptorsCount)
365 Irp->IoStatus.Information =
sizeof(
ULONG);
388 Irp->IoStatus.Information =
Size;
411 DataRanges =
Descriptor->ConstrainedDataRanges;
423 Irp->IoStatus.Information =
Size;
434 Irp->IoStatus.Information =
sizeof(
ULONG);
467 DPRINT(
"Index %lu FormatSize %lu Flags %lu SampleSize %lu Reserved %lu KSDATAFORMAT %lu\n",
Index,
478 Irp->IoStatus.Information =
Size;
513 Irp->IoStatus.Information =
Size;
521 Irp->IoStatus.Information =
Size;
537 Irp->IoStatus.Information =
Size;
547 Irp->IoStatus.Information =
Size;
574 Irp->IoStatus.Information = 0;
603 Irp->IoStatus.Information =
Size;
611 Irp->IoStatus.Information = 0;
619 Irp->IoStatus.Information = 0;
623 for(
Index = 0; Index < Descriptor->DataRangesCount;
Index++)
638 Irp->IoStatus.Information = 0;
644 Irp->IoStatus.Information = 0;
649 Irp->IoStatus.Information = 0;
654 Irp->IoStatus.Information = 0;
687 IN PFNKSINTERSECTHANDLEREX IntersectHandler
OPTIONAL,
706 IN PFNKSINTERSECTHANDLER IntersectHandler)
723 Irp->IoStatus.Information =
Size;
728 if (
Pin->PinId >= DescriptorsCount)
732 Irp->IoStatus.Information = 0;
762 Irp->IoStatus.Information = 0;
796 Irp->IoStatus.Information =
Size;
805 Irp->IoStatus.Information =
sizeof(
ULONG);
817 Item->Count = DataItemsCount;
818 Item->Size = DataItemSize;
832 Irp->IoStatus.Information =
Size;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
PRTL_UNICODE_STRING_BUFFER Path
KSDDKAPI NTSTATUS NTAPI KsCreatePin(IN HANDLE FilterHandle, IN PKSPIN_CONNECT Connect, IN ACCESS_MASK DesiredAccess, OUT PHANDLE ConnectionHandle)
KSDDKAPI NTSTATUS NTAPI KsPinDataIntersection(IN PIRP Irp, IN PKSP_PIN Pin, OUT PVOID Data, IN ULONG DescriptorsCount, IN const KSPIN_DESCRIPTOR *Descriptor, IN PFNKSINTERSECTHANDLER IntersectHandler)
KSPIN_MEDIUM StandardPinMedium
KSDDKAPI NTSTATUS NTAPI KspPinPropertyHandler(IN PIRP Irp, IN PKSPROPERTY Property, IN OUT PVOID Data, IN ULONG DescriptorsCount, IN const KSPIN_DESCRIPTOR *Descriptors, IN ULONG DescriptorSize)
KSDDKAPI NTSTATUS NTAPI KsHandleSizedListQuery(IN PIRP Irp, IN ULONG DataItemsCount, IN ULONG DataItemSize, IN const VOID *DataItems)
NTSTATUS KspValidateConnectRequest(IN PIRP Irp, IN ULONG DescriptorsCount, IN PVOID Descriptors, IN ULONG DescriptorSize, OUT PKSPIN_CONNECT *Connect)
KSPIN_INTERFACE StandardPinInterface
KSDDKAPI NTSTATUS NTAPI KsValidateConnectRequest(IN PIRP Irp, IN ULONG DescriptorsCount, IN KSPIN_DESCRIPTOR *Descriptor, OUT PKSPIN_CONNECT *Connect)
NTSTATUS KspReadMediaCategory(IN LPGUID Category, PKEY_VALUE_PARTIAL_INFORMATION *OutInformation)
KSDDKAPI NTSTATUS NTAPI KsPinDataIntersectionEx(IN PIRP Irp, IN PKSP_PIN Pin, OUT PVOID Data, IN ULONG DescriptorsCount, IN const KSPIN_DESCRIPTOR *Descriptor, IN ULONG DescriptorSize, IN PFNKSINTERSECTHANDLEREX IntersectHandler OPTIONAL, IN PVOID HandlerContext OPTIONAL)
KSDDKAPI NTSTATUS NTAPI KsPinPropertyHandler(IN PIRP Irp, IN PKSPROPERTY Property, IN OUT PVOID Data, IN ULONG DescriptorsCount, IN const KSPIN_DESCRIPTOR *Descriptor)
const GUID KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
#define STATIC_KSINTERFACESETID_Standard
#define KSMEDIUM_TYPE_ANYINSTANCE
union KSDATAFORMAT KSDATARANGE
#define STATIC_KSMEDIUMSETID_Standard
@ KSPROPERTY_PIN_COMMUNICATION
@ KSPROPERTY_PIN_CATEGORY
@ KSPROPERTY_PIN_PROPOSEDATAFORMAT
@ KSPROPERTY_PIN_CONSTRAINEDDATARANGES
@ KSPROPERTY_PIN_DATARANGES
@ KSPROPERTY_PIN_DATAFLOW
@ KSPROPERTY_PIN_INTERFACES
KSIDENTIFIER * PKSPIN_INTERFACE
_In_ PKSPIN_CONNECT Connect
KSIDENTIFIER * PKSPIN_MEDIUM
@ KSINTERFACE_STANDARD_STREAMING
_In_ PKSPIN_CONNECT _In_ ACCESS_MASK _Out_ PHANDLE ConnectionHandle
struct KSMULTIPLE_ITEM * PKSMULTIPLE_ITEM
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
NTSTATUS NTAPI KspCreateObjectType(IN HANDLE ParentHandle, IN LPWSTR ObjectType, PVOID CreateParameters, UINT CreateParametersSize, IN ACCESS_MASK DesiredAccess, OUT PHANDLE NodeHandle)
NTSTATUS KspCopyCreateRequest(IN PIRP Irp, IN LPWSTR ObjectClass, IN OUT PULONG Size, OUT PVOID *Result)
VOID FreeItem(IN PVOID Item)
#define InitializeObjectAttributes(p, n, a, r, s)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
@ KeyValuePartialInformation
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(PUNICODE_STRING Destination, PUNICODE_STRING Source)
struct _KEY_VALUE_PARTIAL_INFORMATION * PKEY_VALUE_PARTIAL_INFORMATION
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
PULONG MinorVersion OPTIONAL
ULONG MinimumBitsPerSample
ULONG MaximumBitsPerSample
ULONG MaximumSampleFrequency
KSPIN_INTERFACE Interface
struct _IO_STACK_LOCATION::@1583::@1584 DeviceIoControl
union _IO_STACK_LOCATION::@1583 Parameters
_In_ SIZE_T DescriptorSize
#define RTL_CONSTANT_STRING(s)
#define RtlMoveMemory(Destination, Source, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define IsEqualGUIDAligned(guid1, guid2)
_Reserved_ PVOID Reserved
_Must_inspect_result_ _In_ ULONG Flags