You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
980 B
33 lines
980 B
#ifndef VRoot_h
|
|
#define VRoot_h
|
|
|
|
// KS "Validation Root"
|
|
// Functions called to kick off the graph validation process, and provide
|
|
// the proving and validation functions for DRMK itself.
|
|
|
|
class VRoot: public IDrmAudioStream{
|
|
public:
|
|
VRoot();
|
|
DRM_STATUS initiateValidation(PFILE_OBJECT OutPinFileObject, PDEVICE_OBJECT OutPinDeviceObject, DWORD StreamId);
|
|
DRM_STATUS initiateValidation(IUnknown* OutPin, DWORD StreamId);
|
|
static NTSTATUS MyProvingFunction(PVOID AudioObject, PVOID DrmContext);
|
|
NTSTATUS provingFunction(PVOID DrmContext);
|
|
// IUnknown
|
|
STDMETHODIMP QueryInterface(REFIID, void **);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
IMP_IDrmAudioStream;
|
|
protected:
|
|
DWORD myStreamId;
|
|
|
|
// OutPin is FILE_OBJECT or IUnknown
|
|
enum OutPinType{IsUndefined, IsFileObject, IsCOM};
|
|
PFILE_OBJECT outPinFileObject;
|
|
PDEVICE_OBJECT outPinDeviceObject;
|
|
IUnknown* outPinUnk;
|
|
OutPinType outPinType;
|
|
};
|
|
|
|
|
|
#endif
|