- Register all device interfaces identified in the subdevice descriptor
[reactos.git] / reactos / drivers / wdm / audio / backpln / portcls / undoc.c
1 /*
2 Undocumented PortCls exports
3 */
4
5 #include "private.h"
6 #include <portcls.h>
7
8 NTSTATUS
9 KsoDispatchCreateWithGenericFactory(
10 LONG Unknown,
11 PIRP Irp)
12 {
13 UNIMPLEMENTED;
14 return STATUS_NOT_IMPLEMENTED;
15 }
16
17 void
18 KsoGetIrpTargetFromFileObject(
19 LONG Unknown)
20 {
21 UNIMPLEMENTED;
22 return;
23 }
24
25 void
26 KsoGetIrpTargetFromIrp(
27 LONG Unknown)
28 {
29 UNIMPLEMENTED;
30 return;
31 }
32
33 void
34 PcAcquireFormatResources(
35 LONG Unknown,
36 LONG Unknown2,
37 LONG Unknown3,
38 LONG Unknown4)
39 {
40 UNIMPLEMENTED;
41 return;
42 }
43
44 NTSTATUS
45 PcAddToEventTable(
46 PVOID Ptr,
47 LONG Unknown2,
48 ULONG Length,
49 LONG Unknown3,
50 LONG Unknown4,
51 LONG Unknown5,
52 LONG Unknown6,
53 LONG Unknown7)
54 {
55 UNIMPLEMENTED;
56 return STATUS_NOT_IMPLEMENTED;
57 }
58
59 NTSTATUS
60 PcAddToPropertyTable(
61 PVOID Ptr,
62 LONG Unknown,
63 LONG Unknown2,
64 LONG Unknown3,
65 CHAR Unknown4)
66 {
67 UNIMPLEMENTED;
68 return STATUS_NOT_IMPLEMENTED;
69 }
70
71 NTSTATUS
72 PcCaptureFormat(
73 LONG Unknown,
74 LONG Unknown2,
75 LONG Unknown3,
76 LONG Unknown4)
77 {
78 UNIMPLEMENTED;
79 return STATUS_NOT_IMPLEMENTED;
80 }
81
82
83 /*
84 * @unimplemented
85 */
86 NTSTATUS
87 NTAPI
88 PcCreateSubdeviceDescriptor(
89 OUT SUBDEVICE_DESCRIPTOR ** OutSubdeviceDescriptor,
90 IN ULONG InterfaceCount,
91 IN GUID * InterfaceGuids,
92 IN ULONG IdentifierCount,
93 IN KSIDENTIFIER *Identifier,
94 IN ULONG FilterPropertiesCount,
95 IN KSPROPERTY_SET * FilterProperties,
96 IN ULONG Unknown1,
97 IN ULONG Unknown2,
98 IN ULONG PinPropertiesCount,
99 IN KSPROPERTY_SET * PinProperties,
100 IN ULONG EventSetCount,
101 IN KSEVENT_SET * EventSet,
102 IN PPCFILTER_DESCRIPTOR FilterDescription)
103 {
104 SUBDEVICE_DESCRIPTOR * Descriptor;
105 NTSTATUS Status = STATUS_INSUFFICIENT_RESOURCES;
106
107 Descriptor = AllocateItem(NonPagedPool, sizeof(SUBDEVICE_DESCRIPTOR), TAG_PORTCLASS);
108 if (!Descriptor)
109 return STATUS_INSUFFICIENT_RESOURCES;
110
111 Descriptor->Interfaces = AllocateItem(NonPagedPool, sizeof(GUID) * InterfaceCount, TAG_PORTCLASS);
112 if (!Descriptor->Interfaces)
113 goto cleanup;
114
115 /* copy interface guids */
116 RtlCopyMemory(Descriptor->Interfaces, InterfaceGuids, sizeof(GUID) * InterfaceCount);
117 Descriptor->InterfaceCount = InterfaceCount;
118
119 *OutSubdeviceDescriptor = Descriptor;
120 return STATUS_SUCCESS;
121
122 cleanup:
123 if (Descriptor)
124 {
125 if (Descriptor->Interfaces)
126 FreeItem(Descriptor->Interfaces, TAG_PORTCLASS);
127
128 FreeItem(Descriptor, TAG_PORTCLASS);
129 }
130 return Status;
131 }
132
133 /* PcDeleteSubdeviceDescriptor */
134
135 /* PcFreeEventTable */
136
137 /* PcFreePropertyTable */
138
139 /* PcGenerateEventDeferredRoutine */
140
141 /* PcGenerateEventList */
142
143 /* PcHandleDisableEventWithTable */
144
145 /* PcHandleEnableEventWithTable */
146
147 /* PcHandlePropertyWithTable */
148
149 /* PcPinPropertyHandler */
150
151 /* PcTerminateConnection */
152
153 /* PcValidateConnectRequest */
154
155 /* PcVerifyFilterIsReady */