ReactOS  0.4.14-dev-583-g2a1ba2c
drmk.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DRMFORWARD
 
struct  DRMRIGHTS
 

Macros

#define INTERFACE   IDrmAudioStream
 
#define IMP_IDrmAudioStream
 

Typedefs

typedef struct DRMFORWARDPDRMFORWARD
 
typedef struct DRMFORWARDPCDRMFORWARD
 
typedef struct DRMRIGHTSPDRMRIGHTS
 
typedef const DRMRIGHTSPCDRMRIGHTS
 
typedef IDrmAudioStream * PDRMAUDIOSTREAM
 

Functions

 _IRQL_requires_max_ (PASSIVE_LEVEL) NTSTATUS NTAPI DrmAddContentHandlers(_In_ ULONG ContentId
 
 _In_reads_ (NumHandlers) PVOID *paHandlers
 
NTSTATUS NTAPI DrmForwardContentToDeviceObject (_In_ ULONG ContentId, _In_opt_ PVOID Reserved, _In_ PCDRMFORWARD DrmForward)
 
 DEFINE_GUID (IID_IDrmAudioStream, 0x1915c967, 0x3299, 0x48cb, 0xa3, 0xe4, 0x69, 0xfd, 0x1d, 0x1b, 0x30, 0x6e)
 
 DECLARE_INTERFACE_ (IDrmAudioStream, IUnknown)
 

Variables

_In_ ULONG NumHandlers
 
_In_ ULONG cContentId
 
_In_ ULONG _Out_ PULONG pMixedContentId
 
_In_ PFILE_OBJECT FileObject
 
_In_ PUNKNOWN pUnknown
 
_In_ PUNKNOWN _In_ ULONG NumMethods
 
_Out_ PDRMRIGHTS DrmRights
 

Macro Definition Documentation

◆ IMP_IDrmAudioStream

#define IMP_IDrmAudioStream
Value:
STDMETHODIMP_(NTSTATUS) SetContentId( \
_In_ ULONG ContentId, \
#define STDMETHODIMP_(t)
Definition: basetyps.h:44
Definition: drmk.h:18
LONG NTSTATUS
Definition: precomp.h:26
#define _In_
Definition: no_sal2.h:204
unsigned int ULONG
Definition: retypes.h:1
_Out_ PDRMRIGHTS DrmRights
Definition: drmk.h:84

Definition at line 111 of file drmk.h.

◆ INTERFACE

#define INTERFACE   IDrmAudioStream

Definition at line 94 of file drmk.h.

Typedef Documentation

◆ PCDRMFORWARD

◆ PCDRMRIGHTS

Definition at line 24 of file drmk.h.

◆ PDRMAUDIOSTREAM

typedef IDrmAudioStream* PDRMAUDIOSTREAM

Definition at line 107 of file drmk.h.

◆ PDRMFORWARD

◆ PDRMRIGHTS

Function Documentation

◆ _In_reads_()

_In_reads_ ( NumHandlers  )

◆ _IRQL_requires_max_()

_IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
smooth NULL
Definition: ftsmooth.c:416
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2932
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ DECLARE_INTERFACE_()

DECLARE_INTERFACE_ ( IDrmAudioStream  ,
IUnknown   
)

Definition at line 96 of file drmk.h.

96  {
98  _In_ REFIID InterfaceId,
100  ) PURE;
103  STDMETHOD_(NTSTATUS,SetContentId)(THIS_
104  _In_ ULONG ContentId,
106  ) PURE;
107 };
Definition: drmk.h:18
#define REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
_In_ BOOLEAN Release
Definition: classpnp.h:929
#define THIS
Definition: basetyps.h:66
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
#define _Out_
Definition: no_sal2.h:323
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:359
#define _In_
Definition: no_sal2.h:204
#define PURE
Definition: basetyps.h:64
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
unsigned int ULONG
Definition: retypes.h:1
_Out_ PDRMRIGHTS DrmRights
Definition: drmk.h:84
#define STDMETHOD_(t, m)
Definition: basetyps.h:63

◆ DEFINE_GUID()

DEFINE_GUID ( IID_IDrmAudioStream  ,
0x1915c967  ,
0x3299  ,
0x48cb  ,
0xa3  ,
0xe4  ,
0x69  ,
0xfd  ,
0x1d  ,
0x1b  ,
0x30  ,
0x6e   
)

◆ DrmForwardContentToDeviceObject()

NTSTATUS NTAPI DrmForwardContentToDeviceObject ( _In_ ULONG  ContentId,
_In_opt_ PVOID  Reserved,
_In_ PCDRMFORWARD  DrmForward 
)

Variable Documentation

◆ cContentId

_In_ ULONG cContentId

Definition at line 48 of file drmk.h.

Referenced by PcCreateContentMixed().

◆ DrmRights

_Out_ PDRMRIGHTS DrmRights

Definition at line 84 of file drmk.h.

Referenced by DECLARE_INTERFACE_(), and PcGetContentRights().

◆ FileObject

_In_ PFILE_OBJECT FileObject

Definition at line 69 of file drmk.h.

◆ NumHandlers

_In_ ULONG NumHandlers

Definition at line 41 of file drmk.h.

Referenced by DECLARE_INTERFACE_(), and PcAddContentHandlers().

◆ NumMethods

_In_ PUNKNOWN _In_ ULONG NumMethods

Definition at line 76 of file drmk.h.

◆ pMixedContentId

_In_ ULONG _Out_ PULONG pMixedContentId

Definition at line 48 of file drmk.h.

Referenced by PcCreateContentMixed().

◆ pUnknown