xref: /reactos/drivers/wdm/audio/drm/drmk/stubs.cpp (revision c2c66aff)
1 /*
2     ReactOS Kernel Streaming
3     Digital Rights Management
4 
5     Please see COPYING in the top-level directory for license information.
6 
7     Author: Andrew Greenwood
8 
9     Notes:
10     This is just a file containing stub functions. The DRMK kernel library
11     deals with Digital Rights Management. This is not essential for the
12     operation of audio/video (except in the cases where content has digital
13     rights information) but is needed for linking with PORTCLS.
14 */
15 
16 #include <ntddk.h>
17 #include <portcls.h>
18 #include <debug.h>
19 
20 /*
21     Provide a driver interface consisting of functions for handling DRM
22     protected content
23 */
24 /*
25  * @unimplemented
26  */
27 NTSTATUS
28 NTAPI
DrmAddContentHandlers(IN ULONG ContentId,IN PVOID * paHandlers,IN ULONG NumHandlers)29 DrmAddContentHandlers(
30     IN  ULONG ContentId,
31     IN  PVOID *paHandlers,
32     IN  ULONG NumHandlers)
33 {
34     UNIMPLEMENTED;
35     return STATUS_UNSUCCESSFUL;
36 }
37 
38 /*
39     Creates a DRM content ID to identify a KS audio stream containing
40     mixed content from several input streams.
41 */
42 /*
43  * @unimplemented
44  */
45 NTSTATUS
46 NTAPI
DrmCreateContentMixed(IN PULONG paContentId,IN ULONG cContentId,OUT PULONG pMixedContentId)47 DrmCreateContentMixed(
48     IN  PULONG paContentId,
49     IN  ULONG cContentId,
50     OUT PULONG pMixedContentId)
51 {
52     UNIMPLEMENTED;
53     return STATUS_UNSUCCESSFUL;
54 }
55 
56 /*
57     Deletes a DRM content ID.
58 */
59 /*
60  * @unimplemented
61  */
62 NTSTATUS
63 NTAPI
DrmDestroyContent(IN ULONG ContentId)64 DrmDestroyContent(
65     IN  ULONG ContentId)
66 {
67     UNIMPLEMENTED;
68     return STATUS_UNSUCCESSFUL;
69 }
70 
71 /*
72     Authenticates a driver, then passes it the DRM content ID, along with
73     the content rights which have been assigned to a stream.
74 */
75 /*
76  * @unimplemented
77  */
78 NTSTATUS
79 NTAPI
DrmForwardContentToDeviceObject(IN ULONG ContentId,IN PVOID Reserved,IN PCDRMFORWARD DrmForward)80 DrmForwardContentToDeviceObject(
81     IN  ULONG ContentId,
82     IN  PVOID Reserved,
83     IN  PCDRMFORWARD DrmForward)
84 {
85     UNIMPLEMENTED;
86     return STATUS_UNSUCCESSFUL;
87 }
88 
89 /*
90     Obsolete because it forces the system to run at a lower DRM security
91     level. Returns STATUS_NOT_IMPLEMENTED if a pin associated with
92     FileObject doesnt support the rights assigned to ContentId.
93 */
94 /*
95  * @unimplemented
96  */
97 NTSTATUS
98 NTAPI
DrmForwardContentToFileObject(IN ULONG ContentId,IN PFILE_OBJECT FileObject)99 DrmForwardContentToFileObject(
100     IN  ULONG ContentId,
101     IN  PFILE_OBJECT FileObject)
102 {
103     UNIMPLEMENTED;
104     return STATUS_UNSUCCESSFUL;
105 }
106 
107 /*
108     Similar to DrmForwardContentToDeviceObject, except this works with a driver
109     object rather than just a driver.
110 */
111 /*
112  * @unimplemented
113  */
114 NTSTATUS
115 NTAPI
DrmForwardContentToInterface(IN ULONG ContentId,IN PUNKNOWN pUnknown,IN ULONG NumMethods)116 DrmForwardContentToInterface(
117     IN  ULONG ContentId,
118     IN  PUNKNOWN pUnknown,
119     IN  ULONG NumMethods)
120 {
121     UNIMPLEMENTED;
122     return STATUS_UNSUCCESSFUL;
123 }
124 
125 /*
126     Retrieves DRM Content rights that have been assigned to a DRM Content ID.
127 */
128 /*
129  * @unimplemented
130  */
131 NTSTATUS
132 NTAPI
DrmGetContentRights(IN ULONG ContentId,OUT PDRMRIGHTS DrmRights)133 DrmGetContentRights(
134     IN  ULONG ContentId,
135     OUT PDRMRIGHTS DrmRights)
136 {
137     UNIMPLEMENTED;
138     return STATUS_UNSUCCESSFUL;
139 }
140