ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

drmk.h
Go to the documentation of this file.
00001 /*
00002     ReactOS Kernel Streaming
00003     Digital Rights Management
00004 
00005     Author: Andrew Greenwood
00006 */
00007 
00008 #ifndef DRMK_H
00009 #define DRMK_H
00010 
00011 typedef struct {
00012   DWORD Flags;
00013   PDEVICE_OBJECT DeviceObject;
00014   PFILE_OBJECT FileObject;
00015   PVOID Context;
00016 } DRMFORWARD, *PDRMFORWARD, *PCDRMFORWARD;
00017 
00018 typedef struct {
00019   BOOL CopyProtect;
00020   ULONG Reserved;
00021   BOOL DigitalOutputDisable;
00022 } DRMRIGHTS, *PDRMRIGHTS;
00023 
00024 typedef const DRMRIGHTS *PCDRMRIGHTS;
00025 
00026 /* ===============================================================
00027     Digital Rights Management Functions
00028     TODO: Check calling convention
00029 */
00030 
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034 
00035 _IRQL_requires_max_(PASSIVE_LEVEL)
00036 NTSTATUS
00037 NTAPI
00038 DrmAddContentHandlers(
00039   _In_ ULONG ContentId,
00040   _In_reads_(NumHandlers) PVOID *paHandlers,
00041   _In_ ULONG NumHandlers);
00042 
00043 _IRQL_requires_max_(PASSIVE_LEVEL)
00044 NTSTATUS
00045 NTAPI
00046 DrmCreateContentMixed(
00047   _In_ PULONG paContentId,
00048   _In_ ULONG cContentId,
00049   _Out_ PULONG pMixedContentId);
00050 
00051 _IRQL_requires_max_(PASSIVE_LEVEL)
00052 NTSTATUS
00053 NTAPI
00054 DrmDestroyContent(
00055   _In_ ULONG ContentId);
00056 
00057 NTSTATUS
00058 NTAPI
00059 DrmForwardContentToDeviceObject(
00060   _In_ ULONG ContentId,
00061   _In_opt_ PVOID Reserved,
00062   _In_ PCDRMFORWARD DrmForward);
00063 
00064 _IRQL_requires_max_(PASSIVE_LEVEL) 
00065 NTSTATUS
00066 NTAPI
00067 DrmForwardContentToFileObject(
00068   _In_ ULONG ContentId,
00069   _In_ PFILE_OBJECT FileObject);
00070 
00071 _IRQL_requires_max_(PASSIVE_LEVEL)
00072 NTSTATUS
00073 NTAPI
00074 DrmForwardContentToInterface(
00075   _In_ ULONG ContentId,
00076   _In_ PUNKNOWN pUnknown,
00077   _In_ ULONG NumMethods);
00078 
00079 _IRQL_requires_max_(PASSIVE_LEVEL)
00080 NTSTATUS
00081 NTAPI
00082 DrmGetContentRights(
00083   _In_ ULONG ContentId,
00084   _Out_ PDRMRIGHTS DrmRights);
00085 
00086 #ifdef __cplusplus
00087 }
00088 #endif
00089 
00090 DEFINE_GUID(IID_IDrmAudioStream,
00091   0x1915c967, 0x3299, 0x48cb, 0xa3, 0xe4, 0x69, 0xfd, 0x1d, 0x1b, 0x30, 0x6e);
00092 
00093 #undef INTERFACE
00094 #define INTERFACE IDrmAudioStream
00095 
00096 DECLARE_INTERFACE_(IDrmAudioStream, IUnknown) {
00097   STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
00098     _In_ REFIID InterfaceId,
00099     _Out_ PVOID* Interface
00100   ) PURE;
00101   STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00102   STDMETHOD_(ULONG,Release)(THIS) PURE;
00103   STDMETHOD_(NTSTATUS,SetContentId)(THIS_
00104     _In_ ULONG ContentId,
00105     _In_ PCDRMRIGHTS DrmRights
00106   ) PURE;
00107 };
00108 
00109 typedef IDrmAudioStream *PDRMAUDIOSTREAM;
00110 
00111 #define IMP_IDrmAudioStream             \
00112   STDMETHODIMP_(NTSTATUS) SetContentId( \
00113     _In_ ULONG ContentId,                 \
00114     _In_ PCDRMRIGHTS DrmRights);
00115 
00116 #endif /* DRMK_H */

Generated on Sun May 27 2012 04:29:57 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.