Some preliminary stubbing of the Kernel Streaming components (portcls being moved from other directory) 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 _____
Added: trunk/reactos/drivers/multimedia/README --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/avtest/avtest.xml --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/avtest/entry.c --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/directory.xml --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/ks/avstream.c --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/ks/connect.c --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/ks/ks.def --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/ks/ks.xml --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/ks/stubs.c --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/ks.h --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/wdmaud/entry.c --- 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 + * _____
Added: trunk/reactos/drivers/multimedia/wdmaud/wdmaud.xml --- 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 + *