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