- Implement CPortFilterWaveCyclic::FastDeviceIoControl
[reactos.git] / reactos / drivers / wdm / audio / backpln / portcls / miniport.cpp
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Kernel Streaming
4 * FILE: drivers/wdm/audio/backpln/portcls/miniport.cpp
5 * PURPOSE: Miniport construction api
6 * PROGRAMMER: Andrew Greenwood
7 */
8
9 #include "private.hpp"
10
11 NTSTATUS
12 NTAPI
13 PcNewMiniport(
14 OUT PMINIPORT* OutMiniport,
15 IN REFCLSID ClassId)
16 {
17 NTSTATUS Status = STATUS_INVALID_PARAMETER;
18
19 DPRINT("PcNewMiniport entered\n");
20 PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
21
22 if (!OutMiniport)
23 {
24 DPRINT("PcNewMiniport was supplied a NULL OutPort parameter\n");
25 return STATUS_INVALID_PARAMETER;
26 }
27
28 if (IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverDMusUART) ||
29 IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverUart) ||
30 IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverDMusUARTCapture))
31 {
32 Status = NewMiniportDMusUART(OutMiniport, ClassId);
33 }
34 else if (IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverFmSynth) ||
35 IsEqualGUIDAligned(ClassId, CLSID_MiniportDriverFmSynthWithVol))
36 {
37 Status = NewMiniportFmSynth(OutMiniport, ClassId);
38 }
39 else
40 {
41 Status = STATUS_INVALID_PARAMETER;
42 }
43
44 DPRINT("PcNewMiniport Status %x\n", Status);
45 return Status;
46 }
47