Mercurial > games > semicongine
diff fuhtark_test/include/ddk/drmk.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/ddk/drmk.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,117 @@ +/* + ReactOS Kernel Streaming + Digital Rights Management + + Author: Andrew Greenwood +*/ + +#ifndef DRMK_H +#define DRMK_H + +typedef struct +{ + DWORD Flags; + PDEVICE_OBJECT DeviceObject; + PFILE_OBJECT FileObject; + PVOID Context; +} DRMFORWARD, *PDRMFORWARD, *PCDRMFORWARD; + +typedef struct +{ + BOOL CopyProtect; + ULONG Reserved; + BOOL DigitalOutputDisable; +} DRMRIGHTS, *PDRMRIGHTS; + +typedef const DRMRIGHTS *PCDRMRIGHTS; + +/* =============================================================== + Digital Rights Management Functions + TODO: Check calling convention +*/ + +#ifdef __cplusplus +extern "C" +{ +#endif + +NTSTATUS +NTAPI +DrmAddContentHandlers( + IN ULONG ContentId, + IN PVOID *paHandlers, + IN ULONG NumHandlers); + +NTSTATUS +NTAPI +DrmCreateContentMixed( + IN PULONG paContentId, + IN ULONG cContentId, + OUT PULONG pMixedContentId); + +NTSTATUS +NTAPI +DrmDestroyContent( + IN ULONG ContentId); + +NTSTATUS +NTAPI +DrmForwardContentToDeviceObject( + IN ULONG ContentId, + IN PVOID Reserved, + IN PCDRMFORWARD DrmForward); + +NTSTATUS +NTAPI +DrmForwardContentToFileObject( + IN ULONG ContentId, + IN PFILE_OBJECT FileObject); + +NTSTATUS +NTAPI +DrmForwardContentToInterface( + IN ULONG ContentId, + IN PUNKNOWN pUnknown, + IN ULONG NumMethods); + +NTSTATUS +NTAPI +DrmGetContentRights( + IN ULONG ContentId, + OUT PDRMRIGHTS DrmRights); + +#ifdef __cplusplus +} +#endif + + + +DEFINE_GUID(IID_IDrmAudioStream, + 0x1915c967, 0x3299, 0x48cb, 0xa3, 0xe4, 0x69, 0xfd, 0x1d, 0x1b, 0x30, 0x6e); + +#undef INTERFACE +#define INTERFACE IDrmAudioStream + +DECLARE_INTERFACE_(IDrmAudioStream, IUnknown) +{ + STDMETHOD_(NTSTATUS, QueryInterface)(THIS_ + REFIID InterfaceId, + PVOID* Interface + ) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + STDMETHOD_(NTSTATUS,SetContentId)(THIS_ + IN ULONG ContentId, + IN PCDRMRIGHTS DrmRights) PURE; +}; + +typedef IDrmAudioStream *PDRMAUDIOSTREAM; + +#define IMP_IDrmAudioStream \ + STDMETHODIMP_(NTSTATUS) SetContentId \ + ( IN ULONG ContentId, \ + IN PCDRMRIGHTS DrmRights \ + ); + + +#endif
