mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 12:23:30 +00:00
New stubbing of KS (Kernel Streaming) and associated header files.
Updated README. svn path=/trunk/; revision=25052
This commit is contained in:
@@ -1,17 +1,53 @@
|
||||
This is a directory for the kernel streaming components, along with multimedia
|
||||
kernel-mode drivers.
|
||||
|
||||
Platform components:
|
||||
- ks.sys Kernel Streaming (and AvStream)
|
||||
- sysaudio Filter graph builder (topology?)
|
||||
- portcls Port Class
|
||||
- wdmaud Kernel-mode portion of the MME (Win 3.1-style) driver
|
||||
|
||||
Optional drivers:
|
||||
- sndblst Sound Blaster (+ Pro / 16) compatible driver
|
||||
- mpu401 MPU-401 MIDI compatible driver
|
||||
|
||||
Much of this code exists only as stubs for future implementation.
|
||||
|
||||
-Andrew Greenwood
|
||||
The "include" directory exists as a place to store the KS related headers. It
|
||||
should be moved to the main include tree later.
|
||||
|
||||
Andrew Greenwood
|
||||
3rd December, 2006
|
||||
|
||||
|
||||
== Kernel Streaming (KS.SYS) ==
|
||||
|
||||
Deals with streaming media. This is the core component for this, and can be
|
||||
interacted with from usermode (usually via DirectX.)
|
||||
|
||||
XP and DirectX 8 versions of this component provide an additional suite of
|
||||
AvStream API functions.
|
||||
|
||||
COM-style interfaces are used with this component.
|
||||
|
||||
|
||||
== SysAudio (SYSAUDIO.SYS) ==
|
||||
|
||||
Filter graph builder (deals with topology.) Not sure what this does yet.
|
||||
|
||||
|
||||
== Port Class (PORTCLS.SYS) ==
|
||||
|
||||
Used by WDM audio drivers, this handles many common tasks required for
|
||||
audio drivers.
|
||||
|
||||
COM-style interfaces are used with this component.
|
||||
|
||||
|
||||
== WDM Audio (WDMAUD.DLL / WDMAUD.SYS) ==
|
||||
|
||||
Effectively a relay from usermode to kernelmode, the usermode portion is a
|
||||
MME-style driver (for WINMM.DLL) which tells the kernelmode portion what to do.
|
||||
|
||||
This typically involves interacting with KS.SYS in some way.
|
||||
|
||||
In Vista, the kernelmode portion is no longer present and the usermode portion
|
||||
interacts with the Vista audio stack (which resides in usermode but also
|
||||
ultimately ends up going back into kernelmode in the end!)
|
||||
|
||||
|
||||
== Optional drivers ==
|
||||
|
||||
- sndblst Sound Blaster (+ Pro / 16) compatible driver
|
||||
- mpu401 MPU-401 MIDI compatible driver
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
<!--directory name="wdmaud">
|
||||
<xi:include href="wdmaud/wdmaud.rbuild" />
|
||||
</directory-->
|
||||
<!--directory name="ks">
|
||||
<directory name="ks">
|
||||
<xi:include href="ks/ks.rbuild" />
|
||||
</directory-->
|
||||
</directory>
|
||||
|
||||
<directory name="portcls">
|
||||
<xi:include href="portcls/portcls.rbuild" />
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
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
@@ -0,0 +1,597 @@
|
||||
/*
|
||||
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
|
||||
@@ -1,352 +0,0 @@
|
||||
/*
|
||||
Kernel Streaming
|
||||
|
||||
Part of the ReactOS project
|
||||
(See ReactOS licence for usage restrictions/permissions)
|
||||
|
||||
This file created by Andrew Greenwood.
|
||||
|
||||
Started September 12th, 2005.
|
||||
|
||||
You may notice some structs are empty. These are just placeholders and
|
||||
should be fleshed-out when functions are implemented that require the
|
||||
use of such structs.
|
||||
*/
|
||||
|
||||
#ifndef __INCLUDES_REACTOS_KS_H__
|
||||
#define __INCLUDES_REACTOS_KS_H__
|
||||
|
||||
#include <ntddk.h>
|
||||
|
||||
/* What's this meant to be?! */
|
||||
#define KSDDKAPI
|
||||
|
||||
|
||||
/* Some unimplemented structs :) */
|
||||
|
||||
typedef struct _BUS_INTERFACE_REFERENCE
|
||||
{
|
||||
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
|
||||
|
||||
typedef struct _KSPIN_DESCRIPTOR
|
||||
{
|
||||
} KSPIN_DESCRIPTOR, *PKSPIN_DESCRIPTOR;
|
||||
|
||||
typedef struct _KSPIN_DESCRIPTOR_EX
|
||||
{
|
||||
} KSPIN_DESCRIPTOR_EX, *PKSPIN_DESCRIPTOR_EX;
|
||||
|
||||
|
||||
/* This is just to shut the compiler up so DON'T USE IT! */
|
||||
typedef void (*PFNKSINTERSECTHANDLER)(void);
|
||||
|
||||
|
||||
|
||||
typedef struct _KS_COMPRESSION
|
||||
{
|
||||
ULONG RatioNumerator;
|
||||
ULONG RatioDenominator;
|
||||
ULONG RatioConstantMargin;
|
||||
} KS_COMPRESSION, *PKS_COMPRESSION;
|
||||
|
||||
typedef struct _KS_FRAMING_RANGE
|
||||
{
|
||||
ULONG MinFrameSize;
|
||||
ULONG MaxFrameSize;
|
||||
ULONG Stepping;
|
||||
} KS_FRAMING_RANGE, *PKS_FRAMING_RANGE;
|
||||
|
||||
typedef struct _KS_FRAMING_RANGE_WEIGHTED
|
||||
{
|
||||
/* Obsolete */
|
||||
} KS_FRAMING_RANGE_WEIGHTED, *PKS_FRAMING_RANGE_WEIGHTED;
|
||||
|
||||
typedef struct _KS_FRAMING_ITEM
|
||||
{
|
||||
GUID MemoryType;
|
||||
GUID BusType;
|
||||
ULONG MemoryFlags;
|
||||
ULONG BusFlags;
|
||||
ULONG Flags;
|
||||
ULONG Frames;
|
||||
ULONG FileAlignment;
|
||||
ULONG MemoryTypeWeight;
|
||||
KS_FRAMING_RANGE PhysicalRange;
|
||||
KS_FRAMING_RANGE_WEIGHTED FramingRange;
|
||||
} KS_FRAMING_ITEM, *PKS_FRAMING_ITEM;
|
||||
|
||||
|
||||
|
||||
typedef struct _KSALLOCATOR_FRAMING
|
||||
{
|
||||
union
|
||||
{
|
||||
ULONG OptionFlags;
|
||||
ULONG RequirementsFlags;
|
||||
};
|
||||
POOL_TYPE PoolType;
|
||||
ULONG Frames;
|
||||
ULONG FrameSize;
|
||||
ULONG FileAlignment;
|
||||
ULONG Reserved;
|
||||
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;
|
||||
|
||||
typedef struct _KSALLOCATOR_FRAMING_EX
|
||||
{
|
||||
ULONG CountItems;
|
||||
ULONG PinFlags;
|
||||
KS_COMPRESSION OutputCompression;
|
||||
ULONG PinWeight;
|
||||
KS_FRAMING_ITEM FramingItem[1];
|
||||
} KSALLOCATOR_FRAMING_EX, *PKSALLOCATOR_FRAMING_EX;
|
||||
|
||||
|
||||
|
||||
typedef struct _KSATTRIBUTE
|
||||
{
|
||||
ULONG Size;
|
||||
ULONG Flags;
|
||||
GUID Attribute;
|
||||
} KSATTRIBUTE, *PKSATTRIBUTE;
|
||||
|
||||
|
||||
/*
|
||||
typedef struct _KSBUFFER_ITEM
|
||||
{
|
||||
KSDPC_ITEM DpcItem;
|
||||
LIST_ENTRY BufferList;
|
||||
} KSBUFFER_ITEM, *PKSBUFFER_ITEM;
|
||||
*/
|
||||
|
||||
|
||||
typedef struct _KSIDENTIFIER
|
||||
{
|
||||
GUID Set;
|
||||
ULONG Id;
|
||||
ULONG Flags;
|
||||
} KSIDENTIFIER;
|
||||
|
||||
typedef KSIDENTIFIER KSPIN_MEDIUM, *PKSPIN_MEDIUM;
|
||||
typedef KSIDENTIFIER KSPIN_INTERFACE, *PKSPIN_INTERFACE;
|
||||
typedef KSIDENTIFIER KSPROPERTY, *PKSPROPERTY;
|
||||
|
||||
typedef struct _KSPRIORITY
|
||||
{
|
||||
ULONG PriorityClass;
|
||||
ULONG PrioritySubClass;
|
||||
} KSPRIORITY, *PKSPRIORITY;
|
||||
|
||||
typedef struct _KSPIN_CONNECT
|
||||
{
|
||||
KSPIN_INTERFACE Interface;
|
||||
KSPIN_MEDIUM Medium;
|
||||
ULONG PinId;
|
||||
HANDLE PinToHandle;
|
||||
KSPRIORITY Priority;
|
||||
} KSPIN_CONNECT, *PKSPIN_CONNECT;
|
||||
|
||||
typedef struct _KSP_PIN
|
||||
{
|
||||
KSPROPERTY Property;
|
||||
ULONG PinId;
|
||||
ULONG Reserved;
|
||||
} KSP_PIN, *PKSP_PIN;
|
||||
|
||||
|
||||
typedef struct _KSDEVICE
|
||||
{
|
||||
/* TODO */
|
||||
} KSDEVICE, *PKSDEVICE;
|
||||
|
||||
|
||||
/* Device dispatch routines */
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSDEVICECREATE)
|
||||
(
|
||||
IN PKSDEVICE Device
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSDEVICEPNPSTART)
|
||||
(
|
||||
IN PKSDEVICE Device,
|
||||
IN PIRP Irp,
|
||||
IN PCM_RESOURCE_LIST TranslatedResourceList OPTIONAL,
|
||||
IN PCM_RESOURCE_LIST UntranslatedResourceList OPTIONAL
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSDEVICE)
|
||||
(
|
||||
IN PKSDEVICE Device
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSDEVICEIRP)
|
||||
(
|
||||
IN PKSDEVICE Device,
|
||||
IN PIRP Irp
|
||||
);
|
||||
|
||||
typedef VOID
|
||||
(*PFNKSDEVICEIRPVOID)
|
||||
(
|
||||
IN PKSDEVICE Device,
|
||||
IN PIRP Irp
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSDEVICEQUERYCAPABILITIES)
|
||||
(
|
||||
IN PKSDEVICE Device,
|
||||
IN PIRP Irp,
|
||||
IN OUT PDEVICE_CAPABILITIES Capabilities
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSDEVICEQUERYPOWER)
|
||||
(
|
||||
IN PKSDEVICE Device,
|
||||
IN PIRP Irp,
|
||||
IN DEVICE_POWER_STATE DeviceTo,
|
||||
IN DEVICE_POWER_STATE DeviceFrom,
|
||||
IN SYSTEM_POWER_STATE SystemTo,
|
||||
IN SYSTEM_POWER_STATE SystemFrom,
|
||||
IN POWER_ACTION Action
|
||||
);
|
||||
|
||||
typedef VOID
|
||||
(*PFNKSDEVICESETPOWER)
|
||||
(
|
||||
IN PKSDEVICE Device,
|
||||
IN PIRP Irp,
|
||||
IN DEVICE_POWER_STATE To,
|
||||
IN DEVICE_POWER_STATE From
|
||||
);
|
||||
|
||||
typedef struct _KSDEVICE_DISPATCH
|
||||
{
|
||||
PFNKSDEVICECREATE Add;
|
||||
PFNKSDEVICEPNPSTART Start;
|
||||
PFNKSDEVICE PostStart;
|
||||
PFNKSDEVICEIRP QueryStop;
|
||||
PFNKSDEVICEIRPVOID CancelStop;
|
||||
PFNKSDEVICEIRPVOID Stop;
|
||||
PFNKSDEVICEIRP QueryRemove;
|
||||
PFNKSDEVICEIRPVOID CancelRemove;
|
||||
PFNKSDEVICEIRPVOID Remove;
|
||||
PFNKSDEVICEQUERYCAPABILITIES QueryCapabilities;
|
||||
PFNKSDEVICEIRPVOID SurpriseRemoval;
|
||||
PFNKSDEVICEQUERYPOWER Querypower;
|
||||
PFNKSDEVICESETPOWER SetPower;
|
||||
} KSDEVICE_DISPATCH, *PKSDEVICE_DISPATCH;
|
||||
|
||||
|
||||
|
||||
/* Some more unimplemented stuff */
|
||||
|
||||
typedef struct _KSFILTER
|
||||
{
|
||||
} KSFILTER, *PKSFILTER;
|
||||
|
||||
typedef struct _KSPROCESSPIN_INDEXENTRY
|
||||
{
|
||||
} KSPROCESSPIN_INDEXENTRY, *PKSPROCESSPIN_INDEXENTRY;
|
||||
|
||||
|
||||
/* Filter dispatch routines */
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSFILTERIRP)
|
||||
(
|
||||
IN PKSFILTER Filter,
|
||||
IN PIRP Irp
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSFILTERPROCESS)
|
||||
(
|
||||
IN PKSFILTER FIlter,
|
||||
IN PKSPROCESSPIN_INDEXENTRY ProcessPinsIndex
|
||||
);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*PFNKSFILTERVOID)
|
||||
(
|
||||
IN PKSFILTER Filter
|
||||
);
|
||||
|
||||
typedef struct _KSFILTER_DISPATCH
|
||||
{
|
||||
PFNKSFILTERIRP Create;
|
||||
PFNKSFILTERIRP Close;
|
||||
PFNKSFILTERPROCESS Process;
|
||||
PFNKSFILTERVOID Reset;
|
||||
} KSFILTER_DISPATCH, *PKSFILTER_DISPATCH;
|
||||
|
||||
|
||||
|
||||
/* TODO! */
|
||||
|
||||
typedef struct _KSAUTOMATION_TABLE
|
||||
{
|
||||
} KSAUTOMATION_TABLE, *PKSAUTOMATION_TABLE;
|
||||
|
||||
typedef struct _KSNODE_DESCRIPTOR
|
||||
{
|
||||
} KSNODE_DESCRIPTOR, *PKSNODE_DESCRIPTOR;
|
||||
|
||||
typedef struct _KSTOPOLOGY_CONNECTION
|
||||
{
|
||||
} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
|
||||
|
||||
typedef struct _KSCOMPONENTID
|
||||
{
|
||||
} KSCOMPONENTID, *PKSCOMPONENTID;
|
||||
|
||||
|
||||
/* Descriptors (filter, device, ...) */
|
||||
|
||||
typedef struct _KSFILTER_DESCRIPTOR
|
||||
{
|
||||
const KSFILTER_DISPATCH* Dispatch;
|
||||
const KSAUTOMATION_TABLE* AutomationTable;
|
||||
ULONG Version;
|
||||
ULONG Flags;
|
||||
const GUID* ReferenceGuid;
|
||||
ULONG PinDescriptorsCount;
|
||||
ULONG PinDescriptorSize;
|
||||
const KSPIN_DESCRIPTOR_EX* PinDescriptors;
|
||||
ULONG CategoriesCount;
|
||||
const GUID* Categories;
|
||||
ULONG NodeDescriptorsCount;
|
||||
ULONG NodeDescriptorSize;
|
||||
const KSNODE_DESCRIPTOR* NodeDescriptors;
|
||||
ULONG ConnectionsCount;
|
||||
const KSTOPOLOGY_CONNECTION* Connections;
|
||||
const KSCOMPONENTID* ComponentId;
|
||||
} KSFILTER_DESCRIPTOR, *PKSFILTER_DESCRIPTOR;
|
||||
|
||||
typedef struct _KSDEVICE_DESCRIPTOR
|
||||
{
|
||||
const KSDEVICE_DISPATCH* Dispatch;
|
||||
ULONG FilterDescriptorsCount;
|
||||
const KSFILTER_DESCRIPTOR* const* FilterDescriptors;
|
||||
ULONG Version; /* Doesn't appear to be in the documentation */
|
||||
} KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR;
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
API functions
|
||||
*/
|
||||
|
||||
NTSTATUS NTAPI
|
||||
KsInitializeDriver(
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PUNICODE_STRING RegistryPath,
|
||||
IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,70 @@
|
||||
/* ===============================================================
|
||||
Allocator Functions
|
||||
*/
|
||||
|
||||
#include <ks.h>
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreateAllocator(
|
||||
IN HANDLE ConnectionHandle,
|
||||
IN PKSALLOCATOR_FRAMING AllocatorFraming,
|
||||
OUT PHANDLE AllocatorHandle)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreateDefaultAllocator(
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsValidateAllocatorCreateRequest(
|
||||
IN PIRP Irp,
|
||||
OUT PKSALLOCATOR_FRAMING* AllocatorFraming)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreateDefaultAllocatorEx(
|
||||
IN PIRP Irp,
|
||||
IN PVOID InitializeContext OPTIONAL,
|
||||
IN PFNKSDEFAULTALLOCATE DefaultAllocate OPTIONAL,
|
||||
IN PFNKSDEFAULTFREE DefaultFree OPTIONAL,
|
||||
IN PFNKSINITIALIZEALLOCATOR InitializeAllocator OPTIONAL,
|
||||
IN PFNKSDELETEALLOCATOR DeleteAllocator OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsValidateAllocatorFramingEx(
|
||||
IN PKSALLOCATOR_FRAMING_EX Framing,
|
||||
IN ULONG BufferSize,
|
||||
IN const KSALLOCATOR_FRAMING_EX* PinFraming)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
/* ===============================================================
|
||||
Clock Functions
|
||||
*/
|
||||
|
||||
#include <ks.h>
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreateClock(
|
||||
IN HANDLE ConnectionHandle,
|
||||
IN PKSCLOCK_CREATE ClockCreate,
|
||||
OUT PHANDLE ClockHandle)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreateDefaultClock(
|
||||
IN PIRP Irp,
|
||||
IN PKSDEFAULTCLOCK DefaultClock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAllocateDefaultClock(
|
||||
OUT PKSDEFAULTCLOCK* DefaultClock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAllocateDefaultClockEx(
|
||||
OUT PKSDEFAULTCLOCK* DefaultClock,
|
||||
IN PVOID Context OPTIONAL,
|
||||
IN PFNKSSETTIMER SetTimer OPTIONAL,
|
||||
IN PFNKSCANCELTIMER CancelTimer OPTIONAL,
|
||||
IN PFNKSCORRELATEDTIME CorrelatedTime OPTIONAL,
|
||||
IN const KSRESOLUTION* Resolution OPTIONAL,
|
||||
IN ULONG Flags)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsFreeDefaultClock(
|
||||
IN PKSDEFAULTCLOCK DefaultClock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsValidateClockCreateRequest(
|
||||
IN PIRP Irp,
|
||||
OUT PKSCLOCK_CREATE* ClockCreate)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI KSSTATE NTAPI
|
||||
KsGetDefaultClockState(
|
||||
IN PKSDEFAULTCLOCK DefaultClock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsSetDefaultClockState(
|
||||
IN PKSDEFAULTCLOCK DefaultClock,
|
||||
IN KSSTATE State)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI LONGLONG NTAPI
|
||||
KsGetDefaultClockTime(
|
||||
IN PKSDEFAULTCLOCK DefaultClock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsSetDefaultClockTime(
|
||||
IN PKSDEFAULTCLOCK DefaultClock,
|
||||
IN LONGLONG Time)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
KsCreatePin
|
||||
KsValidateConnectRequest
|
||||
KsPinPropertyHandler
|
||||
KsPinDataIntersection
|
||||
KsHandleSizedListQuery
|
||||
*/
|
||||
|
||||
#include <ks.h>
|
||||
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreatePin(
|
||||
IN HANDLE FilterHandle,
|
||||
IN PKSPIN_CONNECT Connect,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
OUT PHANDLE ConnectionHandle)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsValidateConnectRequest(
|
||||
IN PIRP Irp,
|
||||
IN ULONG DescriptorsCount,
|
||||
IN KSPIN_DESCRIPTOR* Descriptor,
|
||||
OUT PKSPIN_CONNECT* Connect)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsPinPropertyHandler(
|
||||
IN PIRP Irp,
|
||||
IN PKSPROPERTY Property,
|
||||
IN OUT PVOID Data,
|
||||
IN ULONG DescriptorsCount,
|
||||
IN const KSPIN_DESCRIPTOR* Descriptor)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsPinDataIntersection(
|
||||
IN PIRP Irp,
|
||||
IN PKSPIN Pin,
|
||||
OUT PVOID Data,
|
||||
IN ULONG DescriptorsCount,
|
||||
IN const KSPIN_DESCRIPTOR* Descriptor,
|
||||
IN PFNKSINTERSECTHANDLER IntersectHandler)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* Does this belong here? */
|
||||
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsHandleSizedListQuery(
|
||||
IN PIRP Irp,
|
||||
IN ULONG DataItemsCount,
|
||||
IN ULONG DataItemSize,
|
||||
IN const VOID* DataItems)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
#include <ks.h>
|
||||
|
||||
/* ===============================================================
|
||||
Event Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsGenerateEvent(
|
||||
IN PKSEVENT_ENTRY EntryEvent)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsEnableEventWithAllocator(
|
||||
IN PIRP Irp,
|
||||
IN ULONG EventSetsCount,
|
||||
IN PKSEVENT_SET EventSet,
|
||||
IN OUT PLIST_ENTRY EventsList OPTIONAL,
|
||||
IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL,
|
||||
IN PVOID EventsLock OPTIONAL,
|
||||
IN PFNKSALLOCATOR Allocator OPTIONAL,
|
||||
IN ULONG EventItemSize OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsGenerateDataEvent(
|
||||
IN PKSEVENT_ENTRY EventEntry,
|
||||
IN ULONG DataSize,
|
||||
IN PVOID Data)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsEnableEvent(
|
||||
IN PIRP Irp,
|
||||
IN ULONG EventSetsCount,
|
||||
IN KSEVENT_SET* EventSet,
|
||||
IN OUT PLIST_ENTRY EventsList OPTIONAL,
|
||||
IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL,
|
||||
IN PVOID EventsLock OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsDiscardEvent(
|
||||
IN PKSEVENT_ENTRY EventEntry)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDisableEvent(
|
||||
IN PIRP Irp,
|
||||
IN OUT PLIST_ENTRY EventsList,
|
||||
IN KSEVENTS_LOCKTYPE EventsFlags,
|
||||
IN PVOID EventsLock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsFreeEventList(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN OUT PLIST_ENTRY EventsList,
|
||||
IN KSEVENTS_LOCKTYPE EVentsFlags,
|
||||
IN PVOID EventsLock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
@@ -0,0 +1,479 @@
|
||||
/*
|
||||
ReactOS Kernel Streaming
|
||||
IRP Helpers
|
||||
*/
|
||||
|
||||
#include <ks.h>
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAcquireResetValue(
|
||||
IN PIRP Irp,
|
||||
OUT KSRESET* ResetValue)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsAddIrpToCancelableQueue(
|
||||
IN OUT PLIST_ENTRY QueueHead,
|
||||
IN PKSPIN_LOCK SpinLock,
|
||||
IN PIRP Irp,
|
||||
IN KSLIST_ENTRY_LOCATION ListLocation,
|
||||
IN PDRIVER_CANCEL DriverCancel OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAddObjectCreateItemToDeviceHeader(
|
||||
IN KSDEVICE_HEADER Header,
|
||||
IN PDRIVER_DISPATCH Create,
|
||||
IN PVOID Context,
|
||||
IN PWCHAR ObjectClass,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAddObjectCreateItemToObjectHeader(
|
||||
IN KSOBJECT_HEADER Header,
|
||||
IN PDRIVER_DISPATCH Create,
|
||||
IN PVOID Context,
|
||||
IN PWCHAR ObjectClass,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAllocateDeviceHeader(
|
||||
OUT PVOID Header,
|
||||
IN ULONG ItemsCount,
|
||||
IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAllocateExtraData(
|
||||
IN PIRP Irp,
|
||||
IN ULONG ExtraSize,
|
||||
OUT PVOID* ExtraBuffer)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAllocateObjectCreateItem(
|
||||
IN KSDEVICE_HEADER Header,
|
||||
IN PKSOBJECT_CREATE_ITEM CreateItem,
|
||||
IN BOOL AllocateEntry,
|
||||
IN PFNKSITEMFREECALLBACK ItemFreeCallback OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsAllocateObjectHeader(
|
||||
OUT PVOID Header,
|
||||
IN ULONG ItemsCount,
|
||||
IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL,
|
||||
IN PIRP Irp,
|
||||
IN KSDISPATCH_TABLE* Table)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsCancelIo(
|
||||
IN OUT PLIST_ENTRY QueueHead,
|
||||
IN PKSPIN_LOCK SpinLock)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsCancelRoutine(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDefaultDeviceIoCompletion(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI BOOLEAN NTAPI
|
||||
KsDispatchFastIoDeviceControlFailure(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN BOOLEAN Wait,
|
||||
IN PVOID InputBuffer OPTIONAL,
|
||||
IN ULONG InputBufferLength,
|
||||
OUT PVOID OutputBuffer OPTIONAL,
|
||||
IN ULONG OutputBufferLength,
|
||||
IN ULONG IoControlCode,
|
||||
OUT PIO_STATUS_BLOCK IoStatus,
|
||||
IN PDEVICE_OBJECT DeviceObject) /* always return false */
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI BOOLEAN NTAPI
|
||||
KsDispatchFastReadFailure(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PLARGE_INTEGER FileOffset,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN Wait,
|
||||
IN ULONG LockKey,
|
||||
OUT PVOID Buffer,
|
||||
OUT PIO_STATUS_BLOCK IoStatus,
|
||||
IN PDEVICE_OBJECT DeviceObject) /* always return false */
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDispatchInvalidDeviceRequest(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDispatchIrp(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDispatchSpecificMethod(
|
||||
IN PIRP Irp,
|
||||
IN PFNKSHANDLER Handler)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDispatchSpecificProperty(
|
||||
IN PIRP Irp,
|
||||
IN PFNKSHANDLER Handler)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsForwardAndCatchIrp(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp,
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN KSSTACK_USE StackUse)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsForwardIrp(
|
||||
IN PIRP Irp,
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN BOOLEAN ReuseStackLocation)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsFreeDeviceHeader(
|
||||
IN PVOID Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsFreeObjectHeader(
|
||||
IN PVOID Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsGetChildCreateParameter(
|
||||
IN PIRP Irp,
|
||||
OUT PVOID* CreateParameter)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsMoveIrpsOnCancelableQueue(
|
||||
IN OUT PLIST_ENTRY SourceList,
|
||||
IN PKSPIN_LOCK SourceLock,
|
||||
IN OUT PLIST_ENTRY DestinationList,
|
||||
IN PKSPIN_LOCK DestinationLock OPTIONAL,
|
||||
IN KSLIST_ENTRY_LOCATION ListLocation,
|
||||
IN PFNKSIRPLISTCALLBACK ListCallback,
|
||||
IN PVOID Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsProbeStreamIrp(
|
||||
IN PIRP Irp,
|
||||
IN ULONG ProbeFlags,
|
||||
IN ULONG HeaderSize)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsQueryInformationFile(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
OUT PVOID FileInformation,
|
||||
IN ULONG Length,
|
||||
IN FILE_INFORMATION_CLASS FileInformationClass)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI ACCESS_MASK NTAPI
|
||||
KsQueryObjectAccessMask(
|
||||
IN KSOBJECT_HEADER Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI PKSOBJECT_CREATE_ITEM NTAPI
|
||||
KsQueryObjectCreateItem(
|
||||
IN KSOBJECT_HEADER Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
/* return STATUS_UNSUCCESSFUL; */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsReadFile(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PKEVENT Event OPTIONAL,
|
||||
IN PVOID PortContext OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
OUT PVOID Buffer,
|
||||
IN ULONG Length,
|
||||
IN ULONG Key OPTIONAL,
|
||||
IN KPROCESSOR_MODE RequestorMode)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsReleaseIrpOnCancelableQueue(
|
||||
IN PIRP Irp,
|
||||
IN PDRIVER_CANCEL DriverCancel OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI PIRP NTAPI
|
||||
KsRemoveIrpFromCancelableQueue(
|
||||
IN OUT PLIST_ENTRY QueueHead,
|
||||
IN PKSPIN_LOCK SpinLock,
|
||||
IN KSLIST_ENTRY_LOCATION ListLocation,
|
||||
IN KSIRP_REMOVAL_OPERATION RemovalOperation)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return NULL;
|
||||
/*return STATUS_UNSUCCESSFUL; */
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsRemoveSpecificIrpFromCancelableQueue(
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsSetInformationFile(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PVOID FileInformation,
|
||||
IN ULONG Length,
|
||||
IN FILE_INFORMATION_CLASS FileInformationClass)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsSetMajorFunctionHandler(
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN ULONG MajorFunction)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsStreamIo(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PKEVENT Event OPTIONAL,
|
||||
IN PVOID PortContext OPTIONAL,
|
||||
IN PIO_COMPLETION_ROUTINE CompletionRoutine OPTIONAL,
|
||||
IN PVOID CompletionContext OPTIONAL,
|
||||
IN KSCOMPLETION_INVOCATION CompletionInvocationFlags OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN OUT PVOID StreamHeaders,
|
||||
IN ULONG Length,
|
||||
IN ULONG Flags,
|
||||
IN KPROCESSOR_MODE RequestorMode)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsWriteFile(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PKEVENT Event OPTIONAL,
|
||||
IN PVOID PortContext OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Length,
|
||||
IN ULONG Key OPTIONAL,
|
||||
IN KPROCESSOR_MODE RequestorMode)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
;
|
||||
; Exports definition file for ks.sys
|
||||
;
|
||||
|
||||
EXPORTS
|
||||
KsCreateAllocator@12
|
||||
KsCreateDefaultAllocator@4
|
||||
KsValidateAllocatorCreateRequest@8
|
||||
KsCreateDefaultAllocatorEx@24
|
||||
KsValidateAllocatorFramingEx@12
|
||||
|
||||
KsCreateClock@12
|
||||
KsCreateDefaultClock@8
|
||||
KsAllocateDefaultClock@4
|
||||
KsAllocateDefaultClockEx@28
|
||||
KsFreeDefaultClock@4
|
||||
KsValidateClockCreateRequest@8
|
||||
KsGetDefaultClockState@4
|
||||
KsSetDefaultClockState@8
|
||||
KsGetDefaultClockTime@4
|
||||
KsSetDefaultClockTime@12
|
||||
|
||||
KsMethodHandler@12
|
||||
KsMethodHandlerWithAllocator@20
|
||||
KsFastMethodHandler@32
|
||||
|
||||
KsPropertyHandler@12
|
||||
KsPropertyHandlerWithAllocator@20
|
||||
KsUnserializeObjectPropertiesFromRegistry@12
|
||||
KsFastPropertyHandler@32
|
||||
|
||||
KsGenerateEvent@4
|
||||
KsEnableEventWithAllocator@32
|
||||
KsGenerateDataEvent@12
|
||||
KsEnableEvent@24
|
||||
KsDiscardEvent@4
|
||||
KsDisableEvent@16
|
||||
KsFreeEventList@16
|
||||
|
||||
KsValidateTopologyNodeCreateRequest@12
|
||||
KsCreateTopologyNode@16
|
||||
KsTopologyPropertyHandler@16
|
||||
|
||||
KsCreatePin@16
|
||||
KsValidateConnectRequest@16
|
||||
KsPinPropertyHandler@20
|
||||
KsPinDataIntersection@24
|
||||
|
||||
KsHandleSizedListQuery@16
|
||||
|
||||
KsAcquireResetValue@8
|
||||
KsAddIrpToCancelableQueue@20
|
||||
KsAddObjectCreateItemToDeviceHeader@20
|
||||
KsAddObjectCreateItemToObjectHeader@20
|
||||
KsAllocateDeviceHeader@12
|
||||
KsAllocateExtraData@12
|
||||
KsAllocateObjectCreateItem@16
|
||||
KsAllocateObjectHeader@20
|
||||
KsCancelIo@8
|
||||
KsCancelRoutine@8
|
||||
KsDefaultDeviceIoCompletion@8
|
||||
KsDispatchFastIoDeviceControlFailure@36
|
||||
KsDispatchFastReadFailure@32
|
||||
; KsDispatchFastWriteFailure@32
|
||||
KsDispatchInvalidDeviceRequest@8
|
||||
KsDispatchIrp@8
|
||||
KsDispatchSpecificMethod@8
|
||||
KsDispatchSpecificProperty@8
|
||||
KsForwardAndCatchIrp@16
|
||||
KsForwardIrp@12
|
||||
KsFreeDeviceHeader@4
|
||||
KsFreeObjectHeader@4
|
||||
KsGetChildCreateParameter@8
|
||||
KsMoveIrpsOnCancelableQueue@28
|
||||
KsProbeStreamIrp@12
|
||||
KsQueryInformationFile@16
|
||||
KsQueryObjectAccessMask@4
|
||||
KsQueryObjectCreateItem@4
|
||||
KsReadFile@32
|
||||
KsReleaseIrpOnCancelableQueue@8
|
||||
KsRemoveIrpFromCancelableQueue@16
|
||||
KsRemoveSpecificIrpFromCancelableQueue@4
|
||||
KsSetInformationFile@16
|
||||
KsSetMajorFunctionHandler@8
|
||||
KsStreamIo@44
|
||||
KsWriteFile@32
|
||||
|
||||
KsRegisterWorker@8
|
||||
KsUnregisterWorker@4
|
||||
KsRegisterCountedWorker@12
|
||||
KsDecrementCountedWorker@4
|
||||
KsIncrementCountedWorker@4
|
||||
KsQueueWorkItem@8
|
||||
|
||||
KsCacheMedium@12
|
||||
KsDefaultDispatchPnp@8
|
||||
KsSetDevicePnpAndBaseObject@12
|
||||
KsDefaultDispatchPower@8
|
||||
KsSetPowerDispatch@12
|
||||
KsReferenceBusObject@4
|
||||
KsDereferenceBusObject@4
|
||||
KsFreeObjectCreateItem@8
|
||||
KsFreeObjectCreateItemsByContext@8
|
||||
KsLoadResource@24
|
||||
; KsNullDriverUnload@4
|
||||
KsPinDataIntersectionEx@32
|
||||
KsQueryDevicePnpObject@4
|
||||
KsRecalculateStackDepth@8
|
||||
KsSetTargetDeviceObject@8
|
||||
KsSetTargetState@8
|
||||
KsSynchronousIoControlDevice@32
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
<module name="ks" type="exportdriver" installbase="system32/drivers" installname="ks.sys" warnings="true">
|
||||
<include base="ks">.</include>
|
||||
<include base="ks">..</include>
|
||||
<include base="ks">../include</include>
|
||||
<importlibrary definition="ks.def" />
|
||||
<library>ntoskrnl</library>
|
||||
<define name="__USE_W32API" />
|
||||
<define name="BUILDING_KS" />
|
||||
<file>allocators.c</file>
|
||||
<file>clocks.c</file>
|
||||
<file>connectivity.c</file>
|
||||
<file>events.c</file>
|
||||
<file>irp.c</file>
|
||||
<file>methods.c</file>
|
||||
<file>misc.c</file>
|
||||
<file>properties.c</file>
|
||||
<file>topology.c</file>
|
||||
<file>worker.c</file>
|
||||
</module>
|
||||
@@ -0,0 +1,51 @@
|
||||
/* ===============================================================
|
||||
Method Functions
|
||||
*/
|
||||
|
||||
#include <ks.h>
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsMethodHandler(
|
||||
IN PIRP Irp,
|
||||
IN ULONG MethodSetsCount,
|
||||
IN PKSMETHOD_SET MethodSet)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsMethodHandlerWithAllocator(
|
||||
IN PIRP Irp,
|
||||
IN ULONG MethodSetsCount,
|
||||
IN PKSMETHOD_SET MethodSet,
|
||||
IN PFNKSALLOCATOR Allocator OPTIONAL,
|
||||
IN ULONG MethodItemSize OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI BOOLEAN NTAPI
|
||||
KsFastMethodHandler(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PKSMETHOD UNALIGNED Method,
|
||||
IN ULONG MethodLength,
|
||||
IN OUT PVOID UNALIGNED Data,
|
||||
IN ULONG DataLength,
|
||||
OUT PIO_STATUS_BLOCK IoStatus,
|
||||
IN ULONG MethodSetsCount,
|
||||
IN const KSMETHOD_SET* MethodSet)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
#include <ks.h>
|
||||
|
||||
/* ===============================================================
|
||||
Misc. Helper Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCacheMedium(
|
||||
IN PUNICODE_STRING SymbolicLink,
|
||||
IN PKSPIN_MEDIUM Medium,
|
||||
IN DWORD PinDirection)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDefaultDispatchPnp(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsSetDevicePnpAndBaseObject(
|
||||
IN KSDEVICE_HEADER Header,
|
||||
IN PDEVICE_OBJECT PnpDeviceObject,
|
||||
IN PDEVICE_OBJECT BaseDevice)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsDefaultDispatchPower(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsSetPowerDispatch(
|
||||
IN KSOBJECT_HEADER Header,
|
||||
IN PFNKSCONTEXT_DISPATCH PowerDispatch OPTIONAL,
|
||||
IN PVOID PowerContext OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsReferenceBusObject(
|
||||
IN KSDEVICE_HEADER Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsDereferenceBusObject(
|
||||
IN KSDEVICE_HEADER Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsFreeObjectCreateItem(
|
||||
IN KSDEVICE_HEADER Header,
|
||||
IN PUNICODE_STRING CreateItem)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsFreeObjectCreateItemsByContext(
|
||||
IN KSDEVICE_HEADER Header,
|
||||
IN PVOID Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsLoadResource(
|
||||
IN PVOID ImageBase,
|
||||
IN POOL_TYPE PoolType,
|
||||
IN ULONG_PTR ResourceName,
|
||||
IN ULONG ResourceType,
|
||||
OUT PVOID* Resource,
|
||||
OUT PULONG ResourceSize)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
VOID
|
||||
KsNullDriverUnload(
|
||||
IN PDRIVER_OBJECT DriverObject)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsPinDataIntersectionEx(
|
||||
IN PIRP Irp,
|
||||
IN PKSP_PIN Pin,
|
||||
OUT PVOID Data,
|
||||
IN ULONG DescriptorsCount,
|
||||
IN const KSPIN_DESCRIPTOR* Descriptor,
|
||||
IN ULONG DescriptorSize,
|
||||
IN PFNKSINTERSECTHANDLEREX IntersectHandler OPTIONAL,
|
||||
IN PVOID HandlerContext OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI PDEVICE_OBJECT NTAPI
|
||||
KsQueryDevicePnpObject(
|
||||
IN KSDEVICE_HEADER Header)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsRecalculateStackDepth(
|
||||
IN KSDEVICE_HEADER Header,
|
||||
IN BOOLEAN ReuseStackLocation)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsSetTargetDeviceObject(
|
||||
IN KSOBJECT_HEADER Header,
|
||||
IN PDEVICE_OBJECT TargetDevice OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsSetTargetState(
|
||||
IN KSOBJECT_HEADER Header,
|
||||
IN KSTARGET_STATE TargetState)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsSynchronousIoControlDevice(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN KPROCESSOR_MODE RequestorMode,
|
||||
IN DWORD IoControl,
|
||||
IN PVOID InBuffer,
|
||||
IN ULONG InSize,
|
||||
OUT PVOID OutBuffer,
|
||||
IN ULONG OUtSize,
|
||||
OUT PULONG BytesReturned)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
#include <ks.h>
|
||||
|
||||
/* ===============================================================
|
||||
Property Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI BOOLEAN NTAPI
|
||||
KsFastPropertyHandler(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN PKSPROPERTY UNALIGNED Property,
|
||||
IN ULONG PropertyLength,
|
||||
IN OUT PVOID UNALIGNED Data,
|
||||
IN ULONG DataLength,
|
||||
OUT PIO_STATUS_BLOCK IoStatus,
|
||||
IN ULONG PropertySetsCount,
|
||||
IN const KSPROPERTY_SET* PropertySet)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsPropertyHandler(
|
||||
IN PIRP Irp,
|
||||
IN ULONG PropertySetsCount,
|
||||
IN const KSPROPERTY_SET* PropertySet)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsPropertyHandlerWithAllocator(
|
||||
IN PIRP Irp,
|
||||
IN ULONG PropertySetsCount,
|
||||
IN PKSPROPERTY_SET PropertySet,
|
||||
IN PFNKSALLOCATOR Allocator OPTIONAL,
|
||||
IN ULONG PropertyItemSize OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsUnserializeObjectPropertiesFromRegistry(
|
||||
IN PFILE_OBJECT FileObject,
|
||||
IN HANDLE ParentKey OPTIONAL,
|
||||
IN PUNICODE_STRING RegistryPath OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
#include <ks.h>
|
||||
|
||||
/* ===============================================================
|
||||
Topology Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsCreateTopologyNode(
|
||||
IN HANDLE ParentHandle,
|
||||
IN PKSNODE_CREATE NodeCreate,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
OUT PHANDLE NodeHandle)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsValidateTopologyNodeCreateRequest(
|
||||
IN PIRP Irp,
|
||||
IN PKSTOPOLOGY Topology,
|
||||
OUT PKSNODE_CREATE* NodeCreate)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsTopologyPropertyHandler(
|
||||
IN PIRP Irp,
|
||||
IN PKSPROPERTY Property,
|
||||
IN OUT PVOID Data,
|
||||
IN const KSTOPOLOGY* Topology)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
/* ===============================================================
|
||||
Worker Management Functions
|
||||
*/
|
||||
|
||||
#include <ks.h>
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsRegisterWorker(
|
||||
IN WORK_QUEUE_TYPE WorkQueueType,
|
||||
OUT PKSWORKER* Worker)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI VOID NTAPI
|
||||
KsUnregisterWorker(
|
||||
IN PKSWORKER Worker)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsRegisterCountedWorker(
|
||||
IN WORK_QUEUE_TYPE WorkQueueType,
|
||||
IN PWORK_QUEUE_ITEM CountedWorkItem,
|
||||
OUT PKSWORKER* Worker)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI ULONG NTAPI
|
||||
KsDecrementCountedWorker(
|
||||
IN PKSWORKER Worker)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI ULONG NTAPI
|
||||
KsIncrementCountedWorker(
|
||||
IN PKSWORKER Worker)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@unimplemented
|
||||
*/
|
||||
KSDDKAPI NTSTATUS NTAPI
|
||||
KsQueueWorkItem(
|
||||
IN PKSWORKER Worker,
|
||||
IN PWORK_QUEUE_ITEM WorkItem)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
Reference in New Issue
Block a user