mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 18:13:03 +00:00
Further stubbing of Kernel Streaming APIs:
KS.SYS PORTCLS.SYS svn path=/trunk/; revision=25114
This commit is contained in:
parent
0fe6b951ac
commit
c7765a6c6c
14 changed files with 577 additions and 3917 deletions
|
@ -8,9 +8,6 @@
|
||||||
This is mostly incomplete at the moment.
|
This is mostly incomplete at the moment.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--directory name="wdmaud">
|
|
||||||
<xi:include href="wdmaud/wdmaud.rbuild" />
|
|
||||||
</directory-->
|
|
||||||
<directory name="ks">
|
<directory name="ks">
|
||||||
<xi:include href="ks/ks.rbuild" />
|
<xi:include href="ks/ks.rbuild" />
|
||||||
</directory>
|
</directory>
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
/*
|
|
||||||
ReactOS Kernel Streaming
|
|
||||||
Digital Rights Management
|
|
||||||
|
|
||||||
Author: Andrew Greenwood
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef DRMK_H
|
|
||||||
#define DRMK_H
|
|
||||||
|
|
||||||
#include <haxor.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;
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Digital Rights Management Functions
|
|
||||||
TODO: Check calling convention
|
|
||||||
*/
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmAddContentHandlers(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PVOID *paHandlers,
|
|
||||||
IN ULONG NumHandlers);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmCreateContentMixed(
|
|
||||||
IN PULONG paContentId,
|
|
||||||
IN ULONG cContentId,
|
|
||||||
OUT PULONG pMixedContentId);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmDestroyContent(
|
|
||||||
IN ULONG ContentId);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmForwardContentToDeviceObject(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PVOID Reserved,
|
|
||||||
IN PCDRMFORWARD DrmForward);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmForwardContentToFileObject(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PFILE_OBJECT FileObject);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmForwardContentToInterface(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PUNKNOWN pUnknown,
|
|
||||||
IN ULONG NumMethods);
|
|
||||||
|
|
||||||
NTSTATUS
|
|
||||||
DrmGetContentRights(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
OUT PDRMRIGHTS DrmRights);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,597 +0,0 @@
|
||||||
/*
|
|
||||||
ReactOS Kernel Streaming
|
|
||||||
Port Class
|
|
||||||
|
|
||||||
Andrew Greenwood
|
|
||||||
|
|
||||||
NOTE: Obsolete macros are not implemented. For more info:
|
|
||||||
http://www.osronline.com/ddkx/stream/audpc-struct_167n.htm
|
|
||||||
|
|
||||||
|
|
||||||
== EXPORTS ==
|
|
||||||
DRM:
|
|
||||||
* PcAddContentHandlers
|
|
||||||
* PcCreateContentMixed
|
|
||||||
* PcDestroyContent
|
|
||||||
* PcForwardContentToDeviceObject
|
|
||||||
* PcForwardContentToFileObject
|
|
||||||
* PcForwardContentToInterface
|
|
||||||
* PcGetContentRights
|
|
||||||
|
|
||||||
IRP HANDLING:
|
|
||||||
* PcCompleteIrp
|
|
||||||
* PcDispatchIrp
|
|
||||||
* PcForwardIrpSynchronous
|
|
||||||
|
|
||||||
ADAPTER:
|
|
||||||
* PcAddAdapterDevice
|
|
||||||
* PcInitializeAdapterDriver
|
|
||||||
|
|
||||||
FACTORIES:
|
|
||||||
* PcNewDmaChannel
|
|
||||||
* PcNewInterruptSync
|
|
||||||
* PcNewMiniport
|
|
||||||
* PcNewPort
|
|
||||||
* PcNewRegistryKey
|
|
||||||
* PcNewResourceList
|
|
||||||
* PcNewResourceSublist
|
|
||||||
* PcNewServiceGroup
|
|
||||||
|
|
||||||
POWER MANAGEMENT:
|
|
||||||
* PcRegisterAdapterPowerManagement
|
|
||||||
* PcRequestNewPowerState
|
|
||||||
|
|
||||||
PROPERTIES:
|
|
||||||
* PcCompletePendingPropertyRequest
|
|
||||||
* PcGetDeviceProperty
|
|
||||||
|
|
||||||
IO TIMEOUTS:
|
|
||||||
* PcRegisterIoTimeout
|
|
||||||
* PcUnregisterIoTimeout
|
|
||||||
|
|
||||||
PHYSICAL CONNECTIONS:
|
|
||||||
* PcRegisterPhysicalConnection
|
|
||||||
* PcRegisterPhysicalConnectionFromExternal
|
|
||||||
* PcRegisterPhysicalConnectionToExternal
|
|
||||||
|
|
||||||
MISC:
|
|
||||||
* PcGetTimeInterval
|
|
||||||
* PcRegisterSubdevice
|
|
||||||
|
|
||||||
|
|
||||||
== INTERFACES ==
|
|
||||||
IDmaChannel
|
|
||||||
IDmaChannelSlave
|
|
||||||
IDmaOperations
|
|
||||||
IDrmPort
|
|
||||||
IDrmPort2
|
|
||||||
IInterruptSync
|
|
||||||
IMasterClock
|
|
||||||
IPortClsVersion
|
|
||||||
IPortEvents
|
|
||||||
IPreFetchOffset
|
|
||||||
IRegistryKey
|
|
||||||
IResourceList
|
|
||||||
IServiceGroup
|
|
||||||
IServiceSink
|
|
||||||
|
|
||||||
== AUDIO PORT OBJECT INTERFACES ==
|
|
||||||
IPort
|
|
||||||
IPortDMus
|
|
||||||
IPortMidi
|
|
||||||
IPortTopology
|
|
||||||
IPortWaveCyclic
|
|
||||||
IPortWavePci
|
|
||||||
|
|
||||||
== AUDIO MINIPORT OBJECT INTERFACES ==
|
|
||||||
IMiniport
|
|
||||||
IMiniportDMus
|
|
||||||
IMiniportMidi
|
|
||||||
IMiniportTopology
|
|
||||||
IMiniportWaveCyclic
|
|
||||||
IMiniportWavePci
|
|
||||||
|
|
||||||
== AUDIO MINIPORT AUXILIARY INTERFACES ==
|
|
||||||
IMusicTechnology
|
|
||||||
IPinCount
|
|
||||||
|
|
||||||
== AUDIO STREAM OBJECT INTERFACES ==
|
|
||||||
IAllocatorMXF
|
|
||||||
IDrmAudioStream
|
|
||||||
IMiniportMidiStream
|
|
||||||
IMiniportWaveCyclicStream
|
|
||||||
IMiniportWavePciStream
|
|
||||||
IMXF
|
|
||||||
IPortWavePciStream
|
|
||||||
ISynthSinkDMus
|
|
||||||
|
|
||||||
== DIRECTMUSIC USERMODE SYNTH AND SYNTH SINK INTERFACES ==
|
|
||||||
IDirectMusicSynth
|
|
||||||
IDirectMusicSynthSink
|
|
||||||
|
|
||||||
== AUDIO POWER MANAGEMENT INTERFACES ==
|
|
||||||
IAdapterPowerManagement
|
|
||||||
IPowerNotify
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef PORTCLS_H
|
|
||||||
#define PORTCLS_H
|
|
||||||
|
|
||||||
#include <haxor.h>
|
|
||||||
#include <ks.h>
|
|
||||||
#include <drmk.h>
|
|
||||||
|
|
||||||
/* TODO */
|
|
||||||
#define PORTCLASSAPI
|
|
||||||
|
|
||||||
|
|
||||||
const ULONG PCFILTER_NODE = ((ULONG) -1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Class IDs - TODO
|
|
||||||
*/
|
|
||||||
//#define CLSID_PortDMus /* dmusicks.h */
|
|
||||||
#define CLSID_PortMidi
|
|
||||||
#define CLSID_PortTopology
|
|
||||||
#define CLSID_PortWaveCyclic
|
|
||||||
#define CLSID_PortWavePci
|
|
||||||
|
|
||||||
/* first 2 are dmusicks.h */
|
|
||||||
#define CLSID_MiniportDriverDMusUART
|
|
||||||
#define CLSID_MiniportDriverDMusUARTCapture
|
|
||||||
#define CLSID_MiniportDriverFmSynth
|
|
||||||
#define CLSID_MiniportDriverFmSynthWithVol
|
|
||||||
#define CLSID_MiniportDriverUart
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Property Item Flags - TODO
|
|
||||||
*/
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_GET
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_SET
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_DEFAULTVALUES
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_BASICSUPPORT
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_SERIALIZESIZE
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_SERIALIZERAW
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW
|
|
||||||
#define PCPROPERTY_ITEM_FLAG_SERIALIZE
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Event Item Flags - TODO
|
|
||||||
*/
|
|
||||||
#define PCEVENT_ITEM_FLAG_ENABLE
|
|
||||||
#define PCEVENT_ITEM_FLAG_ONESHOT
|
|
||||||
#define PCEVENT_ITEM_FLAG_BASICSUPPORT
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Event Verbs - TODO
|
|
||||||
*/
|
|
||||||
#define PCEVENT_VERB_ADD
|
|
||||||
#define PCEVENT_VERB_REMOVE
|
|
||||||
#define PCEVENT_VERB_SUPPORT
|
|
||||||
#define PCEVENT_VERB_NONE
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Method Item Flags - TODO
|
|
||||||
*/
|
|
||||||
#define PCMETHOD_ITEM_FLAG_MODIFY
|
|
||||||
#define PCMETHOD_ITEM_FLAG_NONE
|
|
||||||
#define PCMETHOD_ITEM_FLAG_READ
|
|
||||||
#define PCMETHOD_ITEM_FLAG_SOURCE
|
|
||||||
#define PCMETHOD_ITEM_FLAG_WRITE
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Method Verbs - TODO
|
|
||||||
*/
|
|
||||||
#define PCMETHOD_ITEM_FLAG_BASICSUPPORT
|
|
||||||
#define PCMETHOD_ITEM_FLAG_SEND
|
|
||||||
#define PCMETHOD_ITEM_FLAG_SETSUPPORT
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Callback Functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct _PCPROPERTY_REQUEST;
|
|
||||||
|
|
||||||
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)(
|
|
||||||
IN struct _PCPROPERTY_REQUEST* PropertyRequest);
|
|
||||||
|
|
||||||
typedef struct _PCPROPERTY_ITEM
|
|
||||||
{
|
|
||||||
const GUID* Set;
|
|
||||||
ULONG Id;
|
|
||||||
ULONG Flags;
|
|
||||||
PCPFNPROPERTY_HANDLER Handler;
|
|
||||||
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
|
|
||||||
|
|
||||||
typedef struct _PCPROPERTY_REQUEST
|
|
||||||
{
|
|
||||||
PUNKNOWN MajorTarget;
|
|
||||||
PUNKNOWN MinorTarget;
|
|
||||||
ULONG Node;
|
|
||||||
const PCPROPERTY_ITEM* PropertyItem;
|
|
||||||
ULONG Verb;
|
|
||||||
ULONG InstanceSize;
|
|
||||||
PVOID Instance;
|
|
||||||
ULONG ValueSize;
|
|
||||||
PVOID Value;
|
|
||||||
PIRP Irp;
|
|
||||||
} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;
|
|
||||||
|
|
||||||
|
|
||||||
struct _PCEVENT_REQUEST;
|
|
||||||
|
|
||||||
typedef NTSTATUS (*PCPFNEVENT_HANDLER)(
|
|
||||||
IN struct _PCEVENT_REQUEST* EventRequest);
|
|
||||||
|
|
||||||
typedef struct _PCEVENT_ITEM
|
|
||||||
{
|
|
||||||
const GUID* Set;
|
|
||||||
ULONG Id;
|
|
||||||
ULONG Flags;
|
|
||||||
PCPFNEVENT_HANDLER Handler;
|
|
||||||
} PCEVENT_ITEM, *PPCEVENT_ITEM;
|
|
||||||
|
|
||||||
typedef struct _PCEVENT_REQUEST
|
|
||||||
{
|
|
||||||
PUNKNOWN MajorTarget;
|
|
||||||
PUNKNOWN MinorTarget;
|
|
||||||
ULONG Node;
|
|
||||||
const PCEVENT_ITEM* EventItem;
|
|
||||||
PKSEVENT_ENTRY EventEntry;
|
|
||||||
ULONG Verb;
|
|
||||||
PIRP Irp;
|
|
||||||
} PCEVENT_REQUEST, *PPCEVENT_REQUEST;
|
|
||||||
|
|
||||||
|
|
||||||
struct _PCMETHOD_REQUEST;
|
|
||||||
|
|
||||||
typedef NTSTATUS (*PCPFNMETHOD_HANDLER)(
|
|
||||||
IN struct _PCMETHOD_REQUEST* MethodRequest);
|
|
||||||
|
|
||||||
typedef struct _PCMETHOD_ITEM
|
|
||||||
{
|
|
||||||
const GUID* Set;
|
|
||||||
ULONG Id;
|
|
||||||
ULONG Flags;
|
|
||||||
PCPFNMETHOD_HANDLER Handler;
|
|
||||||
} PCMETHOD_ITEM, *PPCMETHOD_ITEM;
|
|
||||||
|
|
||||||
typedef struct _PCMETHOD_REQUEST
|
|
||||||
{
|
|
||||||
PUNKNOWN MajorTarget;
|
|
||||||
PUNKNOWN MinorTarget;
|
|
||||||
ULONG Node;
|
|
||||||
const PCMETHOD_ITEM* MethodItem;
|
|
||||||
ULONG Verb;
|
|
||||||
} PCMETHOD_REQUEST, *PPCMETHOD_REQUEST;
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Structures (unsorted)
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
ULONG PropertyItemSize;
|
|
||||||
ULONG PropertyCount;
|
|
||||||
const PCPROPERTY_ITEM* Properties;
|
|
||||||
ULONG MethodItemSize;
|
|
||||||
ULONG MethodCount;
|
|
||||||
const PCMETHOD_ITEM* Methods;
|
|
||||||
ULONG EventItemSize;
|
|
||||||
ULONG EventCount;
|
|
||||||
const PCEVENT_ITEM* Events;
|
|
||||||
ULONG Reserved;
|
|
||||||
} PCAUTOMATION_TABLE, *PPCAUTOMATION_TABLE;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
ULONG FromNode;
|
|
||||||
ULONG FromNodePin;
|
|
||||||
ULONG ToNode;
|
|
||||||
ULONG ToNodePin;
|
|
||||||
} PCCONNECTION_DESCRIPTOR, *PPCCONNECTIONDESCRIPTOR;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
ULONG MaxGlobalInstanceCount;
|
|
||||||
ULONG MaxFilterInstanceCount;
|
|
||||||
ULONG MinFilterInstanceCount;
|
|
||||||
const PCAUTOMATION_TABLE* AutomationTable;
|
|
||||||
KSPIN_DESCRIPTOR KsPinDescriptor;
|
|
||||||
} PCPIN_DESCRIPTOR, *PPCPIN_DESCRIPTOR;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
ULONG Flags;
|
|
||||||
const PCAUTOMATION_TABLE* AutomationTable;
|
|
||||||
const GUID* Type;
|
|
||||||
const GUID* Name;
|
|
||||||
} PCNODE_DESCRIPTOR, *PPCNODE_DESCRIPTOR;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
ULONG Version;
|
|
||||||
const PCAUTOMATION_TABLE* AutomationTable;
|
|
||||||
ULONG PinSize;
|
|
||||||
ULONG PinCount;
|
|
||||||
const PCPIN_DESCRIPTOR* Pins;
|
|
||||||
ULONG NodeSize;
|
|
||||||
ULONG NodeCount;
|
|
||||||
const PCNODE_DESCRIPTOR* Nodes;
|
|
||||||
ULONG ConnectionCount;
|
|
||||||
const PCCONNECTION_DESCRIPTOR* Connections;
|
|
||||||
ULONG CategoryCount;
|
|
||||||
const GUID* Categories;
|
|
||||||
} PCFILTER_DESCRIPTOR, *PPCFILTER_DESCRIPTOR;
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
IPort Interface
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
/* TODO */
|
|
||||||
} IPort;
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
PortCls API Functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef NTSTATUS (*PCPFNSTARTDEVICE)(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PIRP Irp,
|
|
||||||
IN PRESOURCELIST ResourceList);
|
|
||||||
|
|
||||||
/* This should be in NTDDK.H */
|
|
||||||
typedef NTSTATUS (*PDRIVER_ADD_DEVICE)(
|
|
||||||
IN struct _DRIVER_OBJECT* DriverObject,
|
|
||||||
IN struct _DEVICE_OBJECT* PhysicalDeviceObject);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcAddAdapterDevice(
|
|
||||||
IN PDRIVER_OBJECT DriverObject,
|
|
||||||
IN PDEVICE_OBJECT PhysicalDeviceObject,
|
|
||||||
IN PCPFNSTARTDEVICE StartDevice,
|
|
||||||
IN ULONG MaxObjects,
|
|
||||||
IN ULONG DeviceExtensionSize);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcInitializeAdapterDriver(
|
|
||||||
IN PDRIVER_OBJECT DriverObject,
|
|
||||||
IN PUNICODE_STRING RegistryPathName,
|
|
||||||
IN PDRIVER_ADD_DEVICE AddDevice);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Factories (TODO: Move elsewhere)
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewDmaChannel(
|
|
||||||
OUT PDMACHANNEL* OutDmaChannel,
|
|
||||||
IN PUNKNOWN OuterUnknown OPTIONAL,
|
|
||||||
IN POOL_TYPE PoolType,
|
|
||||||
IN PDEVICE_DESCRIPTION DeviceDescription,
|
|
||||||
IN PDEVICE_OBJECT DeviceObject);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewInterruptSync(
|
|
||||||
OUT PINTERRUPTSYNC* OUtInterruptSync,
|
|
||||||
IN PUNKNOWN OuterUnknown OPTIONAL,
|
|
||||||
IN PRESOURCELIST ResourceList,
|
|
||||||
IN ULONG ResourceIndex,
|
|
||||||
IN INTERRUPTSYNCMODE Mode);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewMiniport(
|
|
||||||
OUT PMINIPORT* OutMiniport,
|
|
||||||
IN REFCLSID ClassId);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewPort(
|
|
||||||
OUT PPORT* OutPort,
|
|
||||||
IN REFCLSID ClassId);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewRegistryKey(
|
|
||||||
OUT PREGISTRYKEY* OutRegistryKey,
|
|
||||||
IN PUNKNOWN OuterUnknown OPTIONAL,
|
|
||||||
IN ULONG RegistryKeyType,
|
|
||||||
IN ACCESS_MASK DesiredAccess,
|
|
||||||
IN PVOID DeviceObject OPTIONAL,
|
|
||||||
IN PVOID SubDevice OPTIONAL,
|
|
||||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
|
||||||
IN ULONG CreateOptions OPTIONAL,
|
|
||||||
OUT PULONG Disposition OPTIONAL);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewResourceList(
|
|
||||||
OUT PRESOURCELIST* OutResourceList,
|
|
||||||
IN PUNKNOWN OuterUnknown OPTIONAL,
|
|
||||||
IN POOL_TYPE PoolType,
|
|
||||||
IN PCM_RESOURCE_LIST TranslatedResources,
|
|
||||||
IN PCM_RESOURCE_LIST UntranslatedResources);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewResourceSublist(
|
|
||||||
OUT PRESOURCELIST* OutResourceList,
|
|
||||||
IN PUNKNOWN OuterUnknown OPTIONAL,
|
|
||||||
IN POOL_TYPE PoolType,
|
|
||||||
IN PRESOURCELIST ParentList,
|
|
||||||
IN ULONG MaximumEntries);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcNewServiceGroup(
|
|
||||||
OUT PSERVICEGROUP* OutServiceGroup,
|
|
||||||
IN PUNKNOWN OuterUnknown OPTIONAL);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
IRP Handling
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcDispatchirp(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PIRP Irp);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcCompleteIrp(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PIRP Irp,
|
|
||||||
IN NTSTATUS Status);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcForwardIrpSynchronous(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PIRP Irp);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Power Management
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcRegisterAdapterPowerManagement(
|
|
||||||
IN PUNKNOWN pUnknown,
|
|
||||||
IN PVOID pvContext1);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
IN PDEVICE_OBJECT pDeviceObject,
|
|
||||||
IN DEVICE_POWER_STATE RequestedNewState);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Properties
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcGetDeviceProperty(
|
|
||||||
IN PVOID DeviceObject,
|
|
||||||
IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
|
|
||||||
IN ULONG BufferLength,
|
|
||||||
OUT PVOID PropertyBuffer,
|
|
||||||
OUT PULONG ResultLength);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcCompletePendingPropertyRequest(
|
|
||||||
IN PPCPROPERTY_REQUEST PropertyRequest,
|
|
||||||
IN NTSTATUS NtStatus);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
I/O Timeouts
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcRegisterIoTimeout(
|
|
||||||
IN PDEVICE_OBJECT pDeviceObject,
|
|
||||||
IN PIO_TIMER_ROUTINE pTimerRoutine,
|
|
||||||
IN PVOID pContext);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcUnregisterIoTimeout(
|
|
||||||
IN PDEVICE_OBJECT pDeviceObject,
|
|
||||||
IN PIO_TIMER_ROUTINE pTimerRoutine,
|
|
||||||
IN PVOID pContext);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Physical Connections
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcRegisterPhysicalConnection(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PUNKNOWN FromUnknown,
|
|
||||||
IN ULONG FromPin,
|
|
||||||
IN PUNKNOWN ToUnknown,
|
|
||||||
IN ULONG ToPin);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcRegisterPhysicalConnectionFromExternal(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PUNICODE_STRING FromString,
|
|
||||||
IN ULONG FromPin,
|
|
||||||
IN PUNKNOWN ToUnknown,
|
|
||||||
IN ULONG ToPin);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcRegisterPhysicalConnectionToExternal(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PUNKNOWN FromUnknown,
|
|
||||||
IN ULONG FromPin,
|
|
||||||
IN PUNICODE_STRING ToString,
|
|
||||||
IN ULONG ToPin);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Misc
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI ULONGLONG NTAPI
|
|
||||||
PcGetTimeInterval(
|
|
||||||
IN ULONGLONG Since);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcRegisterSubdevice(
|
|
||||||
IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PWCHAR Name,
|
|
||||||
IN PUNKNOWN Unknown);
|
|
||||||
|
|
||||||
|
|
||||||
/* ===============================================================
|
|
||||||
Digital Rights Management Functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcAddContentHandlers(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PVOID *paHandlers,
|
|
||||||
IN ULONG NumHandlers);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcCreateContentMixed(
|
|
||||||
IN PULONG paContentId,
|
|
||||||
IN ULONG cContentId,
|
|
||||||
OUT PULONG pMixedContentId);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcDestroyContent(
|
|
||||||
IN ULONG ContentId);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcForwardContentToDeviceObject(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PVOID Reserved,
|
|
||||||
IN PCDRMFORWARD DrmForward);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcForwardContentToFileObject(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PFILE_OBJECT FileObject);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcForwardContentToInterface(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
IN PUNKNOWN pUnknown,
|
|
||||||
IN ULONG NumMethods);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS NTAPI
|
|
||||||
PcGetContentRights(
|
|
||||||
IN ULONG ContentId,
|
|
||||||
OUT PDRMRIGHTS DrmRights);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -6,6 +6,7 @@
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<define name="__USE_W32API" />
|
<define name="__USE_W32API" />
|
||||||
<define name="BUILDING_KS" />
|
<define name="BUILDING_KS" />
|
||||||
|
<file>ks.rc</file>
|
||||||
<file>allocators.c</file>
|
<file>allocators.c</file>
|
||||||
<file>clocks.c</file>
|
<file>clocks.c</file>
|
||||||
<file>connectivity.c</file>
|
<file>connectivity.c</file>
|
||||||
|
|
5
reactos/drivers/multimedia/ks/ks.rc
Normal file
5
reactos/drivers/multimedia/ks/ks.rc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define REACTOS_VERSION_DLL
|
||||||
|
#define REACTOS_STR_FILE_DESCRIPTION "Kernel Streaming API\0"
|
||||||
|
#define REACTOS_STR_INTERNAL_NAME "ks\0"
|
||||||
|
#define REACTOS_STR_ORIGINAL_FILENAME "ks.sys\0"
|
||||||
|
#include <reactos/version.rc>
|
87
reactos/drivers/multimedia/portcls/adapter.c
Normal file
87
reactos/drivers/multimedia/portcls/adapter.c
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
/*
|
||||||
|
ReactOS Kernel Streaming
|
||||||
|
Port Class API: Adapter initialization
|
||||||
|
|
||||||
|
Author: Andrew Greenwood
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <portcls.h>
|
||||||
|
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
PcStartIo(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
/* Internal function */
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
PcUnload(
|
||||||
|
IN PDRIVER_OBJECT DriverObject)
|
||||||
|
{
|
||||||
|
/* Internal function */
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcInitializeAdapterDriver(
|
||||||
|
IN PDRIVER_OBJECT DriverObject,
|
||||||
|
IN PUNICODE_STRING RegistryPathName,
|
||||||
|
IN PDRIVER_ADD_DEVICE AddDevice)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
This is effectively a common DriverEntry function for PortCls drivers.
|
||||||
|
So it has similar responsibilities to a normal driver.
|
||||||
|
|
||||||
|
First 2 parameters are from DriverEntry.
|
||||||
|
Installs the supplied AddDevice routine in the driver object?s driver extension and installs the PortCls driver?s IRP handlers in the driver object itself.
|
||||||
|
*/
|
||||||
|
|
||||||
|
DriverObject->DriverExtension->AddDevice = AddDevice;
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO: (* = implement here, otherwise KS default)
|
||||||
|
IRP_MJ_CLOSE
|
||||||
|
* IRP_MJ_CREATE
|
||||||
|
IRP_MJ_DEVICE_CONTROL
|
||||||
|
IRP_MJ_FLUSH_BUFFERS
|
||||||
|
* IRP_MJ_PNP
|
||||||
|
* IRP_MJ_POWER
|
||||||
|
IRP_MJ_QUERY_SECURITY
|
||||||
|
IRP_MJ_READ
|
||||||
|
IRP_MJ_SET_SECURITY
|
||||||
|
* IRP_MJ_SYSTEM_CONTROL
|
||||||
|
IRP_MJ_WRITE
|
||||||
|
*/
|
||||||
|
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcAddAdapterDevice(
|
||||||
|
IN PDRIVER_OBJECT DriverObject,
|
||||||
|
IN PDEVICE_OBJECT PhysicalDeviceObject,
|
||||||
|
IN PCPFNSTARTDEVICE StartDevice,
|
||||||
|
IN ULONG MaxObjects,
|
||||||
|
IN ULONG DeviceExtensionSize)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Note - after this has been called, we can
|
||||||
|
handle IRP_MN_START_DEVICE by calling StartDevice
|
||||||
|
*/
|
||||||
|
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
29
reactos/drivers/multimedia/portcls/dll.c
Normal file
29
reactos/drivers/multimedia/portcls/dll.c
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
ReactOS Kernel Streaming
|
||||||
|
Port Class / Library Init and Cleanup
|
||||||
|
|
||||||
|
Author: Andrew Greenwood
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
-
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ntddk.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
ULONG STDCALL
|
||||||
|
DllInitialize(ULONG Unknown)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
ULONG STDCALL
|
||||||
|
DllUnload(VOID)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
73
reactos/drivers/multimedia/portcls/drm.c
Normal file
73
reactos/drivers/multimedia/portcls/drm.c
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
ReactOS Kernel Streaming
|
||||||
|
Port Class / Digital Rights Management
|
||||||
|
|
||||||
|
Author: Andrew Greenwood
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
These are convenience functions for accessing DRM facilities, as
|
||||||
|
documented here:
|
||||||
|
http://www.osronline.com/ddkx/stream/aud-prop_9f77.htm
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <portcls.h>
|
||||||
|
#include <drmk.h>
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcAddContentHandlers(
|
||||||
|
IN ULONG ContentId,
|
||||||
|
IN PVOID *paHandlers,
|
||||||
|
IN ULONG NumHandlers)
|
||||||
|
{
|
||||||
|
return DrmAddContentHandlers(ContentId, paHandlers, NumHandlers);
|
||||||
|
}
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcCreateContentMixed(
|
||||||
|
IN PULONG paContentId,
|
||||||
|
IN ULONG cContentId,
|
||||||
|
OUT PULONG pMixedContentId)
|
||||||
|
{
|
||||||
|
return DrmCreateContentMixed(paContentId, cContentId, pMixedContentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcDestroyContent(
|
||||||
|
IN ULONG ContentId)
|
||||||
|
{
|
||||||
|
return DrmDestroyContent(ContentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcForwardContentToDeviceObject(
|
||||||
|
IN ULONG ContentId,
|
||||||
|
IN PVOID Reserved,
|
||||||
|
IN PCDRMFORWARD DrmForward)
|
||||||
|
{
|
||||||
|
return DrmForwardContentToDeviceObject(ContentId, Reserved, DrmForward);
|
||||||
|
}
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcForwardContentToFileObject(
|
||||||
|
IN ULONG ContentId,
|
||||||
|
IN PFILE_OBJECT FileObject)
|
||||||
|
{
|
||||||
|
return DrmForwardContentToFileObject(ContentId, FileObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcForwardContentToInterface(
|
||||||
|
IN ULONG ContentId,
|
||||||
|
IN PUNKNOWN pUnknown,
|
||||||
|
IN ULONG NumMethods)
|
||||||
|
{
|
||||||
|
return DrmForwardContentToInterface(ContentId, pUnknown, NumMethods);
|
||||||
|
}
|
||||||
|
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcGetContentRights(
|
||||||
|
IN ULONG ContentId,
|
||||||
|
OUT PDRMRIGHTS DrmRights)
|
||||||
|
{
|
||||||
|
return DrmGetContentRights(ContentId, DrmRights);
|
||||||
|
}
|
|
@ -1,489 +0,0 @@
|
||||||
/*
|
|
||||||
* PROJECT: ReactOS Sound System
|
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
|
||||||
* FILE: drivers/multimedia/portcls/portcls.c
|
|
||||||
* PURPOSE: Audio Port Class Functions
|
|
||||||
* PROGRAMMERS:
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "portcls.h"
|
|
||||||
|
|
||||||
|
|
||||||
#define NDEBUG
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
DriverEntry(PDRIVER_OBJECT DriverObject,
|
|
||||||
PUNICODE_STRING RegistryPath)
|
|
||||||
{
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
ULONG STDCALL
|
|
||||||
DllInitialize(ULONG Unknown)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
ULONG STDCALL
|
|
||||||
DllUnload(VOID)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcAddAdapterDevice(
|
|
||||||
ULONG DriverObject,
|
|
||||||
ULONG PhysicalDeviceObject,
|
|
||||||
ULONG StartDevice,
|
|
||||||
ULONG MaxObjects,
|
|
||||||
ULONG DeviceExtensionSize
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcAddContentHandlers(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG paHandlers,
|
|
||||||
ULONG NumHandlers
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcCompleteIrp(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG Irp,
|
|
||||||
ULONG Status
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcCompletePendingPropertyRequest(
|
|
||||||
ULONG PropertyRequest,
|
|
||||||
ULONG NtStatus
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcCreateContentMixed(
|
|
||||||
ULONG paContentId,
|
|
||||||
ULONG cContentId,
|
|
||||||
ULONG pMixedContentId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcDestroyContent(
|
|
||||||
ULONG ContentId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcDispatchIrp(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG Irp
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcForwardContentToDeviceObject(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG Reserved,
|
|
||||||
ULONG DrmForward
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcForwardContentToFileObject(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG FileObject
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcForwardContentToInterface(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG NumMethods
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcForwardIrpSynchronous(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG Irp
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcGetContentRights(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG DrmRights
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcGetDeviceProperty(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG DeviceProperty,
|
|
||||||
ULONG BufferLength,
|
|
||||||
ULONG PropertyBuffer,
|
|
||||||
ULONG ResultLength
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
ULONGLONG STDCALL
|
|
||||||
PcGetTimeInterval(
|
|
||||||
ULONGLONG Timei
|
|
||||||
)
|
|
||||||
{
|
|
||||||
LARGE_INTEGER CurrentTime;
|
|
||||||
|
|
||||||
KeQuerySystemTime( &CurrentTime);
|
|
||||||
|
|
||||||
return (Timei - CurrentTime.QuadPart);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcInitializeAdapterDriver(
|
|
||||||
ULONG DriverObject,
|
|
||||||
ULONG RegistryPathName,
|
|
||||||
ULONG AddDevice
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewDmaChannel(
|
|
||||||
ULONG OutDmaChannel,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG PoolType,
|
|
||||||
ULONG DeviceDescription,
|
|
||||||
ULONG DeviceObject
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewInterruptSync(
|
|
||||||
ULONG OutInterruptSync,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG ResourceList,
|
|
||||||
ULONG ResourceIndex,
|
|
||||||
ULONG Mode
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewMiniport(
|
|
||||||
ULONG OutMiniport,
|
|
||||||
ULONG ClassId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewPort(
|
|
||||||
ULONG OutPort,
|
|
||||||
ULONG ClassId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewRegistryKey(
|
|
||||||
ULONG OutRegistryKey,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG RegistryKeyType,
|
|
||||||
ULONG DesiredAccess,
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG SubDevice,
|
|
||||||
ULONG ObjectAttributes,
|
|
||||||
ULONG CreateOptions,
|
|
||||||
ULONG Disposition
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewResourceList(
|
|
||||||
ULONG OutResourceList,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG PoolType,
|
|
||||||
ULONG TranslatedResources,
|
|
||||||
ULONG UntranslatedResources
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewResourceSublist(
|
|
||||||
ULONG OutResourceList,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG PoolType,
|
|
||||||
ULONG ParentList,
|
|
||||||
ULONG MaximumEntries
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcNewServiceGroup(
|
|
||||||
ULONG OutServiceGroup,
|
|
||||||
ULONG Unknown
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRegisterAdapterPowerManagement(
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG pvContext
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRegisterIoTimeout(
|
|
||||||
ULONG pDeviceObject,
|
|
||||||
ULONG pTimerRoutine,
|
|
||||||
ULONG pContext
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRegisterPhysicalConnection(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG FromUnknown,
|
|
||||||
ULONG FromPin,
|
|
||||||
ULONG ToUnknown,
|
|
||||||
ULONG ToPin
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRegisterPhysicalConnectionFromExternal(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG FromString,
|
|
||||||
ULONG FromPin,
|
|
||||||
ULONG ToUnknown,
|
|
||||||
ULONG ToPin
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRegisterPhysicalConnectionToExternal(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG FromUnknown,
|
|
||||||
ULONG FromPin,
|
|
||||||
ULONG ToString,
|
|
||||||
ULONG ToPin
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRegisterSubdevice(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG SubdevName,
|
|
||||||
ULONG Unknown
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcRequestNewPowerState(
|
|
||||||
ULONG pDeviceObject,
|
|
||||||
ULONG RequestedNewState
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
NTSTATUS STDCALL
|
|
||||||
PcUnregisterIoTimeout(
|
|
||||||
ULONG pDeviceObject,
|
|
||||||
ULONG pTimerRoutine,
|
|
||||||
ULONG pContext
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,21 +2,14 @@
|
||||||
; Exports definition file for portcls.sys
|
; Exports definition file for portcls.sys
|
||||||
;
|
;
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
DllInitialize@4
|
||||||
|
DllUnload@0
|
||||||
|
|
||||||
|
; Adapters (adapter.c)
|
||||||
PcAddAdapterDevice@20
|
PcAddAdapterDevice@20
|
||||||
PcAddContentHandlers@12
|
|
||||||
PcCompleteIrp@12
|
|
||||||
PcCompletePendingPropertyRequest@8
|
|
||||||
PcCreateContentMixed@12
|
|
||||||
PcDestroyContent@4
|
|
||||||
PcDispatchIrp@8
|
|
||||||
PcForwardContentToDeviceObject@12
|
|
||||||
PcForwardContentToFileObject@8
|
|
||||||
PcForwardContentToInterface@12
|
|
||||||
PcForwardIrpSynchronous@8
|
|
||||||
PcGetContentRights@8
|
|
||||||
PcGetDeviceProperty@20
|
|
||||||
PcGetTimeInterval@8
|
|
||||||
PcInitializeAdapterDriver@12
|
PcInitializeAdapterDriver@12
|
||||||
|
|
||||||
|
; Factories
|
||||||
PcNewDmaChannel@20
|
PcNewDmaChannel@20
|
||||||
PcNewInterruptSync@20
|
PcNewInterruptSync@20
|
||||||
PcNewMiniport@8
|
PcNewMiniport@8
|
||||||
|
@ -25,12 +18,38 @@ PcNewRegistryKey@36
|
||||||
PcNewResourceList@20
|
PcNewResourceList@20
|
||||||
PcNewResourceSublist@20
|
PcNewResourceSublist@20
|
||||||
PcNewServiceGroup@8
|
PcNewServiceGroup@8
|
||||||
PcRegisterAdapterPowerManagement@8
|
|
||||||
PcRegisterIoTimeout@12
|
; Digital Rights Management (drm.c)
|
||||||
|
PcAddContentHandlers@12
|
||||||
|
PcCreateContentMixed@12
|
||||||
|
PcDestroyContent@4
|
||||||
|
PcForwardContentToDeviceObject@12
|
||||||
|
PcForwardContentToFileObject@8
|
||||||
|
PcForwardContentToInterface@12
|
||||||
|
PcGetContentRights@8
|
||||||
|
|
||||||
|
; IRP Helpers
|
||||||
|
PcCompleteIrp@12
|
||||||
|
PcDispatchIrp@8
|
||||||
|
PcForwardIrpSynchronous@8
|
||||||
|
|
||||||
|
; Misc
|
||||||
|
PcGetTimeInterval@8
|
||||||
|
PcRegisterSubdevice@12
|
||||||
|
|
||||||
|
; Physical Connections
|
||||||
PcRegisterPhysicalConnection@20
|
PcRegisterPhysicalConnection@20
|
||||||
PcRegisterPhysicalConnectionFromExternal@20
|
PcRegisterPhysicalConnectionFromExternal@20
|
||||||
PcRegisterPhysicalConnectionToExternal@20
|
PcRegisterPhysicalConnectionToExternal@20
|
||||||
PcRegisterSubdevice@12
|
|
||||||
PcRequestNewPowerState@8
|
|
||||||
PcUnregisterIoTimeout@12
|
|
||||||
|
|
||||||
|
; Power Management
|
||||||
|
PcRegisterAdapterPowerManagement@8
|
||||||
|
PcRequestNewPowerState@8
|
||||||
|
|
||||||
|
; Properties
|
||||||
|
PcCompletePendingPropertyRequest@8
|
||||||
|
PcGetDeviceProperty@20
|
||||||
|
|
||||||
|
; Timeouts
|
||||||
|
PcRegisterIoTimeout@12
|
||||||
|
PcUnregisterIoTimeout@12
|
||||||
|
|
|
@ -1,253 +0,0 @@
|
||||||
/*
|
|
||||||
|
|
||||||
Move to w32api when it is ready.
|
|
||||||
|
|
||||||
*/
|
|
||||||
#ifndef _PORTCLS_H
|
|
||||||
#define _PORTCLS_H
|
|
||||||
#if __GNUC__ >=3
|
|
||||||
#pragma GCC system_header
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This header is total bull**** */
|
|
||||||
|
|
||||||
#include <ntddk.h>
|
|
||||||
|
|
||||||
#define PORTCLASSAPI extern
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcAddAdapterDevice(
|
|
||||||
ULONG DriverObject,
|
|
||||||
ULONG PhysicalDeviceObject,
|
|
||||||
ULONG StartDevice,
|
|
||||||
ULONG MaxObjects,
|
|
||||||
ULONG DeviceExtensionSize
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcAddContentHandlers(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG paHandlers,
|
|
||||||
ULONG NumHandlers
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcCompleteIrp(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG Irp,
|
|
||||||
ULONG Status
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcCompletePendingPropertyRequest(
|
|
||||||
ULONG PropertyRequest,
|
|
||||||
ULONG NtStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcCreateContentMixed(
|
|
||||||
ULONG paContentId,
|
|
||||||
ULONG cContentId,
|
|
||||||
ULONG pMixedContentId
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcDestroyContent(
|
|
||||||
ULONG ContentId
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcDispatchIrp(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG Irp
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcForwardContentToDeviceObject(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG Reserved,
|
|
||||||
ULONG DrmForward
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcForwardContentToFileObject(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG FileObject
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcForwardContentToInterface(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG NumMethods
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcForwardIrpSynchronous(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG Irp
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcGetContentRights(
|
|
||||||
ULONG ContentId,
|
|
||||||
ULONG DrmRights
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcGetDeviceProperty(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG DeviceProperty,
|
|
||||||
ULONG BufferLength,
|
|
||||||
ULONG PropertyBuffer,
|
|
||||||
ULONG ResultLength
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI ULONGLONG STDCALL
|
|
||||||
PcGetTimeInterval(
|
|
||||||
ULONGLONG Timei
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcInitializeAdapterDriver(
|
|
||||||
ULONG DriverObject,
|
|
||||||
ULONG RegistryPathName,
|
|
||||||
ULONG AddDevice
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewDmaChannel(
|
|
||||||
ULONG OutDmaChannel,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG PoolType,
|
|
||||||
ULONG DeviceDescription,
|
|
||||||
ULONG DeviceObject
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewInterruptSync(
|
|
||||||
ULONG OutInterruptSync,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG ResourceList,
|
|
||||||
ULONG ResourceIndex,
|
|
||||||
ULONG Mode
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewMiniport(
|
|
||||||
ULONG OutMiniport,
|
|
||||||
ULONG ClassId
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewPort(
|
|
||||||
ULONG OutPort,
|
|
||||||
ULONG ClassId
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewRegistryKey(
|
|
||||||
ULONG OutRegistryKey,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG RegistryKeyType,
|
|
||||||
ULONG DesiredAccess,
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG SubDevice,
|
|
||||||
ULONG ObjectAttributes,
|
|
||||||
ULONG CreateOptions,
|
|
||||||
ULONG Disposition
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewResourceList(
|
|
||||||
ULONG OutResourceList,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG PoolType,
|
|
||||||
ULONG TranslatedResources,
|
|
||||||
ULONG UntranslatedResources
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewResourceSublist(
|
|
||||||
ULONG OutResourceList,
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG PoolType,
|
|
||||||
ULONG ParentList,
|
|
||||||
ULONG MaximumEntries
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcNewServiceGroup(
|
|
||||||
ULONG OutServiceGroup,
|
|
||||||
ULONG Unknown
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRegisterAdapterPowerManagement(
|
|
||||||
ULONG Unknown,
|
|
||||||
ULONG pvContext
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRegisterIoTimeout(
|
|
||||||
ULONG pDeviceObject,
|
|
||||||
ULONG pTimerRoutine,
|
|
||||||
ULONG pContext
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRegisterPhysicalConnection(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG FromUnknown,
|
|
||||||
ULONG FromPin,
|
|
||||||
ULONG ToUnknown,
|
|
||||||
ULONG ToPin
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRegisterPhysicalConnectionFromExternal(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG FromString,
|
|
||||||
ULONG FromPin,
|
|
||||||
ULONG ToUnknown,
|
|
||||||
ULONG ToPin
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRegisterPhysicalConnectionToExternal(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG FromUnknown,
|
|
||||||
ULONG FromPin,
|
|
||||||
ULONG ToString,
|
|
||||||
ULONG ToPin
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRegisterSubdevice(
|
|
||||||
ULONG DeviceObject,
|
|
||||||
ULONG SubdevName,
|
|
||||||
ULONG Unknown
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcRequestNewPowerState(
|
|
||||||
ULONG pDeviceObject,
|
|
||||||
ULONG RequestedNewState
|
|
||||||
);
|
|
||||||
|
|
||||||
PORTCLASSAPI NTSTATUS STDCALL
|
|
||||||
PcUnregisterIoTimeout(
|
|
||||||
ULONG pDeviceObject,
|
|
||||||
ULONG pTimerRoutine,
|
|
||||||
ULONG pContext
|
|
||||||
);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,8 +1,12 @@
|
||||||
<module name="portcls" type="exportdriver" installbase="system32/drivers" installname="portcls.sys">
|
<module name="portcls" type="exportdriver" installbase="system32/drivers" installname="portcls.sys" allowwarnings="true">
|
||||||
<importlibrary definition="portcls.def" />
|
<importlibrary definition="portcls.def" />
|
||||||
<define name="__USE_W32API" />
|
<define name="__USE_W32API" />
|
||||||
|
<include base="portcls">../include</include>
|
||||||
<library>ntoskrnl</library>
|
<library>ntoskrnl</library>
|
||||||
<library>hal</library>
|
<library>drmk</library>
|
||||||
<file>portcls.c</file>
|
<file>dll.c</file>
|
||||||
|
<file>adapter.c</file>
|
||||||
|
<file>drm.c</file>
|
||||||
|
<file>stubs.c</file>
|
||||||
<file>portcls.rc</file>
|
<file>portcls.rc</file>
|
||||||
</module>
|
</module>
|
||||||
|
|
338
reactos/drivers/multimedia/portcls/stubs.c
Normal file
338
reactos/drivers/multimedia/portcls/stubs.c
Normal file
|
@ -0,0 +1,338 @@
|
||||||
|
/*
|
||||||
|
Port Class API
|
||||||
|
Stubbed functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <portcls.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
Factory Stubs
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewDmaChannel(
|
||||||
|
OUT PDMACHANNEL* OutDmaChannel,
|
||||||
|
IN PUNKNOWN OuterUnknown OPTIONAL,
|
||||||
|
IN POOL_TYPE PoolType,
|
||||||
|
IN PDEVICE_DESCRIPTION DeviceDescription,
|
||||||
|
IN PDEVICE_OBJECT DeviceObject)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewInterruptSync(
|
||||||
|
OUT PINTERRUPTSYNC* OUtInterruptSync,
|
||||||
|
IN PUNKNOWN OuterUnknown OPTIONAL,
|
||||||
|
IN PRESOURCELIST ResourceList,
|
||||||
|
IN ULONG ResourceIndex,
|
||||||
|
IN INTERRUPTSYNCMODE Mode)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewMiniport(
|
||||||
|
OUT PMINIPORT* OutMiniport,
|
||||||
|
IN REFCLSID ClassId)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewPort(
|
||||||
|
OUT PPORT* OutPort,
|
||||||
|
IN REFCLSID ClassId)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewRegistryKey(
|
||||||
|
OUT PREGISTRYKEY* OutRegistryKey,
|
||||||
|
IN PUNKNOWN OuterUnknown OPTIONAL,
|
||||||
|
IN ULONG RegistryKeyType,
|
||||||
|
IN ACCESS_MASK DesiredAccess,
|
||||||
|
IN PVOID DeviceObject OPTIONAL,
|
||||||
|
IN PVOID SubDevice OPTIONAL,
|
||||||
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||||
|
IN ULONG CreateOptions OPTIONAL,
|
||||||
|
OUT PULONG Disposition OPTIONAL)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewResourceList(
|
||||||
|
OUT PRESOURCELIST* OutResourceList,
|
||||||
|
IN PUNKNOWN OuterUnknown OPTIONAL,
|
||||||
|
IN POOL_TYPE PoolType,
|
||||||
|
IN PCM_RESOURCE_LIST TranslatedResources,
|
||||||
|
IN PCM_RESOURCE_LIST UntranslatedResources)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewResourceSublist(
|
||||||
|
OUT PRESOURCELIST* OutResourceList,
|
||||||
|
IN PUNKNOWN OuterUnknown OPTIONAL,
|
||||||
|
IN POOL_TYPE PoolType,
|
||||||
|
IN PRESOURCELIST ParentList,
|
||||||
|
IN ULONG MaximumEntries)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcNewServiceGroup(
|
||||||
|
OUT PSERVICEGROUP* OutServiceGroup,
|
||||||
|
IN PUNKNOWN OuterUnknown OPTIONAL)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ===============================================================
|
||||||
|
IRP Handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcDispatchIrp(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcCompleteIrp(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp,
|
||||||
|
IN NTSTATUS Status)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcForwardIrpSynchronous(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ===============================================================
|
||||||
|
Power Management
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRegisterAdapterPowerManagement(
|
||||||
|
IN PUNKNOWN pUnknown,
|
||||||
|
IN PVOID pvContext1)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRequestNewPowerState(
|
||||||
|
IN PDEVICE_OBJECT pDeviceObject,
|
||||||
|
IN DEVICE_POWER_STATE RequestedNewState)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ===============================================================
|
||||||
|
Properties
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcGetDeviceProperty(
|
||||||
|
IN PVOID DeviceObject,
|
||||||
|
IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
|
||||||
|
IN ULONG BufferLength,
|
||||||
|
OUT PVOID PropertyBuffer,
|
||||||
|
OUT PULONG ResultLength)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcCompletePendingPropertyRequest(
|
||||||
|
IN PPCPROPERTY_REQUEST PropertyRequest,
|
||||||
|
IN NTSTATUS NtStatus)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ===============================================================
|
||||||
|
I/O Timeouts
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRegisterIoTimeout(
|
||||||
|
IN PDEVICE_OBJECT pDeviceObject,
|
||||||
|
IN PIO_TIMER_ROUTINE pTimerRoutine,
|
||||||
|
IN PVOID pContext)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcUnregisterIoTimeout(
|
||||||
|
IN PDEVICE_OBJECT pDeviceObject,
|
||||||
|
IN PIO_TIMER_ROUTINE pTimerRoutine,
|
||||||
|
IN PVOID pContext)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ===============================================================
|
||||||
|
Physical Connections
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRegisterPhysicalConnection(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PUNKNOWN FromUnknown,
|
||||||
|
IN ULONG FromPin,
|
||||||
|
IN PUNKNOWN ToUnknown,
|
||||||
|
IN ULONG ToPin)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRegisterPhysicalConnectionFromExternal(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PUNICODE_STRING FromString,
|
||||||
|
IN ULONG FromPin,
|
||||||
|
IN PUNKNOWN ToUnknown,
|
||||||
|
IN ULONG ToPin)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRegisterPhysicalConnectionToExternal(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PUNKNOWN FromUnknown,
|
||||||
|
IN ULONG FromPin,
|
||||||
|
IN PUNICODE_STRING ToString,
|
||||||
|
IN ULONG ToPin)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ===============================================================
|
||||||
|
Misc
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI ULONGLONG NTAPI
|
||||||
|
PcGetTimeInterval(
|
||||||
|
IN ULONGLONG Since)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
PORTCLASSAPI NTSTATUS NTAPI
|
||||||
|
PcRegisterSubdevice(
|
||||||
|
IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PWCHAR Name,
|
||||||
|
IN PUNKNOWN Unknown)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue