source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ddk/drmk.h@ 1186

Last change on this file since 1186 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 2.1 KB
Line 
1/*
2 ReactOS Kernel Streaming
3 Digital Rights Management
4
5 Author: Andrew Greenwood
6*/
7
8#ifndef DRMK_H
9#define DRMK_H
10
11typedef struct {
12 DWORD Flags;
13 PDEVICE_OBJECT DeviceObject;
14 PFILE_OBJECT FileObject;
15 PVOID Context;
16} DRMFORWARD, *PDRMFORWARD, *PCDRMFORWARD;
17
18typedef struct {
19 BOOL CopyProtect;
20 ULONG Reserved;
21 BOOL DigitalOutputDisable;
22} DRMRIGHTS, *PDRMRIGHTS;
23
24typedef const DRMRIGHTS *PCDRMRIGHTS;
25
26/* ===============================================================
27 Digital Rights Management Functions
28 TODO: Check calling convention
29*/
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35NTSTATUS
36NTAPI
37DrmAddContentHandlers(
38 IN ULONG ContentId,
39 IN PVOID *paHandlers,
40 IN ULONG NumHandlers);
41
42NTSTATUS
43NTAPI
44DrmCreateContentMixed(
45 IN PULONG paContentId,
46 IN ULONG cContentId,
47 OUT PULONG pMixedContentId);
48
49NTSTATUS
50NTAPI
51DrmDestroyContent(
52 IN ULONG ContentId);
53
54NTSTATUS
55NTAPI
56DrmForwardContentToDeviceObject(
57 IN ULONG ContentId,
58 IN PVOID Reserved,
59 IN PCDRMFORWARD DrmForward);
60
61NTSTATUS
62NTAPI
63DrmForwardContentToFileObject(
64 IN ULONG ContentId,
65 IN PFILE_OBJECT FileObject);
66
67NTSTATUS
68NTAPI
69DrmForwardContentToInterface(
70 IN ULONG ContentId,
71 IN PUNKNOWN pUnknown,
72 IN ULONG NumMethods);
73
74NTSTATUS
75NTAPI
76DrmGetContentRights(
77 IN ULONG ContentId,
78 OUT PDRMRIGHTS DrmRights);
79
80#ifdef __cplusplus
81}
82#endif
83
84
85DEFINE_GUID(IID_IDrmAudioStream,
86 0x1915c967, 0x3299, 0x48cb, 0xa3, 0xe4, 0x69, 0xfd, 0x1d, 0x1b, 0x30, 0x6e);
87
88#undef INTERFACE
89#define INTERFACE IDrmAudioStream
90
91DECLARE_INTERFACE_(IDrmAudioStream, IUnknown)
92{
93 STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
94 REFIID InterfaceId,
95 PVOID* Interface
96 ) PURE;
97 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
98 STDMETHOD_(ULONG,Release)(THIS) PURE;
99 STDMETHOD_(NTSTATUS,SetContentId)(THIS_
100 IN ULONG ContentId,
101 IN PCDRMRIGHTS DrmRights) PURE;
102};
103
104typedef IDrmAudioStream *PDRMAUDIOSTREAM;
105
106#define IMP_IDrmAudioStream \
107 STDMETHODIMP_(NTSTATUS) SetContentId \
108 ( IN ULONG ContentId, \
109 IN PCDRMRIGHTS DrmRights \
110 );
111
112
113#endif /* DRMK_H */
114
Note: See TracBrowser for help on using the repository browser.