Added: trunk/reactos/drivers/multimedia/
Added: trunk/reactos/drivers/multimedia/README
Added: trunk/reactos/drivers/multimedia/avtest/
Added: trunk/reactos/drivers/multimedia/avtest/avtest.xml
Added: trunk/reactos/drivers/multimedia/avtest/entry.c
Added: trunk/reactos/drivers/multimedia/directory.xml
Added: trunk/reactos/drivers/multimedia/ks/
Added: trunk/reactos/drivers/multimedia/ks/avstream.c
Added: trunk/reactos/drivers/multimedia/ks/connect.c
Added: trunk/reactos/drivers/multimedia/ks/ks.def
Added: trunk/reactos/drivers/multimedia/ks/ks.xml
Added: trunk/reactos/drivers/multimedia/ks/stubs.c
Added: trunk/reactos/drivers/multimedia/ks.h
Added: trunk/reactos/drivers/multimedia/wdmaud/
Added: trunk/reactos/drivers/multimedia/wdmaud/entry.c
Added: trunk/reactos/drivers/multimedia/wdmaud/wdmaud.xml
--- trunk/reactos/drivers/multimedia/README 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/README 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,17 @@
+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
+
Property changes on: trunk/reactos/drivers/multimedia/README
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/avtest/avtest.xml 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/avtest/avtest.xml 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,8 @@
+<module name="avtest" type="kernelmodedriver" installbase="system32/drivers" installname="avtest.sys" warnings="true">
+ <include base="avtest">.</include>
+ <include base="avtest">..</include>
+ <define name="__USE_W32API" />
+ <library>ks</library>
+ <library>ntoskrnl</library>
+ <file>entry.c</file>
+</module>
Property changes on: trunk/reactos/drivers/multimedia/avtest/avtest.xml
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/avtest/entry.c 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/avtest/entry.c 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,83 @@
+#include <debug.h>
+#include <ks.h>
+
+/* Where do we go? */
+#ifndef SIZEOF_ARRAY
+ #define SIZEOF_ARRAY(array) \
+ (sizeof(array) / sizeof(array[0]))
+#endif
+
+/* Not in the DDK but hey! */
+#define DEFINE_KSFILTER_DISPATCH(name) \
+ const KSFILTER_DISPATCH name =
+
+/* To be put in KS.H */
+#define DEFINE_KSFILTER_DESCRIPTOR(name) \
+ const KSFILTER_DESCRIPTOR name =
+
+#define DEFINE_KSFILTER_DESCRIPTOR_TABLE(name) \
+ const KSFILTER_DESCRIPTOR* const name[] =
+
+
+
+NTSTATUS FilterCreate(
+ IN OUT PKSFILTER Filter,
+ IN PIRP Irp)
+{
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS FilterClose(
+ IN OUT PKSFILTER Filter,
+ IN PIRP Irp)
+{
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS Process(
+ IN PKSFILTER Filter,
+ IN PKSPROCESSPIN_INDEXENTRY ProcessPinsIndex)
+{
+ return STATUS_SUCCESS;
+}
+
+
+DEFINE_KSFILTER_DISPATCH(FilterDispatch)
+{
+ FilterCreate,
+ FilterClose,
+ Process,
+ NULL // Reset
+};
+
+DEFINE_KSFILTER_DESCRIPTOR(FilterDesc)
+{
+};
+
+DEFINE_KSFILTER_DESCRIPTOR_TABLE(FilterDescs)
+{
+ &FilterDesc
+};
+
+
+
+const KSDEVICE_DESCRIPTOR DeviceDescriptor =
+{
+ NULL,
+ SIZEOF_ARRAY(FilterDescs),
+ FilterDescs
+};
+
+
+/* Funcs */
+
+NTSTATUS STDCALL
+DriverEntry(
+ IN PDRIVER_OBJECT DriverObject,
+ IN PUNICODE_STRING RegistryPathName)
+{
+ DPRINT1("AVStream test component loaded!\n");
+
+ return KsInitializeDriver(DriverObject, RegistryPathName,
+ &DeviceDescriptor);
+}
Property changes on: trunk/reactos/drivers/multimedia/avtest/entry.c
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/directory.xml 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/directory.xml 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,24 @@
+<!--
+ Kernel Streaming
+
+ This is mostly incomplete at the moment.
+-->
+
+<directory name="portcls">
+ <xi:include href="portcls/portcls.xml" />
+</directory>
+
+<!--directory name="wdmaud">
+ <xi:include href="wdmaud/wdmaud.xml" />
+</directory-->
+
+<!--directory name="ks">
+ <xi:include href="ks/ks.xml" />
+</directory>
+<directory name="portcls">
+ <xi:include href="portcls/portcls.xml" />
+</directory>
+<directory name="avtest">
+ <xi:include href="avtest/avtest.xml" />
+</directory-->
+
Property changes on: trunk/reactos/drivers/multimedia/directory.xml
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/ks/avstream.c 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/ks/avstream.c 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,16 @@
+#include <ks.h>
+#include <debug.h>
+
+
+NTSTATUS NTAPI
+KsInitializeDriver(
+ IN PDRIVER_OBJECT DriverObject,
+ IN PUNICODE_STRING RegistryPath,
+ IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL)
+{
+ DPRINT("KsInitializeDriver\n");
+
+ /* This should set up IRPs etc. */
+
+ return STATUS_NOT_IMPLEMENTED;
+}
Property changes on: trunk/reactos/drivers/multimedia/ks/avstream.c
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/ks/connect.c 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/ks/connect.c 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,57 @@
+/*
+ ReactOS Kernel Streaming component
+
+ Written (or rather, stubbed!) by Andrew Greenwood
+ September 2005
+*/
+
+#include <ks.h>
+
+KSDDKAPI NTSTATUS NTAPI
+KsCreatePin(
+ IN HANDLE FilterHandle,
+ IN PKSPIN_CONNECT Connect,
+ IN ACCESS_MASK DesiredAccess,
+ OUT PHANDLE ConnectionHandle)
+{
+}
+
+KSDDKAPI NTSTATUS NTAPI
+KsHandleSizedListQuery(
+ IN PIRP Irp,
+ IN ULONG DataItemsCount,
+ IN ULONG DataItemSize,
+ IN const VOID* DataItems)
+{
+}
+
+KSDDKAPI NTSTATUS NTAPI
+KsPinDataIntersection(
+ IN PIRP Irp,
+ IN PKSP_PIN Pin,
+ OUT PVOID Data,
+ IN ULONG DescriptorsCount,
+ IN const KSPIN_DESCRIPTOR* Descriptor,
+ IN PFNKSINTERSECTHANDLER IntersectHandler)
+{
+}
+
+KSDDKAPI NTSTATUS NTAPI
+KsPinPropertyHandler(
+ IN PIRP Irp,
+ IN PKSPROPERTY Property,
+ IN OUT PVOID Data,
+ IN ULONG DescriptorsCount,
+ IN const KSPIN_DESCRIPTOR* Descriptor)
+{
+}
+
+KSDDKAPI NTSTATUS NTAPI
+KsValidateConnectRequest(
+ IN PIRP Irp,
+ IN ULONG DescriptorsCount,
+ IN KSPIN_DESCRIPTOR* Descriptor,
+ OUT PKSPIN_CONNECT* Connect)
+{
+}
+
Property changes on: trunk/reactos/drivers/multimedia/ks/connect.c
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/ks/ks.def 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/ks/ks.def 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,7 @@
+; ks.sys - Kernel Streaming
+
+LIBRARY ks.sys
+
+EXPORTS
+KsInitializeDriver@12
+
Property changes on: trunk/reactos/drivers/multimedia/ks/ks.def
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/ks/ks.xml 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/ks/ks.xml 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,9 @@
+<module name="ks" type="kernelmodedriver" installbase="system32/drivers" installname="ks.sys" warnings="true">
+ <include base="ks">.</include>
+ <include base="ks">..</include>
+ <importlibrary definition="ks.def" />
+ <library>ntoskrnl</library>
+ <define name="__USE_W32API" />
+ <!--file>connect.c</file-->
+ <file>avstream.c</file>
+</module>
Property changes on: trunk/reactos/drivers/multimedia/ks/ks.xml
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/ks/stubs.c 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/ks/stubs.c 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,112 @@
+#include "ks.h"
+
+
+typedef struct _KSDEVICE_DESCRIPTOR
+{
+} KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR;
+
+typedef struct _KSDEVICE
+{
+} KSDEVICE, *PKSDEVICE;
+
+
+NTSTATUS
+KsAddDevice(
+ IN PDRIVER_OBJECT DriverObject,
+ IN PDEVICE_OBJECT PhysicalDeviceObject)
+{
+ /* KsCreateDevice(DriverObject, PhysicalDeviceObject, ...); */
+
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+
+NTSTATUS
+KsInitializeDriver(
+ IN PDRIVER_OBJECT DriverObject,
+ IN PUNICODE_STRING RegistryPath,
+ IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL)
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+NTSTATUS
+KsInitializeDevice(
+ IN PDEVICE_OBJECT FunctionalDeviceObject,
+ IN PDEVICE_OBJECT PhysicalDeviceObject,
+ IN PDEVICE_OBJECT NextDeviceObject,
+ IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL)
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+NTSTATUS
+KsCreateDevice(
+ IN PDRIVER_OBJECT DriverObject,
+ IN PDEVICE_OBJECT PhysicalDeviceObject,
+ IN const KSDEVICE_DESCRIPTOR* Descriptor OPTIONAL,
+ IN ULONG ExtensionSize OPTIONAL,
+ OUT PKSDEVICE* Device OPTIONAL)
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+NTSTATUS
+KsTerminateDevice(
+ IN PDEVICE_OBJECT DeviceObject)
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+
+VOID
+KsAcquireDevice(
+ IN PKSDEVICE Device)
+{
+ /* Acquire device mutex */
+}
+
+VOID
+KsReleaseDevice(
+ IN PKSDEVICE Device)
+{
+ /* Releases device mutex and exits critical region */
+}
+
+VOID
+KsAcquireControl(
+ IN PVOID Object)
+{
+ /* Acquire filter control mutex for Object */
+ /* Object should be pointed to a KSFILTER or KSPIN */
+}
+
+
+PKSDEVICE
+KsGetDevice(
+ IN PVOID Object)
+{
+ /* ? */
+ return 0;
+}
+
+// inline
+/*
+PKSDEVICE __inline
+KsFilterGetDevice(
+ IN PKSFILTER Filter)
+{
+ return KsGetDevice((PVOID) Filter);
+}
+
+PKSDEVICE __inline
+KsPinGetDevice(
+ IN PKSPIN Pin)
+{
+ return KsGetDevice((PVOID) Pin);
+}
+*/
Property changes on: trunk/reactos/drivers/multimedia/ks/stubs.c
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/ks.h 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/ks.h 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,352 @@
+/*
+ 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 <ddk/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
Property changes on: trunk/reactos/drivers/multimedia/ks.h
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/wdmaud/entry.c 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/wdmaud/entry.c 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,59 @@
+/*
+ This doesn't do much yet...
+*/
+
+#include <debug.h>
+
+#define InPassiveIrql() \
+ (KeGetCurrentIrql() == IRQL_PASSIVE_LEVEL)
+
+
+NTSTATUS AudioDeviceControl(
+ IN PDEVICE_OBJECT device,
+ IN PIRP irp
+)
+{
+ return STATUS_SUCCESS;
+}
+
+
+NTSTATUS AudioAddDevice(
+ IN PDRIVER_OBJECT driver,
+ IN PDEVICE_OBJECT device
+)
+{
+ DPRINT("AudioAddDevice called\n");
+
+ if ( ! IsPassiveIrql() )
+ {
+ /* What do we do?! */
+ /* RtlAssert("FAIL", __FILE__, __LINE__, "?" */
+ }
+
+ return STATUS_SUCCESS;
+}
+
+VOID AudioUnload(
+ IN PDRIVER_OBJECT driver
+)
+{
+ DPRINT("AudioUnload called\n");
+}
+
+
+
+NTSTATUS STDCALL
+DriverEntry(
+ IN PDRIVER_OBJECT driver,
+ IN PUNICODE_STRING registry_path
+)
+{
+ DPRINT("Wdmaud.sys loaded\n");
+
+ driver->DriverExtension->AddDevice = AudioAddDevice;
+ driver->DriverUnload = AudioUnload;
+
+ driver->MajorFunction[IRP_MJ_DEVICE_CONTROL] = AudioDeviceControl;
+
+ return STATUS_SUCCESS;
+}
Property changes on: trunk/reactos/drivers/multimedia/wdmaud/entry.c
___________________________________________________________________
Name: svn:executable
+ *
--- trunk/reactos/drivers/multimedia/wdmaud/wdmaud.xml 2005-11-24 13:22:13 UTC (rev 19524)
+++ trunk/reactos/drivers/multimedia/wdmaud/wdmaud.xml 2005-11-24 13:30:51 UTC (rev 19525)
@@ -0,0 +1,7 @@
+<module name="wdmaud_kernel" type="kernelmodedriver" installbase="system32/drivers" installname="wdmaud.sys" warnings="true">
+ <include base="wdmaud">.</include>
+ <include base="wdmaud">..</include>
+ <define name="__USE_W32API" />
+ <library>ntoskrnl</library>
+ <file>entry.c</file>
+</module>
Property changes on: trunk/reactos/drivers/multimedia/wdmaud/wdmaud.xml
___________________________________________________________________
Name: svn:executable
+ *