Author: dreimer
Date: Tue Mar 17 19:35:17 2015
New Revision: 66761
URL:
http://svn.reactos.org/svn/reactos?rev=66761&view=rev
Log:
Revert r66709 and r66710 to get working sound again.
Modified:
branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/legacy.c
branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/wdmaud.h
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/ksfilter/ks/misc.c
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/control.c
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/entry.c
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h
branches/ReactOS-0.3.17-CLT2015/reactos/media/inf/wdmaudio.inf
Modified: branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/legacy.c
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
--- branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/legacy.c [iso-8859-1]
(original)
+++ branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/legacy.c [iso-8859-1] Tue
Mar 17 19:35:17 2015
@@ -255,64 +255,25 @@
IN PSOUND_DEVICE SoundDevice,
OUT PVOID *Handle)
{
- HDEVINFO hDevInfo;
- SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;
- GUID SWBusGuid = {STATIC_KSCATEGORY_WDMAUD};
- PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData;
-
+ /* Only open this if it's not already open */
if ( KernelHandle == INVALID_HANDLE_VALUE )
{
- hDevInfo = SetupDiGetClassDevsW(&SWBusGuid, NULL, NULL,
DIGCF_DEVICEINTERFACE| DIGCF_PRESENT);
- if (!hDevInfo)
- {
- // failed
- return MMSYSERR_ERROR;
- }
-
- DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
- if (!SetupDiEnumDeviceInterfaces(hDevInfo, NULL, &SWBusGuid, 0,
&DeviceInterfaceData))
- {
- // failed
- SetupDiDestroyDeviceInfoList(hDevInfo);
- return MMSYSERR_ERROR;
- }
-
- DeviceInterfaceDetailData =
(PSP_DEVICE_INTERFACE_DETAIL_DATA_W)HeapAlloc(GetProcessHeap(), 0, MAX_PATH *
sizeof(WCHAR) + sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W));
- if (!DeviceInterfaceDetailData)
- {
- // failed
- SetupDiDestroyDeviceInfoList(hDevInfo);
- return MMSYSERR_ERROR;
- }
-
- DeviceInterfaceDetailData->cbSize =
sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W);
- if (!SetupDiGetDeviceInterfaceDetailW(hDevInfo, &DeviceInterfaceData,
DeviceInterfaceDetailData,MAX_PATH * sizeof(WCHAR) +
sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W), NULL, NULL))
- {
- // failed
- HeapFree(GetProcessHeap(), 0, DeviceInterfaceDetailData);
- SetupDiDestroyDeviceInfoList(hDevInfo);
- return MMSYSERR_ERROR;
- }
- SND_TRACE(L"Opening wdmaud device
'%s'\n",DeviceInterfaceDetailData->DevicePath);
- KernelHandle = CreateFileW(DeviceInterfaceDetailData->DevicePath,
- GENERIC_READ | GENERIC_WRITE,
- 0,
- NULL,
- OPEN_EXISTING,
- FILE_FLAG_OVERLAPPED,
- NULL);
-
- HeapFree(GetProcessHeap(), 0, DeviceInterfaceDetailData);
- SetupDiDestroyDeviceInfoList(hDevInfo);
- }
-
+ SND_TRACE(L"Opening wdmaud device\n");
+ KernelHandle = CreateFileW(KERNEL_DEVICE_NAME,
+ GENERIC_READ | GENERIC_WRITE,
+ 0,
+ NULL,
+ OPEN_EXISTING,
+ FILE_FLAG_OVERLAPPED,
+ NULL);
+ }
if ( KernelHandle == INVALID_HANDLE_VALUE )
return MMSYSERR_ERROR;
++ OpenCount;
- return MMSYSERR_NOERROR;
-
+
+ return MMSYSERR_NOERROR;
}
MMRESULT
Modified: branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/wdmaud.h
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
--- branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/wdmaud.h [iso-8859-1]
(original)
+++ branches/ReactOS-0.3.17-CLT2015/reactos/dll/win32/wdmaud.drv/wdmaud.h [iso-8859-1] Tue
Mar 17 19:35:17 2015
@@ -8,16 +8,12 @@
#define COM_NO_WINDOWS_H
#include <windef.h>
-#include <winbase.h>
-#include <winreg.h>
-
#include <winuser.h>
#include <mmddk.h>
#include <mmebuddy.h>
#include <ksmedia.h>
#include <interface.h>
#include <devioctl.h>
-#include <setupapi.h>
BOOL
WdmAudInitUserModeMixer(VOID);
Modified: branches/ReactOS-0.3.17-CLT2015/reactos/drivers/ksfilter/ks/misc.c
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
--- branches/ReactOS-0.3.17-CLT2015/reactos/drivers/ksfilter/ks/misc.c [iso-8859-1]
(original)
+++ branches/ReactOS-0.3.17-CLT2015/reactos/drivers/ksfilter/ks/misc.c [iso-8859-1] Tue
Mar 17 19:35:17 2015
@@ -11,8 +11,6 @@
#define NDEBUG
#include <debug.h>
-#define TAG_KS 'ssKK'
-
VOID
CompleteRequest(
PIRP Irp,
@@ -31,7 +29,7 @@
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes)
{
- PVOID Item = ExAllocatePoolWithTag(PoolType, NumberOfBytes, TAG_KS);
+ PVOID Item = ExAllocatePool(PoolType, NumberOfBytes);
if (!Item)
return Item;
Modified:
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/control.c
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
---
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/control.c [iso-8859-1]
(original)
+++
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/control.c [iso-8859-1]
Tue Mar 17 19:35:17 2015
@@ -49,6 +49,9 @@
{
ULONG Result = 0;
NTSTATUS Status = STATUS_SUCCESS;
+ //PWDMAUD_DEVICE_EXTENSION DeviceExtension;
+
+ //DeviceExtension = (PWDMAUD_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
if (DeviceInfo->DeviceType == MIXER_DEVICE_TYPE)
{
@@ -228,9 +231,13 @@
IN PIRP Irp,
IN PWDMAUD_DEVICE_INFO DeviceInfo)
{
+ //PWDMAUD_DEVICE_EXTENSION DeviceExtension;
NTSTATUS Status;
LPWSTR Device;
ULONG Size, Length;
+
+ /* get device extension */
+ //DeviceExtension = (PWDMAUD_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
/* get device interface string input length */
Size = DeviceInfo->u.Interface.DeviceInterfaceStringSize;
@@ -413,11 +420,19 @@
/* grab next mdl */
Mdl = NextMdl;
}
- //IoFreeMdl(Mdl);
+
/* clear mdl list */
- Irp->MdlAddress = Context->Mdl;
-
-
+ Irp->MdlAddress = NULL;
+
+ /* check if mdl is locked */
+ if (Context->Mdl->MdlFlags & MDL_PAGES_LOCKED)
+ {
+ /* unlock pages */
+ MmUnlockPages(Context->Mdl);
+ }
+
+ /* now free the mdl */
+ IoFreeMdl(Context->Mdl);
DPRINT("IoCompletion Irp %p IoStatus %lx Information %lx Length %lu\n",
Irp, Irp->IoStatus.Status, Irp->IoStatus.Information, Length);
@@ -426,9 +441,6 @@
/* failed */
Irp->IoStatus.Information = 0;
}
-
- /* dereference file object */
- ObDereferenceObject(Context->FileObject);
/* free context */
FreeItem(Context);
@@ -490,6 +502,8 @@
/* remove mdladdress as KsProbeStreamIrp will interprete it as an already probed
audio buffer */
Irp->MdlAddress = NULL;
+ /* check for success */
+
if (IoStack->MajorFunction == IRP_MJ_WRITE)
{
/* probe the write stream irp */
@@ -506,7 +520,6 @@
{
DPRINT1("KsProbeStreamIrp failed with Status %x Cancel %u\n", Status,
Irp->Cancel);
Irp->MdlAddress = Mdl;
- FreeItem(Context);
return SetIrpIoStatus(Irp, Status, 0);
}
@@ -519,13 +532,8 @@
if (!NT_SUCCESS(Status))
{
DPRINT1("Invalid pin handle %p\n", DeviceInfo->hDevice);
- Irp->MdlAddress = Mdl;
- FreeItem(Context);
return SetIrpIoStatus(Irp, Status, 0);
}
-
- /* store file object whose reference is released in the completion callback */
- Context->FileObject = FileObject;
/* skip current irp stack location */
IoSkipCurrentIrpStackLocation(Irp);
@@ -533,16 +541,30 @@
/* get next stack location */
IoStack = IoGetNextIrpStackLocation(Irp);
- /* prepare stack location */
+ if (Read)
+ {
+ IoStack->Parameters.DeviceIoControl.IoControlCode = IOCTL_KS_READ_STREAM;
+ }
+ else
+ {
+ IoStack->Parameters.DeviceIoControl.IoControlCode = IOCTL_KS_WRITE_STREAM;
+ }
+
+ /* attach file object */
IoStack->FileObject = FileObject;
IoStack->Parameters.Write.Length = Length;
IoStack->MajorFunction = IRP_MJ_WRITE;
- IoStack->Parameters.DeviceIoControl.IoControlCode = (Read ? IOCTL_KS_READ_STREAM :
IOCTL_KS_WRITE_STREAM);
+
IoSetCompletionRoutine(Irp, IoCompletion, (PVOID)Context, TRUE, TRUE, TRUE);
+
/* mark irp as pending */
// IoMarkIrpPending(Irp);
/* call the driver */
Status = IoCallDriver(IoGetRelatedDeviceObject(FileObject), Irp);
+
+ /* dereference file object */
+ ObDereferenceObject(FileObject);
+
return Status;
}
Modified:
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
---
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c [iso-8859-1]
(original)
+++
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c [iso-8859-1]
Tue Mar 17 19:35:17 2015
@@ -153,18 +153,16 @@
return Status;
}
+ InsertTailList(&DeviceExtension->SysAudioDeviceList,
&Entry->Entry);
+ DeviceExtension->NumSysAudioDevices++;
+
DPRINT("Opening device %S\n", Entry->SymbolicLink.Buffer);
Status = WdmAudOpenSysAudioDevice(Entry->SymbolicLink.Buffer,
&hSysAudio);
if (!NT_SUCCESS(Status))
{
DPRINT1("Failed to open sysaudio %x\n", Status);
- FreeItem(Entry->SymbolicLink.Buffer);
- FreeItem(Entry);
return Status;
}
-
- InsertTailList(&DeviceExtension->SysAudioDeviceList,
&Entry->Entry);
- DeviceExtension->NumSysAudioDevices++;
/* get the file object */
Status = ObReferenceObjectByHandle(hSysAudio, FILE_READ_DATA |
FILE_WRITE_DATA, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL);
@@ -188,6 +186,8 @@
IN PWDMAUD_DEVICE_EXTENSION DeviceExtension)
{
NTSTATUS Status;
+ UNICODE_STRING SymlinkName = RTL_CONSTANT_STRING(L"\\DosDevices\\wdmaud");
+ UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\wdmaud");
UNICODE_STRING SymbolicLinkName;
Status = IoRegisterDeviceInterface(PhysicalDeviceObject, &KSCATEGORY_WDMAUD,
NULL, &SymbolicLinkName);
@@ -195,7 +195,20 @@
{
IoSetDeviceInterfaceState(&SymbolicLinkName, TRUE);
RtlFreeUnicodeString(&SymbolicLinkName);
- //DeviceExtension->DeviceInterfaceSupport = TRUE;
+ DeviceExtension->DeviceInterfaceSupport = TRUE;
+ return Status;
+ }
+
+ /* failed to register device interface
+ * create a symbolic link instead
+ */
+ DeviceExtension->DeviceInterfaceSupport = FALSE;
+
+ Status = IoCreateSymbolicLink(&SymlinkName, &DeviceName);
+ if (!NT_SUCCESS(Status))
+ {
+ IoDeleteDevice(PhysicalDeviceObject); //FIXME
+ DPRINT("Failed to create wdmaud symlink!\n");
return Status;
}
Modified: branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/entry.c
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
---
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/entry.c [iso-8859-1]
(original)
+++
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/entry.c [iso-8859-1]
Tue Mar 17 19:35:17 2015
@@ -31,19 +31,6 @@
/* get device extension */
DeviceExtension = (PWDMAUD_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
-
- if (DeviceExtension->FileObject == NULL)
- {
- /* find available sysaudio devices */
- Status = WdmAudOpenSysAudioDevices(DeviceObject, DeviceExtension);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("WdmAudOpenSysAudioDevices failed with %x\n", Status);
- return;
- }
- }
-
-
/* get device count */
DeviceCount = GetSysAudioDeviceCount(DeviceObject);
@@ -87,19 +74,20 @@
NTSTATUS
NTAPI
-WdmaudAddDevice(
- IN PDRIVER_OBJECT DriverObject,
- IN PDEVICE_OBJECT PhysicalDeviceObject)
-{
+WdmAudInstallDevice(
+ IN PDRIVER_OBJECT DriverObject)
+{
+ UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\wdmaud");
+ UNICODE_STRING SymlinkName = RTL_CONSTANT_STRING(L"\\DosDevices\\wdmaud");
PDEVICE_OBJECT DeviceObject;
NTSTATUS Status;
PWDMAUD_DEVICE_EXTENSION DeviceExtension;
- DPRINT("WdmaudAddDevice called\n");
+ DPRINT("WdmAudInstallDevice called\n");
Status = IoCreateDevice(DriverObject,
sizeof(WDMAUD_DEVICE_EXTENSION),
- NULL,
+ &DeviceName,
FILE_DEVICE_KS,
0,
FALSE,
@@ -125,7 +113,7 @@
}
/* register device interfaces */
- Status = WdmAudRegisterDeviceInterface(PhysicalDeviceObject, DeviceExtension);
+ Status = WdmAudRegisterDeviceInterface(DeviceObject, DeviceExtension);
if (!NT_SUCCESS(Status))
{
DPRINT1("WdmRegisterDeviceInterface failed with %x\n", Status);
@@ -148,19 +136,25 @@
/* initialize timer */
IoInitializeTimer(DeviceObject, WdmAudTimerRoutine, (PVOID)WdmAudTimerRoutine);
+ /* find available sysaudio devices */
+ Status = WdmAudOpenSysAudioDevices(DeviceObject, DeviceExtension);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("WdmAudOpenSysAudioDevices failed with %x\n", Status);
+ IoDeleteSymbolicLink(&SymlinkName);
+ IoDeleteDevice(DeviceObject);
+ return Status;
+ }
+
/* allocate ks device header */
Status = KsAllocateDeviceHeader(&DeviceExtension->DeviceHeader, 0, NULL);
if (!NT_SUCCESS(Status))
{
DPRINT1("KsAllocateDeviceHeader failed with %x\n", Status);
+ IoDeleteSymbolicLink(&SymlinkName);
IoDeleteDevice(DeviceObject);
return Status;
}
-
- /* attach to device stack */
- DeviceExtension->NextDeviceObject = IoAttachDeviceToDeviceStack(DeviceObject,
PhysicalDeviceObject);
- KsSetDevicePnpAndBaseObject(DeviceExtension->DeviceHeader,
DeviceExtension->NextDeviceObject, DeviceObject);
-
/* start the timer */
IoStartTimer(DeviceObject);
@@ -209,10 +203,10 @@
NTSTATUS Status;
PIO_STACK_LOCATION IoStack;
PWDMAUD_CLIENT pClient;
- PWDMAUD_DEVICE_EXTENSION DeviceExtension;
-
- /* get device extension */
- DeviceExtension = (PWDMAUD_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+ //PWDMAUD_DEVICE_EXTENSION DeviceExtension;
+
+ /* get device extension */
+ //DeviceExtension = (PWDMAUD_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
#if KS_IMPLEMENTED
Status =
KsReferenceSoftwareBusObject((KSDEVICE_HEADER)DeviceObject->DeviceExtension);
@@ -222,13 +216,6 @@
return Status;
}
#endif
-
- if (DeviceExtension->FileObject == NULL)
- {
- /* initialize */
- WdmAudInitWorkerRoutine(DeviceObject, NULL);
- }
-
Status = WdmAudOpenSysaudio(DeviceObject, &pClient);
if (!NT_SUCCESS(Status))
@@ -367,7 +354,6 @@
Driver->MajorFunction[IRP_MJ_WRITE] = WdmAudReadWrite;
Driver->MajorFunction[IRP_MJ_READ] = WdmAudReadWrite;
Driver->MajorFunction[IRP_MJ_POWER] = KsDefaultDispatchPower;
- Driver->DriverExtension->AddDevice = WdmaudAddDevice;
-
- return STATUS_SUCCESS;
-}
+
+ return WdmAudInstallDevice(Driver);
+}
Modified: branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
---
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c [iso-8859-1]
(original)
+++
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c [iso-8859-1]
Tue Mar 17 19:35:17 2015
@@ -14,14 +14,12 @@
#define NDEBUG
#include <debug.h>
-#define TAG_WDMAUD 'DMDW'
-
PVOID
AllocateItem(
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes)
{
- PVOID Item = ExAllocatePoolWithTag(PoolType, NumberOfBytes, TAG_WDMAUD);
+ PVOID Item = ExAllocatePool(PoolType, NumberOfBytes);
if (!Item)
return Item;
Modified:
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
---
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h [iso-8859-1]
(original)
+++
branches/ReactOS-0.3.17-CLT2015/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h [iso-8859-1]
Tue Mar 17 19:35:17 2015
@@ -11,7 +11,6 @@
PMDL Mdl;
ULONG Length;
ULONG Function;
- PFILE_OBJECT FileObject;
}WDMAUD_COMPLETION_CONTEXT, *PWDMAUD_COMPLETION_CONTEXT;
@@ -67,7 +66,6 @@
KEVENT InitializationCompletionEvent;
ULONG WorkItemActive;
- PDEVICE_OBJECT NextDeviceObject;
}WDMAUD_DEVICE_EXTENSION, *PWDMAUD_DEVICE_EXTENSION;
typedef struct
Modified: branches/ReactOS-0.3.17-CLT2015/reactos/media/inf/wdmaudio.inf
URL:
http://svn.reactos.org/svn/reactos/branches/ReactOS-0.3.17-CLT2015/reactos/…
==============================================================================
--- branches/ReactOS-0.3.17-CLT2015/reactos/media/inf/wdmaudio.inf [iso-8859-1]
(original)
+++ branches/ReactOS-0.3.17-CLT2015/reactos/media/inf/wdmaudio.inf [iso-8859-1] Tue Mar 17
19:35:17 2015
@@ -30,6 +30,8 @@
%WDM_WDMAUD.DeviceDesc% = WDM_WDMAUD, SW\{CD171DE3-69E5-11D2-B56D-0000F8754380}
;%WDM_DRMKAUD.DeviceDesc% = WDM_DRMKAUD, SW\{EEC12DB6-AD9C-4168-8658-B03DAEF417FE}
+%WDMAUDIO_CopyFilesOnlyId.DeviceDesc% = WDMAUDIO.CopyFilesOnly, WDMAUDIO_CopyFilesOnlyId
+
[WDMAUDIO.CopyFilesOnly]
CopyFiles=WDM.CopyFiles, FX.CopyList
@@ -43,127 +45,125 @@
AddReg = DeviceRegistration
CopyFiles = WDM.CopyFiles
+[DeviceRegistration]
+; Kmixer swenum install
+;HKLM,%RunOnce%,"WDM_KMIXER0",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_KMIXER.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_MIXER%,%17%\WDMAUDIO.inf,WDM_KMIXER.Interface.Install"
+;HKLM,%RunOnce%,"WDM_KMIXER1",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_KMIXER.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_AUDIO%,%17%\WDMAUDIO.inf,WDM_KMIXER.Interface.Install"
+
+; Sysaudio swenum install
+;HKLM,%RunOnce%,"WDM_SYSAUDIO",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_SYSAUDIO.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_SYSAUDIO%,%17%\WDMAUDIO.inf,WDM_SYSAUDIO.Interface.Install"
+
+; WDMAud install
+HKLM,%RunOnce%,"WDM_WDMAUD",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_WDMAUD.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_WDMAUD%,%17%\WDMAUDIO.inf,WDM_WDMAUD.Interface.Install"
+
+; DRMKAUD install
+;HKLM,%RunOnce%,"WDM_DRMKAUD",,"rundll32.exe streamci,StreamingDeviceSetup
%WDM_DRMKAUD.DeviceId%,%KSNAME_DRMKAUD%,%KSCATEGORY_DRM_DESCRAMBLE%,%17%\WDMAUDIO.inf,WDM_DRMKAUD.Interface.Install"
+
+;--------------------------------------------------------------------------------
+; SysAudio Install
+[WDM_SYSAUDIO.Interface.Install]
+AddReg=WDM_SYSAUDIO.Interface.AddReg
+
+[WDM_SYSAUDIO.Interface.AddReg]
+HKR,,CLSID,,%Proxy.CLSID%
+HKR,,FriendlyName,,%WDM_SYSAUDIO.FriendlyName%
+
+[WDM_SYSAUDIO]
+CopyFiles = WDM_SYSAUDIO.CopyFiles
+
+
+[WDM_SYSAUDIO.CopyFiles]
+sysaudio.sys
+
+[WDM_SYSAUDIO.Services]
+AddService = sysaudio,0x00000002, sysaudio_Service_Inst
+
+[sysaudio_Service_Inst]
+DisplayName = %sysaudio.SvcDesc%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %10%\system32\drivers\sysaudio.sys
+
+;--------------------------------------------------------------------------------
+; KMixer Install
+[WDM_KMIXER.Interface.Install]
+AddReg=WDM_KMIXER.Interface.AddReg
+
+[WDM_KMIXER.Interface.AddReg]
+HKR,,CLSID,,%Proxy.CLSID%
+HKR,,FriendlyName,,%WDM_KMIXER.FriendlyName%
+
+[WDM_KMIXER]
+CopyFiles = WDM_KMIXER.CopyFiles
+
+[WDM_KMIXER.CopyFiles]
+kmixer.sys
+
+[WDM_KMIXER.Services]
+AddService = kmixer, 0x00000002, kmixer_Service_Inst
+
+[kmixer_Service_Inst]
+DisplayName = %kmixer.SvcDesc%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %10%\system32\drivers\kmixer.sys
+;--------------------------------------------------------------------------------
+; WDMAUD Install
+[WDM_WDMAUD.Interface.Install]
+AddReg=WDM_WDMAUD.Interface.AddReg
+
+[WDM_WDMAUD.Interface.AddReg]
+HKR,,CLSID,,%Proxy.CLSID%
+HKR,,FriendlyName,,%WDM_WDMAUD.FriendlyName%
+
+[WDM_WDMAUD]
+CopyFiles = WDM_WDMAUD.CopyFiles
+
+[WDM_WDMAUD.CopyFiles]
+wdmaud.sys
+
+[WDM_WDMAUD.Services]
+AddService = wdmaud,0x00000002, wdmaud_Service_Inst
+
+[wdmaud_Service_Inst]
+DisplayName = %wdmaud.SvcDesc%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %10%\system32\drivers\wdmaud.sys
+
+;--------------------------------------------------------------------------------
+; DRMKAUD Install
+[WDM_DRMKAUD.Interface.Install]
+AddReg=WDM_DRMKAUD.Interface.AddReg
+
+[WDM_DRMKAUD.Interface.AddReg]
+HKR,,CLSID,,%Proxy.CLSID%
+HKR,,FriendlyName,,%WDM_DRMKAUD.FriendlyName%
+
+[WDM_DRMKAUD]
+CopyFiles=WDM_DRMKAUD.CopyFiles
+
+[WDM_DRMKAUD.CopyFiles]
+drmk.sys,,,0x0100
+drmkaud.sys,,,0x0100
+
+[WDM_DRMKAUD.Services]
+AddService = drmkaud, 0x00000002, drmkaud_Service_Inst
+
+[drmkaud_Service_Inst]
+DisplayName = %drmkaud.SvcDesc%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %10%\system32\drivers\drmkaud.sys
+
;; copied to system32\drivers
[WDM.CopyFiles]
drmk.sys,,,0x0100
portcls.sys,,,0x0100
-
-
-[DeviceRegistration]
-; Kmixer swenum install
-;HKLM,%RunOnce%,"WDM_KMIXER0",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_KMIXER.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_MIXER%,%17%\WDMAUDIO.inf,WDM_KMIXER.Interface.Install"
-;HKLM,%RunOnce%,"WDM_KMIXER1",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_KMIXER.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_AUDIO%,%17%\WDMAUDIO.inf,WDM_KMIXER.Interface.Install"
-
-; Sysaudio swenum install
-;HKLM,%RunOnce%,"WDM_SYSAUDIO",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_SYSAUDIO.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_SYSAUDIO%,%17%\WDMAUDIO.inf,WDM_SYSAUDIO.Interface.Install"
-
-; WDMAud install
-HKLM,%RunOnce%,"WDM_WDMAUD",,"rundll32.exe
streamci.dll,StreamingDeviceSetup
%WDM_WDMAUD.DeviceId%,%KSNAME_Filter%,%KSCATEGORY_WDMAUD%,%17%\WDMAUDIO.inf,WDM_WDMAUD.Interface.Install"
-
-; DRMKAUD install
-;HKLM,%RunOnce%,"WDM_DRMKAUD",,"rundll32.exe streamci,StreamingDeviceSetup
%WDM_DRMKAUD.DeviceId%,%KSNAME_DRMKAUD%,%KSCATEGORY_DRM_DESCRAMBLE%,%17%\WDMAUDIO.inf,WDM_DRMKAUD.Interface.Install"
-
-;--------------------------------------------------------------------------------
-; SysAudio Install
-[WDM_SYSAUDIO.Interface.Install]
-AddReg=WDM_SYSAUDIO.Interface.AddReg
-
-[WDM_SYSAUDIO.Interface.AddReg]
-HKR,,CLSID,,%Proxy.CLSID%
-HKR,,FriendlyName,,%WDM_SYSAUDIO.FriendlyName%
-
-[WDM_SYSAUDIO]
-CopyFiles = WDM_SYSAUDIO.CopyFiles
-
-
-[WDM_SYSAUDIO.CopyFiles]
-sysaudio.sys
-
-[WDM_SYSAUDIO.Services]
-AddService = sysaudio,0x00000002, sysaudio_Service_Inst
-
-[sysaudio_Service_Inst]
-DisplayName = %sysaudio.SvcDesc%
-ServiceType = 1 ; SERVICE_KERNEL_DRIVER
-StartType = 3 ; SERVICE_DEMAND_START
-ErrorControl = 1 ; SERVICE_ERROR_NORMAL
-ServiceBinary = %10%\system32\drivers\sysaudio.sys
-
-;--------------------------------------------------------------------------------
-; KMixer Install
-[WDM_KMIXER.Interface.Install]
-AddReg=WDM_KMIXER.Interface.AddReg
-
-[WDM_KMIXER.Interface.AddReg]
-HKR,,CLSID,,%Proxy.CLSID%
-HKR,,FriendlyName,,%WDM_KMIXER.FriendlyName%
-
-[WDM_KMIXER]
-CopyFiles = WDM_KMIXER.CopyFiles
-
-[WDM_KMIXER.CopyFiles]
-kmixer.sys
-
-[WDM_KMIXER.Services]
-AddService = kmixer, 0x00000002, kmixer_Service_Inst
-
-[kmixer_Service_Inst]
-DisplayName = %kmixer.SvcDesc%
-ServiceType = 1 ; SERVICE_KERNEL_DRIVER
-StartType = 3 ; SERVICE_DEMAND_START
-ErrorControl = 1 ; SERVICE_ERROR_NORMAL
-ServiceBinary = %10%\system32\drivers\kmixer.sys
-;--------------------------------------------------------------------------------
-; WDMAUD Install
-[WDM_WDMAUD.Interface.Install]
-AddReg=WDM_WDMAUD.Interface.AddReg
-
-[WDM_WDMAUD.Interface.AddReg]
-HKR,,CLSID,,%Proxy.CLSID%
-HKR,,FriendlyName,,%WDM_WDMAUD.FriendlyName%
-
-[WDM_WDMAUD]
-CopyFiles = WDM_WDMAUD.CopyFiles
-
-[WDM_WDMAUD.CopyFiles]
-wdmaud.sys
-
-[WDM_WDMAUD.Services]
-AddService = wdmaud,0x00000002, wdmaud_Service_Inst
-
-[wdmaud_Service_Inst]
-DisplayName = %wdmaud.SvcDesc%
-ServiceType = 1 ; SERVICE_KERNEL_DRIVER
-StartType = 3 ; SERVICE_DEMAND_START
-ErrorControl = 1 ; SERVICE_ERROR_NORMAL
-ServiceBinary = %10%\system32\drivers\wdmaud.sys
-
-;--------------------------------------------------------------------------------
-; DRMKAUD Install
-[WDM_DRMKAUD.Interface.Install]
-AddReg=WDM_DRMKAUD.Interface.AddReg
-
-[WDM_DRMKAUD.Interface.AddReg]
-HKR,,CLSID,,%Proxy.CLSID%
-HKR,,FriendlyName,,%WDM_DRMKAUD.FriendlyName%
-
-[WDM_DRMKAUD]
-CopyFiles=WDM_DRMKAUD.CopyFiles
-
-[WDM_DRMKAUD.CopyFiles]
-drmk.sys,,,0x0100
-drmkaud.sys,,,0x0100
-
-[WDM_DRMKAUD.Services]
-AddService = drmkaud, 0x00000002, drmkaud_Service_Inst
-
-[drmkaud_Service_Inst]
-DisplayName = %drmkaud.SvcDesc%
-ServiceType = 1 ; SERVICE_KERNEL_DRIVER
-StartType = 3 ; SERVICE_DEMAND_START
-ErrorControl = 1 ; SERVICE_ERROR_NORMAL
-ServiceBinary = %10%\system32\drivers\drmkaud.sys
-
;; Destination Directory List
[DestinationDirs]