/* @implemented */ KSDDKAPI NTSTATUS NTAPI KsCreatePin( IN HANDLE FilterHandle, IN PKSPIN_CONNECT Connect, IN ACCESS_MASK DesiredAccess, OUT PHANDLE ConnectionHandle) { UINT ConnectSize = sizeof(KSPIN_CONNECT); PKSDATAFORMAT_WAVEFORMATEX Format = (PKSDATAFORMAT_WAVEFORMATEX)(Connect + 1); if (Format->DataFormat.FormatSize == sizeof(KSDATAFORMAT) || Format->DataFormat.FormatSize == sizeof(KSDATAFORMAT) + sizeof(WAVEFORMATEX)) { ConnectSize += Format->DataFormat.FormatSize; } return KspCreateObjectType(FilterHandle, KSSTRING_Pin, (PVOID)Connect, ConnectSize, DesiredAccess, ConnectionHandle); }
/* @implemented */ KSDDKAPI NTSTATUS NTAPI KsCreateClock( IN HANDLE ConnectionHandle, IN PKSCLOCK_CREATE ClockCreate, OUT PHANDLE ClockHandle) { return KspCreateObjectType(ConnectionHandle, KSSTRING_Clock, ClockCreate, sizeof(KSCLOCK_CREATE), GENERIC_READ, ClockHandle); }
/* @implemented */ KSDDKAPI NTSTATUS NTAPI KsCreateAllocator( IN HANDLE ConnectionHandle, IN PKSALLOCATOR_FRAMING AllocatorFraming, OUT PHANDLE AllocatorHandle) { return KspCreateObjectType(ConnectionHandle, KSSTRING_Allocator, (PVOID)AllocatorFraming, sizeof(KSALLOCATOR_FRAMING), GENERIC_READ, AllocatorHandle); }
/* @implemented */ KSDDKAPI NTSTATUS NTAPI KsCreateTopologyNode( IN HANDLE ParentHandle, IN PKSNODE_CREATE NodeCreate, IN ACCESS_MASK DesiredAccess, OUT PHANDLE NodeHandle) { return KspCreateObjectType(ParentHandle, KSSTRING_TopologyNode, (PVOID)NodeCreate, sizeof(KSNODE_CREATE), DesiredAccess, NodeHandle); }