mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
- Fix compilation of cmidriver
- Does not yet link svn path=/trunk/; revision=39827
This commit is contained in:
parent
2eba686398
commit
4b4d95da9c
26 changed files with 272 additions and 484 deletions
|
@ -1,22 +0,0 @@
|
||||||
For compiling and building the WDM driver, the following software is required:
|
|
||||||
- Microsoft Windows Driver Development Kit (http://www.microsoft.com/whdc/devtools/wdk/default.mspx)
|
|
||||||
- 7Zip (http://www.7-zip.org/)
|
|
||||||
- Sed (http://gnuwin32.sourceforge.net/packages/sed.htm)
|
|
||||||
|
|
||||||
The directories which contain 7z.exe, sed.exe and devcon.exe need to be in your %PATH% environment variable. Replace the file 'dsound.lib' in the [WINDDK]\[xxxx]\lib\w2k\i386 folder with the version from [WINDDK]\[xxxx]\lib\wxp\i386.
|
|
||||||
|
|
||||||
The source files should be unpacked to [WINDDK]\[xxxx]\src\[\wdm]\audio\cmedia
|
|
||||||
|
|
||||||
envars.bat - contains some environment variables: you probably want to change them
|
|
||||||
make.bat - creates a debug build for x86 systems
|
|
||||||
update.bat - replaces the currently installed driver with the x86 debug build
|
|
||||||
build-release-x64.bat - creates a non-WaveRT deployment build for x64 systems
|
|
||||||
build-release-x64-WaveRT.bat - creates a WaveRT deployment build for x64 systems
|
|
||||||
build-release-x86.bat - creates a non-WaveRT deployment build for x86 systems
|
|
||||||
build-release-x86-WaveRT.bat - creates a WaveRT deployment build for x86 systems
|
|
||||||
distclean.bat - cleans up and packs the source
|
|
||||||
build-all.bat - builds all versions and packs the source
|
|
||||||
|
|
||||||
For testing and debugging, DebugView (http://www.microsoft.com/technet/sysinternals/utilities/debugview.mspx) is very helpful.
|
|
||||||
|
|
||||||
If you have questions, feel free to mail me: dogber1@gmail.com
|
|
|
@ -26,21 +26,31 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PUT_GUIDS_HERE
|
#define PUT_GUIDS_HERE
|
||||||
|
#include <initguid.h>
|
||||||
#include "adapter.hpp"
|
#include "adapter.hpp"
|
||||||
|
|
||||||
#pragma code_seg("PAGE")
|
//#pragma code_seg("PAGE")
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS InstallSubdevice(PDEVICE_OBJECT DeviceObject, PIRP Irp, PWCHAR Name, REFGUID PortClassId, REFGUID MiniportClassId, PFNCREATEINSTANCE MiniportCreate, PUNKNOWN UnknownAdapter, PRESOURCELIST ResourceList, REFGUID PortInterfaceId, PUNKNOWN* OutPortUnknown)
|
NTSTATUS InstallSubdevice(
|
||||||
|
PDEVICE_OBJECT DeviceObject,
|
||||||
|
PIRP Irp,
|
||||||
|
PWCHAR Name,
|
||||||
|
REFGUID PortClassId,
|
||||||
|
REFGUID MiniportClassId,
|
||||||
|
PFNCREATEINSTANCE MiniportCreate,
|
||||||
|
PUNKNOWN UnknownAdapter,
|
||||||
|
PRESOURCELIST ResourceList,
|
||||||
|
REFGUID PortInterfaceId,
|
||||||
|
PUNKNOWN* OutPortUnknown)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
DBGPRINT(("InstallSubdevice()"));
|
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
NTSTATUS ntStatus;
|
||||||
PPORT Port;
|
PPORT Port;
|
||||||
PMINIPORT MiniPort;
|
PMINIPORT MiniPort;
|
||||||
|
|
||||||
|
////PAGED_CODE();
|
||||||
|
DBGPRINT(("InstallSubdevice()"));
|
||||||
|
|
||||||
ntStatus = PcNewPort(&Port, PortClassId);
|
ntStatus = PcNewPort(&Port, PortClassId);
|
||||||
if (NT_SUCCESS(ntStatus)) {
|
if (NT_SUCCESS(ntStatus)) {
|
||||||
if (MiniportCreate) {
|
if (MiniportCreate) {
|
||||||
|
@ -76,19 +86,24 @@ NTSTATUS InstallSubdevice(PDEVICE_OBJECT DeviceObject, PIRP Irp, PWCHAR Name, RE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS ProcessResources(PRESOURCELIST ResourceList, PRESOURCELIST* UartResourceList)
|
NTSTATUS
|
||||||
|
ProcessResources(
|
||||||
|
PRESOURCELIST ResourceList,
|
||||||
|
PRESOURCELIST* UartResourceList)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
NTSTATUS ntStatus;
|
||||||
ASSERT(ResourceList);
|
|
||||||
ASSERT(UartResourceList);
|
////PAGED_CODE();
|
||||||
DBGPRINT(("ProcessResources()"));
|
////ASSERT(ResourceList);
|
||||||
DBGPRINT(("NumberOfPorts: %d, NumberOfInterrupts: %d, NumberOfDmas: %d", ResourceList->NumberOfPorts(), ResourceList->NumberOfInterrupts(), ResourceList->NumberOfDmas()));
|
////ASSERT(UartResourceList);
|
||||||
|
//DBGPRINT(("ProcessResources()"));
|
||||||
|
//DBGPRINT(("NumberOfPorts: %d, NumberOfInterrupts: %d, NumberOfDmas: %d", ResourceList->NumberOfPorts(), ResourceList->NumberOfInterrupts(), ResourceList->NumberOfDmas()));
|
||||||
|
|
||||||
#ifdef UART
|
#ifdef UART
|
||||||
(*UartResourceList) = NULL;
|
(*UartResourceList) = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
|
||||||
if ((ResourceList->NumberOfPorts() == 0) || (ResourceList->NumberOfPorts() > 2) || (ResourceList->NumberOfInterrupts() != 1) || (ResourceList->NumberOfDmas() != 0)) {
|
if ((ResourceList->NumberOfPorts() == 0) || (ResourceList->NumberOfPorts() > 2) || (ResourceList->NumberOfInterrupts() != 1) || (ResourceList->NumberOfDmas() != 0)) {
|
||||||
DBGPRINT(("Unexpected configuration"));
|
DBGPRINT(("Unexpected configuration"));
|
||||||
return STATUS_DEVICE_CONFIGURATION_ERROR;
|
return STATUS_DEVICE_CONFIGURATION_ERROR;
|
||||||
|
@ -108,15 +123,16 @@ NTSTATUS ProcessResources(PRESOURCELIST ResourceList, PRESOURCELIST* UartResourc
|
||||||
|
|
||||||
NTSTATUS StartDevice(PDEVICE_OBJECT DeviceObject, PIRP Irp, PRESOURCELIST ResourceList)
|
NTSTATUS StartDevice(PDEVICE_OBJECT DeviceObject, PIRP Irp, PRESOURCELIST ResourceList)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
ASSERT(DeviceObject);
|
|
||||||
ASSERT(Irp);
|
|
||||||
ASSERT(ResourceList);
|
|
||||||
DBGPRINT(("StartDevice()"));
|
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
NTSTATUS ntStatus;
|
||||||
PPORT pPort = 0;
|
PPORT pPort = 0;
|
||||||
ULONG* MPUBase;
|
ULONG* MPUBase;
|
||||||
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
|
//ASSERT(DeviceObject);
|
||||||
|
//ASSERT(Irp);
|
||||||
|
//ASSERT(ResourceList);
|
||||||
|
DBGPRINT(("StartDevice()"));
|
||||||
|
#endif
|
||||||
|
|
||||||
ntStatus = PcNewPort(&pPort,CLSID_PortWaveCyclic);
|
ntStatus = PcNewPort(&pPort,CLSID_PortWaveCyclic);
|
||||||
if (NT_SUCCESS(ntStatus)) {
|
if (NT_SUCCESS(ntStatus)) {
|
||||||
|
@ -248,22 +264,29 @@ NTSTATUS StartDevice(PDEVICE_OBJECT DeviceObject, PIRP Irp, PRESOURCELIST Resour
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" NTSTATUS AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT PhysicalDeviceObject)
|
extern
|
||||||
|
"C"
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
AddDevice(
|
||||||
|
PDRIVER_OBJECT DriverObject,
|
||||||
|
PDEVICE_OBJECT PhysicalDeviceObject)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
DBGPRINT(("AddDevice()"));
|
//PAGED_CODE();
|
||||||
|
DBGPRINT(("AddDevice()"));
|
||||||
|
#endif
|
||||||
|
|
||||||
return PcAddAdapterDevice(DriverObject, PhysicalDeviceObject, (PCPFNSTARTDEVICE)StartDevice, MAX_MINIPORTS, 0);
|
return PcAddAdapterDevice(DriverObject, PhysicalDeviceObject, (PCPFNSTARTDEVICE)StartDevice, MAX_MINIPORTS, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CopyResourceDescriptor(PIO_RESOURCE_DESCRIPTOR pInResDescriptor, PIO_RESOURCE_DESCRIPTOR pOutResDescriptor)
|
bool CopyResourceDescriptor(PIO_RESOURCE_DESCRIPTOR pInResDescriptor, PIO_RESOURCE_DESCRIPTOR pOutResDescriptor)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
ASSERT(pInResDescriptor);
|
|
||||||
ASSERT(pOutResDescriptor);
|
|
||||||
DBGPRINT(("CopyResourceDescriptor()"));
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
|
//ASSERT(pInResDescriptor);
|
||||||
|
//ASSERT(pOutResDescriptor);
|
||||||
|
DBGPRINT(("CopyResourceDescriptor()"));
|
||||||
RtlCopyMemory(pOutResDescriptor, pInResDescriptor, sizeof(IO_RESOURCE_DESCRIPTOR));
|
RtlCopyMemory(pOutResDescriptor, pInResDescriptor, sizeof(IO_RESOURCE_DESCRIPTOR));
|
||||||
#else
|
#else
|
||||||
pOutResDescriptor->Type = pInResDescriptor->Type;
|
pOutResDescriptor->Type = pInResDescriptor->Type;
|
||||||
|
@ -283,14 +306,18 @@ bool CopyResourceDescriptor(PIO_RESOURCE_DESCRIPTOR pInResDescriptor, PIO_RESOUR
|
||||||
pOutResDescriptor->u.Port.MaximumAddress = pInResDescriptor->u.Port.MaximumAddress;
|
pOutResDescriptor->u.Port.MaximumAddress = pInResDescriptor->u.Port.MaximumAddress;
|
||||||
pOutResDescriptor->u.Port.Length = pInResDescriptor->u.Port.Length;
|
pOutResDescriptor->u.Port.Length = pInResDescriptor->u.Port.Length;
|
||||||
pOutResDescriptor->u.Port.Alignment = pInResDescriptor->u.Port.Alignment;
|
pOutResDescriptor->u.Port.Alignment = pInResDescriptor->u.Port.Alignment;
|
||||||
|
#if 0
|
||||||
DBGPRINT((" Port: min %08x.%08x max %08x.%08x, Length: %x, Option: %x", pOutResDescriptor->u.Port.MinimumAddress.HighPart, pOutResDescriptor->u.Port.MinimumAddress.LowPart,
|
DBGPRINT((" Port: min %08x.%08x max %08x.%08x, Length: %x, Option: %x", pOutResDescriptor->u.Port.MinimumAddress.HighPart, pOutResDescriptor->u.Port.MinimumAddress.LowPart,
|
||||||
pOutResDescriptor->u.Port.MaximumAddress.HighPart, pOutResDescriptor->u.Port.MaximumAddress.LowPart,
|
pOutResDescriptor->u.Port.MaximumAddress.HighPart, pOutResDescriptor->u.Port.MaximumAddress.LowPart,
|
||||||
pOutResDescriptor->u.Port.Length, pOutResDescriptor->Option));
|
pOutResDescriptor->u.Port.Length, pOutResDescriptor->Option));
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case CmResourceTypeInterrupt:
|
case CmResourceTypeInterrupt:
|
||||||
pOutResDescriptor->u.Interrupt.MinimumVector = pInResDescriptor->u.Interrupt.MinimumVector;
|
pOutResDescriptor->u.Interrupt.MinimumVector = pInResDescriptor->u.Interrupt.MinimumVector;
|
||||||
pOutResDescriptor->u.Interrupt.MaximumVector = pInResDescriptor->u.Interrupt.MaximumVector;
|
pOutResDescriptor->u.Interrupt.MaximumVector = pInResDescriptor->u.Interrupt.MaximumVector;
|
||||||
|
#if 0
|
||||||
DBGPRINT((" IRQ: min %x max %x, Option: %d", pOutResDescriptor->u.Interrupt.MinimumVector, pOutResDescriptor->u.Interrupt.MaximumVector, pOutResDescriptor->Option));
|
DBGPRINT((" IRQ: min %x max %x, Option: %d", pOutResDescriptor->u.Interrupt.MinimumVector, pOutResDescriptor->u.Interrupt.MaximumVector, pOutResDescriptor->Option));
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -299,19 +326,25 @@ bool CopyResourceDescriptor(PIO_RESOURCE_DESCRIPTOR pInResDescriptor, PIO_RESOUR
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" NTSTATUS AdapterDispatchPnp(PDEVICE_OBJECT pDeviceObject, PIRP pIrp)
|
extern
|
||||||
|
"C"
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
AdapterDispatchPnp(
|
||||||
|
PDEVICE_OBJECT pDeviceObject,
|
||||||
|
PIRP pIrp)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
ASSERT(pDeviceObject);
|
|
||||||
ASSERT(pIrp);
|
|
||||||
DBGPRINT(("AdapterDispatchPnp()"));
|
|
||||||
|
|
||||||
NTSTATUS ntStatus = STATUS_SUCCESS;
|
NTSTATUS ntStatus = STATUS_SUCCESS;
|
||||||
ULONG resourceListSize;
|
ULONG resourceListSize;
|
||||||
PIO_RESOURCE_REQUIREMENTS_LIST resourceList, list;
|
PIO_RESOURCE_REQUIREMENTS_LIST resourceList, list;
|
||||||
PIO_RESOURCE_DESCRIPTOR descriptor;
|
PIO_RESOURCE_DESCRIPTOR descriptor;
|
||||||
PIO_STACK_LOCATION pIrpStack = IoGetCurrentIrpStackLocation(pIrp);
|
PIO_STACK_LOCATION pIrpStack = IoGetCurrentIrpStackLocation(pIrp);
|
||||||
|
|
||||||
|
////PAGED_CODE();
|
||||||
|
////ASSERT(pDeviceObject);
|
||||||
|
////ASSERT(pIrp);
|
||||||
|
DBGPRINT(("AdapterDispatchPnp()"));
|
||||||
|
|
||||||
if (pIrpStack->MinorFunction == IRP_MN_FILTER_RESOURCE_REQUIREMENTS) {
|
if (pIrpStack->MinorFunction == IRP_MN_FILTER_RESOURCE_REQUIREMENTS) {
|
||||||
DBGPRINT(("[AdapterDispatchPnp] - IRP_MN_FILTER_RESOURCE_REQUIREMENTS"));
|
DBGPRINT(("[AdapterDispatchPnp] - IRP_MN_FILTER_RESOURCE_REQUIREMENTS"));
|
||||||
|
|
||||||
|
@ -373,7 +406,7 @@ extern "C" NTSTATUS AdapterDispatchPnp(PDEVICE_OBJECT pDeviceObject, PIRP pIrp)
|
||||||
descriptor->u.Port.Length = 1;
|
descriptor->u.Port.Length = 1;
|
||||||
descriptor->u.Port.Alignment = 0x10;
|
descriptor->u.Port.Alignment = 0x10;
|
||||||
|
|
||||||
DBGPRINT(("number of resource list descriptors: %d", resourceList->List[0].Count));
|
// DBGPRINT(("number of resource list descriptors: %d", resourceList->List[0].Count));
|
||||||
|
|
||||||
pIrp->IoStatus.Information = (ULONG_PTR)resourceList;
|
pIrp->IoStatus.Information = (ULONG_PTR)resourceList;
|
||||||
|
|
||||||
|
@ -387,27 +420,35 @@ extern "C" NTSTATUS AdapterDispatchPnp(PDEVICE_OBJECT pDeviceObject, PIRP pIrp)
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPathName)
|
extern
|
||||||
|
"C"
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
DriverEntry(
|
||||||
|
PDRIVER_OBJECT DriverObject,
|
||||||
|
PUNICODE_STRING RegistryPathName)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
NTSTATUS ntStatus;
|
||||||
DBGPRINT(("DriverEntry()"));
|
|
||||||
|
DBGPRINT(("DriverEntry()"));
|
||||||
|
|
||||||
|
|
||||||
|
//bind the adapter driver to the portclass driver
|
||||||
|
ntStatus = PcInitializeAdapterDriver(DriverObject, RegistryPathName, AddDevice);
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
|
||||||
|
|
||||||
//bind the adapter driver to the portclass driver
|
|
||||||
ntStatus = PcInitializeAdapterDriver(DriverObject, RegistryPathName, AddDevice);
|
|
||||||
#ifdef UART
|
#ifdef UART
|
||||||
if(NT_SUCCESS(ntStatus)) {
|
if(NT_SUCCESS(ntStatus)) {
|
||||||
DriverObject->MajorFunction[IRP_MJ_PNP] = AdapterDispatchPnp;
|
DriverObject->MajorFunction[IRP_MJ_PNP] = AdapterDispatchPnp;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
if (!IoIsWdmVersionAvailable(6,0)) {
|
if (!IoIsWdmVersionAvailable(6,0)) {
|
||||||
ntStatus = STATUS_UNSUCCESSFUL;
|
ntStatus = STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma code_seg()
|
#pragma code_seg()
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
@echo off
|
|
||||||
start /wait cmd.exe /c distclean.bat
|
|
||||||
start /wait cmd.exe /c build-release-x64.bat
|
|
||||||
start /wait cmd.exe /c build-release-x64-WaveRT.bat
|
|
||||||
start /wait cmd.exe /c build-release-x86.bat
|
|
||||||
start /wait cmd.exe /c build-release-x86-WaveRT.bat
|
|
|
@ -1,32 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
call %CMI_DDKDIR%\bin\setenv %CMI_DDKDIR% fre AMD64
|
|
||||||
cd %CMI_BUILDDIR%
|
|
||||||
del CMIDriver-%CMI_VERSION%-bin-x64-WaveRT.zip
|
|
||||||
del installer\objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del installer\objfre_wlh_AMD64\AMD64\*.exe
|
|
||||||
del cmicontrol\objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del cmicontrol\objfre_wlh_AMD64\AMD64\*.exe
|
|
||||||
del cpl\objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del cpl\objfre_wlh_AMD64\AMD64\*.exe
|
|
||||||
del objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del objfre_wlh_AMD64\AMD64\*.sys
|
|
||||||
sed -i "s/CMIVERSION.*/CMIVERSION \"%CMI_VERSION%\"/" debug.hpp
|
|
||||||
sed -i "s/^\/\/#define WAVERT/#define WAVERT/" debug.hpp
|
|
||||||
nmake /x errors.err
|
|
||||||
mkdir release-x64-WaveRT
|
|
||||||
copy objfre_wlh_AMD64\AMD64\*.sys release-x64-WaveRT
|
|
||||||
sed -e "s/CMIVersion/%CMI_VERSION%/" -e "s/CMIReleaseDate/%CMI_RELEASEDATE%/" CM8738-x64-WaveRT.inf >release-x64-WaveRT\CM8738.inf
|
|
||||||
copy CHANGELOG.txt release-x64-WaveRT
|
|
||||||
cd cmicontrol
|
|
||||||
nmake /x errors.err
|
|
||||||
copy objfre_wlh_AMD64\AMD64\cmicontrol.exe ..\release-x64-WaveRT
|
|
||||||
cd ..\cpl
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wlh_AMD64\AMD64\cmicpl.cpl ..\release-x64-WaveRT
|
|
||||||
cd ..\installer
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wlh_AMD64\AMD64\setup.exe ..\release-x64-WaveRT
|
|
||||||
cd ..\release-x64-WaveRT
|
|
||||||
7z a -tzip ..\CMIDriver-%CMI_VERSION%-bin-x64-WaveRT.zip *
|
|
||||||
cd ..
|
|
|
@ -1,32 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
call %CMI_DDKDIR%\bin\setenv %CMI_DDKDIR% fre AMD64
|
|
||||||
cd %CMI_BUILDDIR%
|
|
||||||
del CMIDriver-%CMI_VERSION%-bin-x64.zip
|
|
||||||
del installer\objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del installer\objfre_wlh_AMD64\AMD64\*.exe
|
|
||||||
del cmicontrol\objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del cmicontrol\objfre_wlh_AMD64\AMD64\*.exe
|
|
||||||
del cpl\objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del cpl\objfre_wlh_AMD64\AMD64\*.exe
|
|
||||||
del objfre_wlh_AMD64\AMD64\*.obj
|
|
||||||
del objfre_wlh_AMD64\AMD64\*.sys
|
|
||||||
sed -i "s/CMIVERSION.*/CMIVERSION \"%CMI_VERSION%\"/" debug.hpp
|
|
||||||
sed -i "s/^#define WAVERT/\/\/#define WAVERT/" debug.hpp
|
|
||||||
nmake /x errors.err
|
|
||||||
mkdir release-x64
|
|
||||||
copy objfre_wlh_AMD64\AMD64\*.sys release-x64
|
|
||||||
sed -e "s/CMIVersion/%CMI_VERSION%/" -e "s/CMIReleaseDate/%CMI_RELEASEDATE%/" CM8738-x64.inf >release-x64\CM8738.inf
|
|
||||||
copy CHANGELOG.txt release-x64
|
|
||||||
cd cmicontrol
|
|
||||||
nmake /x errors.err
|
|
||||||
copy objfre_wlh_AMD64\AMD64\cmicontrol.exe ..\release-x64
|
|
||||||
cd ..\cpl
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wlh_AMD64\AMD64\cmicpl.cpl ..\release-x64
|
|
||||||
cd ..\installer
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wlh_AMD64\AMD64\setup.exe ..\release-x64
|
|
||||||
cd ..\release-x64
|
|
||||||
7z a -tzip ..\CMIDriver-%CMI_VERSION%-bin-x64.zip *
|
|
||||||
cd ..
|
|
|
@ -1,32 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
call %CMI_DDKDIR%\bin\setenv %CMI_DDKDIR% fre x86
|
|
||||||
cd %CMI_BUILDDIR%
|
|
||||||
del CMIDriver-%CMI_VERSION%-bin-x86-WaveRT.zip
|
|
||||||
del installer\objfre_wlh_x86\i386\*.obj
|
|
||||||
del installer\objfre_wlh_x86\i386\*.exe
|
|
||||||
del cmicontrol\objfre_wlh_x86\i386\*.obj
|
|
||||||
del cmicontrol\objfre_wlh_x86\i386\*.exe
|
|
||||||
del cpl\objfre_wlh_x86\i386\*.obj
|
|
||||||
del cpl\objfre_wlh_x86\i386\*.exe
|
|
||||||
del objfre_wlh_x86\i386\*.obj
|
|
||||||
del objfre_wlh_x86\i386\*.sys
|
|
||||||
sed -i "s/CMIVERSION.*/CMIVERSION \"%CMI_VERSION%\"/" debug.hpp
|
|
||||||
sed -i "s/^\/\/#define WAVERT/#define WAVERT/" debug.hpp
|
|
||||||
nmake /x errors.err
|
|
||||||
mkdir release-x86-WaveRT
|
|
||||||
copy objfre_wlh_x86\i386\*.sys release-x86-WaveRT
|
|
||||||
sed -e "s/CMIVersion/%CMI_VERSION%/" -e "s/CMIReleaseDate/%CMI_RELEASEDATE%/" CM8738-x32-WaveRT.inf >release-x86-WaveRT\CM8738.inf
|
|
||||||
copy CHANGELOG.txt release-x86-WaveRT
|
|
||||||
cd cmicontrol
|
|
||||||
nmake /x errors.err
|
|
||||||
copy objfre_wlh_x86\i386\cmicontrol.exe ..\release-x86-WaveRT
|
|
||||||
cd ..\cpl
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wlh_x86\i386\cmicpl.cpl ..\release-x86-WaveRT
|
|
||||||
cd ..\installer
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wlh_x86\i386\setup.exe ..\release-x86-WaveRT
|
|
||||||
cd ..\release-x86-WaveRT
|
|
||||||
7z a -tzip ..\CMIDriver-%CMI_VERSION%-bin-x86-WaveRT.zip *
|
|
||||||
cd ..
|
|
|
@ -1,32 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
call %CMI_DDKDIR%\bin\setenv %CMI_DDKDIR% fre x86 wxp
|
|
||||||
cd %CMI_BUILDDIR%
|
|
||||||
del CMIDriver-%CMI_VERSION%-bin-x86.zip
|
|
||||||
del installer\objfre_wxp_x86\i386\*.obj
|
|
||||||
del installer\objfre_wxp_x86\i386\*.exe
|
|
||||||
del cmicontrol\objfre_wxp_x86\i386\*.obj
|
|
||||||
del cmicontrol\objfre_wxp_x86\i386\*.exe
|
|
||||||
del cpl\objfre_wxp_x86\i386\*.obj
|
|
||||||
del cpl\objfre_wxp_x86\i386\*.exe
|
|
||||||
del objfre_wxp_x86\i386\*.obj
|
|
||||||
del objfre_wxp_x86\i386\*.sys
|
|
||||||
sed -i "s/CMIVERSION.*/CMIVERSION \"%CMI_VERSION%\"/" debug.hpp
|
|
||||||
sed -i "s/^#define WAVERT/\/\/#define WAVERT/" debug.hpp
|
|
||||||
nmake /x errors.err
|
|
||||||
mkdir release-x86
|
|
||||||
copy objfre_wxp_x86\i386\*.sys release-x86
|
|
||||||
sed -e "s/CMIVersion/%CMI_VERSION%/" -e "s/CMIReleaseDate/%CMI_RELEASEDATE%/" CM8738-x32.inf >release-x86\CM8738.inf
|
|
||||||
copy CHANGELOG.txt release-x86
|
|
||||||
cd cmicontrol
|
|
||||||
nmake /x errors.err
|
|
||||||
copy objfre_wxp_x86\i386\cmicontrol.exe ..\release-x86
|
|
||||||
cd ..\cpl
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wxp_x86\i386\cmicpl.cpl ..\release-x86
|
|
||||||
cd ..\installer
|
|
||||||
build -cZ
|
|
||||||
copy objfre_wxp_x86\i386\setup.exe ..\release-x86
|
|
||||||
cd ..\release-x86
|
|
||||||
7z a -tzip ..\CMIDriver-%CMI_VERSION%-bin-x86.zip *
|
|
||||||
cd ..
|
|
14
reactos/drivers/wdm/audio/drivers/CMIDriver/cmidriver.rbuild
Normal file
14
reactos/drivers/wdm/audio/drivers/CMIDriver/cmidriver.rbuild
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE module SYSTEM "../../../../../tools/rbuild/project.dtd">
|
||||||
|
<module name="cmidriver" type="kernelmodedriver" installbase="system32/drivers" installname="cmipci.sys" allowwarnings="true">
|
||||||
|
<include base="mpu401">.</include>
|
||||||
|
<library>ntoskrnl</library>
|
||||||
|
<library>portcls</library>
|
||||||
|
<library>hal</library>
|
||||||
|
<library>ks</library>
|
||||||
|
<file>adapter.cpp</file>
|
||||||
|
<file>common.cpp</file>
|
||||||
|
<file>mintopo.cpp</file>
|
||||||
|
<file>minwave.cpp</file>
|
||||||
|
<file>cmipci.rc</file>
|
||||||
|
</module>
|
|
@ -170,4 +170,4 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define SBREG_EXTENSION 0xF0 // Soundblaster Extension Register (8bit)
|
#define SBREG_EXTENSION 0xF0 // Soundblaster Extension Register (8bit)
|
||||||
#define EN_MICBOOST 0x01 // enable microphone boost for recording
|
#define EN_MICBOOST 0x01 // enable microphone boost for recording
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,22 +29,31 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#pragma code_seg("PAGE")
|
#pragma code_seg("PAGE")
|
||||||
|
|
||||||
NTSTATUS NewCMIAdapter(PUNKNOWN *Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
|
NTSTATUS
|
||||||
|
NewCMIAdapter(
|
||||||
|
PUNKNOWN *Unknown,
|
||||||
|
REFCLSID,
|
||||||
|
PUNKNOWN UnknownOuter,
|
||||||
|
POOL_TYPE PoolType)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
DBGPRINT(("NewCMIAdapter()"));
|
DBGPRINT(("NewCMIAdapter()"));
|
||||||
ASSERT (Unknown);
|
//ASSERT (Unknown);
|
||||||
|
#endif
|
||||||
STD_CREATE_BODY_(CCMIAdapter, Unknown, UnknownOuter, PoolType, PCMIADAPTER);
|
STD_CREATE_BODY_(CCMIAdapter, Unknown, UnknownOuter, PoolType, PCMIADAPTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CCMIAdapter::init(PRESOURCELIST ResourceList, PDEVICE_OBJECT aDeviceObject)
|
STDMETHODIMP_(NTSTATUS) CCMIAdapter::init(PRESOURCELIST ResourceList, PDEVICE_OBJECT aDeviceObject)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
ASSERT(ResourceList);
|
//PAGED_CODE();
|
||||||
ASSERT(aDeviceObject);
|
//ASSERT(ResourceList);
|
||||||
ASSERT(ResourceList->FindTranslatedPort(0));
|
//ASSERT(aDeviceObject);
|
||||||
|
//ASSERT(ResourceList->FindTranslatedPort(0));
|
||||||
DBGPRINT(("CCMIAdapter[%p]::init()", this));
|
DBGPRINT(("CCMIAdapter[%p]::init()", this));
|
||||||
|
#endif
|
||||||
|
|
||||||
NTSTATUS ntStatus = STATUS_SUCCESS;
|
NTSTATUS ntStatus = STATUS_SUCCESS;
|
||||||
|
|
||||||
|
@ -110,7 +119,7 @@ STDMETHODIMP_(NTSTATUS) CCMIAdapter::init(PRESOURCELIST ResourceList, PDEVICE_OB
|
||||||
|
|
||||||
CCMIAdapter::~CCMIAdapter()
|
CCMIAdapter::~CCMIAdapter()
|
||||||
{
|
{
|
||||||
PAGED_CODE ();
|
//PAGED_CODE ();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::~CCMIAdapter()", this));
|
DBGPRINT(("CCMIAdapter[%p]::~CCMIAdapter()", this));
|
||||||
|
|
||||||
if (InterruptSync) {
|
if (InterruptSync) {
|
||||||
|
@ -122,11 +131,11 @@ CCMIAdapter::~CCMIAdapter()
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CCMIAdapter::NonDelegatingQueryInterface(REFIID Interface, PVOID* Object)
|
STDMETHODIMP_(NTSTATUS) CCMIAdapter::NonDelegatingQueryInterface(REFIID Interface, PVOID* Object)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
|
|
||||||
DBGPRINT(("CCMIAdapter[%p]::NonDelegatingQueryInterface()", this));
|
DBGPRINT(("CCMIAdapter[%p]::NonDelegatingQueryInterface()", this));
|
||||||
|
|
||||||
ASSERT(Object);
|
//ASSERT(Object);
|
||||||
|
|
||||||
// Is it IID_IUnknown?
|
// Is it IID_IUnknown?
|
||||||
if (IsEqualGUIDAligned (Interface, IID_IUnknown)) {
|
if (IsEqualGUIDAligned (Interface, IID_IUnknown)) {
|
||||||
|
@ -155,7 +164,7 @@ STDMETHODIMP_(NTSTATUS) CCMIAdapter::NonDelegatingQueryInterface(REFIID Interfac
|
||||||
|
|
||||||
bool CCMIAdapter::queryChip()
|
bool CCMIAdapter::queryChip()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::queryChip()", this));
|
DBGPRINT(("CCMIAdapter[%p]::queryChip()", this));
|
||||||
|
|
||||||
UInt32 version = readUInt32(REG_INTHLDCLR) & VERSION_MASK;
|
UInt32 version = readUInt32(REG_INTHLDCLR) & VERSION_MASK;
|
||||||
|
@ -216,7 +225,7 @@ bool CCMIAdapter::queryChip()
|
||||||
|
|
||||||
void CCMIAdapter::resetMixer()
|
void CCMIAdapter::resetMixer()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::resetMixer()", this));
|
DBGPRINT(("CCMIAdapter[%p]::resetMixer()", this));
|
||||||
|
|
||||||
writeMixer(0, 0);
|
writeMixer(0, 0);
|
||||||
|
@ -225,8 +234,10 @@ void CCMIAdapter::resetMixer()
|
||||||
|
|
||||||
void CCMIAdapter::resetController()
|
void CCMIAdapter::resetController()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::resetController()", this));
|
DBGPRINT(("CCMIAdapter[%p]::resetController()", this));
|
||||||
|
#endif
|
||||||
|
|
||||||
writeUInt32(REG_INTHLDCLR, 0);
|
writeUInt32(REG_INTHLDCLR, 0);
|
||||||
|
|
||||||
|
@ -258,10 +269,11 @@ void CCMIAdapter::resetController()
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CCMIAdapter::activateMPU(ULONG* MPUBase)
|
STDMETHODIMP_(NTSTATUS) CCMIAdapter::activateMPU(ULONG* MPUBase)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
DBGPRINT(("CCMIAdapter[%p]::activateMPU(%X)", this, MPUBase));
|
|
||||||
|
|
||||||
UInt32 LegacyCtrl;
|
UInt32 LegacyCtrl;
|
||||||
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
|
DBGPRINT(("CCMIAdapter[%p]::activateMPU(%X)", this, MPUBase));
|
||||||
|
#endif
|
||||||
|
|
||||||
switch ((LONGLONG)MPUBase) {
|
switch ((LONGLONG)MPUBase) {
|
||||||
case 0x300: LegacyCtrl = UART_300; break;
|
case 0x300: LegacyCtrl = UART_300; break;
|
||||||
|
@ -284,8 +296,10 @@ STDMETHODIMP_(NTSTATUS) CCMIAdapter::activateMPU(ULONG* MPUBase)
|
||||||
// XP's order of power states when going to hibernate: D3 -> D0, waking up: D0 -> D3.
|
// XP's order of power states when going to hibernate: D3 -> D0, waking up: D0 -> D3.
|
||||||
STDMETHODIMP_(void) CCMIAdapter::PowerChangeState(POWER_STATE NewState)
|
STDMETHODIMP_(void) CCMIAdapter::PowerChangeState(POWER_STATE NewState)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::PowerChangeState(%p)", this, NewState));
|
DBGPRINT(("CCMIAdapter[%p]::PowerChangeState(%p)", this, NewState));
|
||||||
|
#endif
|
||||||
|
|
||||||
if (NewState.DeviceState == CurrentPowerState ) {
|
if (NewState.DeviceState == CurrentPowerState ) {
|
||||||
return;
|
return;
|
||||||
|
@ -318,25 +332,31 @@ STDMETHODIMP_(void) CCMIAdapter::PowerChangeState(POWER_STATE NewState)
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CCMIAdapter::QueryPowerChangeState(POWER_STATE NewStateQuery)
|
STDMETHODIMP_(NTSTATUS) CCMIAdapter::QueryPowerChangeState(POWER_STATE NewStateQuery)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::QueryPowerChangeState(%p)", this, NewStateQuery));
|
DBGPRINT(("CCMIAdapter[%p]::QueryPowerChangeState(%p)", this, NewStateQuery));
|
||||||
|
#endif
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CCMIAdapter::QueryDeviceCapabilities(PDEVICE_CAPABILITIES PowerDeviceCaps)
|
STDMETHODIMP_(NTSTATUS) CCMIAdapter::QueryDeviceCapabilities(PDEVICE_CAPABILITIES PowerDeviceCaps)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMIAdapter[%p]::QueryDeviceCapabilities(%p)", this, PowerDeviceCaps));
|
DBGPRINT(("CCMIAdapter[%p]::QueryDeviceCapabilities(%p)", this, PowerDeviceCaps));
|
||||||
|
#endif
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CCMIAdapter::loadSBMixerFromMemory()
|
STDMETHODIMP_(NTSTATUS) CCMIAdapter::loadSBMixerFromMemory()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
DBGPRINT(("CCMIAdapter[%p]::loadSBMixerFromMemory()", this));
|
|
||||||
UInt8 sbIndex[] = { 0x04, 0x0A, 0x22, 0x28, 0x2E, 0x30, 0x31, 0x32, 0x33, 0x36, 0x37, 0x38,
|
UInt8 sbIndex[] = { 0x04, 0x0A, 0x22, 0x28, 0x2E, 0x30, 0x31, 0x32, 0x33, 0x36, 0x37, 0x38,
|
||||||
0x39, 0x3A, 0x3C, 0x3D, 0x3E, 0xF0 };
|
0x39, 0x3A, 0x3C, 0x3D, 0x3E, 0xF0 };
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
//PAGED_CODE();
|
||||||
|
DBGPRINT(("CCMIAdapter[%p]::loadSBMixerFromMemory()", this));
|
||||||
|
#endif
|
||||||
for (int i = 0; i<(sizeof(sbIndex)/sizeof(sbIndex[0]));i++) {
|
for (int i = 0; i<(sizeof(sbIndex)/sizeof(sbIndex[0]));i++) {
|
||||||
writeUInt8(REG_SBINDEX, sbIndex[i]);
|
writeUInt8(REG_SBINDEX, sbIndex[i]);
|
||||||
writeUInt8(REG_SBDATA, mixerCache[i]);
|
writeUInt8(REG_SBDATA, mixerCache[i]);
|
||||||
|
@ -431,13 +451,15 @@ STDMETHODIMP_(void) CCMIAdapter::clearMixerBit(UInt8 index, UInt8 flag)
|
||||||
|
|
||||||
NTSTATUS CCMIAdapter::InterruptServiceRoutine(PINTERRUPTSYNC InterruptSync, PVOID DynamicContext)
|
NTSTATUS CCMIAdapter::InterruptServiceRoutine(PINTERRUPTSYNC InterruptSync, PVOID DynamicContext)
|
||||||
{
|
{
|
||||||
ASSERT(InterruptSync);
|
|
||||||
ASSERT(DynamicContext);
|
|
||||||
|
|
||||||
UInt32 status, mask = 0;
|
UInt32 status, mask = 0;
|
||||||
|
|
||||||
CCMIAdapter *CMIAdapter = (CCMIAdapter *)DynamicContext;
|
CCMIAdapter *CMIAdapter = (CCMIAdapter *)DynamicContext;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
//ASSERT(InterruptSync);
|
||||||
|
//ASSERT(DynamicContext);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!(CMIAdapter->cm.WaveMiniport)) {
|
if (!(CMIAdapter->cm.WaveMiniport)) {
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,11 +28,13 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#ifndef _COMMON_HPP_
|
#ifndef _COMMON_HPP_
|
||||||
#define _COMMON_HPP_
|
#define _COMMON_HPP_
|
||||||
|
|
||||||
|
#include "ntddk.h"
|
||||||
#include "stdunk.h"
|
#include "stdunk.h"
|
||||||
#include "portcls.h"
|
#include "portcls.h"
|
||||||
#include "dmusicks.h"
|
#include "dmusicks.h"
|
||||||
#include "ksdebug.h"
|
#include "ksdebug.h"
|
||||||
#include "kcom.h"
|
#include "kcom.h"
|
||||||
|
#include "ksmedia.h"
|
||||||
|
|
||||||
#include "interfaces.hpp"
|
#include "interfaces.hpp"
|
||||||
#include "debug.hpp"
|
#include "debug.hpp"
|
||||||
|
|
Binary file not shown.
|
@ -1,53 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
|
|
||||||
rd /s /q cpl\objchk_wxp_x86
|
|
||||||
rd /s /q cpl\objchk_wxp_amd64
|
|
||||||
rd /s /q cpl\objfre_wxp_x86
|
|
||||||
rd /s /q cpl\objfre_wxp_amd64
|
|
||||||
rd /s /q cpl\objchk_wlh_x86
|
|
||||||
rd /s /q cpl\objchk_wlh_amd64
|
|
||||||
rd /s /q cpl\objfre_wlh_x86
|
|
||||||
rd /s /q cpl\objfre_wlh_amd64
|
|
||||||
del cpl\errors.err
|
|
||||||
del cpl\build*.*
|
|
||||||
|
|
||||||
rd /s /q cmicontrol\objchk_wxp_x86
|
|
||||||
rd /s /q cmicontrol\objchk_wxp_amd64
|
|
||||||
rd /s /q cmicontrol\objfre_wxp_x86
|
|
||||||
rd /s /q cmicontrol\objfre_wxp_amd64
|
|
||||||
rd /s /q cmicontrol\objchk_wlh_x86
|
|
||||||
rd /s /q cmicontrol\objchk_wlh_amd64
|
|
||||||
rd /s /q cmicontrol\objfre_wlh_x86
|
|
||||||
rd /s /q cmicontrol\objfre_wlh_amd64
|
|
||||||
del cmicontrol\errors.err
|
|
||||||
del cmicontrol\build*.*
|
|
||||||
|
|
||||||
rd /s /q installer\objchk_wxp_x86
|
|
||||||
rd /s /q installer\objchk_wxp_amd64
|
|
||||||
rd /s /q installer\objfre_wxp_x86
|
|
||||||
rd /s /q installer\objfre_wxp_amd64
|
|
||||||
rd /s /q installer\objchk_wlh_x86
|
|
||||||
rd /s /q installer\objchk_wlh_amd64
|
|
||||||
rd /s /q installer\objfre_wlh_x86
|
|
||||||
rd /s /q installer\objfre_wlh_amd64
|
|
||||||
del installer\errors.err
|
|
||||||
del installer\build*.*
|
|
||||||
|
|
||||||
rd /s /q objchk_wxp_x86
|
|
||||||
rd /s /q objchk_wxp_amd64
|
|
||||||
rd /s /q objfre_wxp_x86
|
|
||||||
rd /s /q objfre_wxp_amd64
|
|
||||||
rd /s /q objchk_wlh_x86
|
|
||||||
rd /s /q objchk_wlh_amd64
|
|
||||||
rd /s /q objfre_wlh_x86
|
|
||||||
rd /s /q objfre_wlh_amd64
|
|
||||||
del errors.err
|
|
||||||
|
|
||||||
rd /s /q release-x86
|
|
||||||
rd /s /q release-x64
|
|
||||||
rd /s /q release-x86-WaveRT
|
|
||||||
rd /s /q release-x64-WaveRT
|
|
||||||
rd /s /q debug-x86
|
|
||||||
del *.zip
|
|
||||||
7z a -tzip CMIDriver-%CMI_VERSION%-src.zip * cmicontrol\* cpl\* installer\*
|
|
|
@ -1,14 +0,0 @@
|
||||||
@echo off
|
|
||||||
set CMI_DDKDIR=c:\WinDDK\6000
|
|
||||||
set CMI_BUILDDIR=C:\WinDDK\6000\src\Audio\CMedia
|
|
||||||
set CMI_VERSION=1.1.3
|
|
||||||
REM the slashes need to be escaped for sed.exe
|
|
||||||
set CMI_RELEASEDATE=06\/30\/2007
|
|
||||||
REM wxp | wlh
|
|
||||||
set CMI_DEBUGOS=wlh
|
|
||||||
REM x86 | AMD64
|
|
||||||
set CMI_DEBUGARCH=x86
|
|
||||||
REM WaveRT |
|
|
||||||
set CMI_DEBUGVER=
|
|
||||||
REM find out with 'devcon dp_enum'
|
|
||||||
set CMI_OEMINF="oem1.inf"
|
|
|
@ -28,8 +28,10 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#ifndef _INTERFACES_HPP_
|
#ifndef _INTERFACES_HPP_
|
||||||
#define _INTERFACES_HPP_
|
#define _INTERFACES_HPP_
|
||||||
|
|
||||||
|
#include <ntddk.h>
|
||||||
#include <portcls.h>
|
#include <portcls.h>
|
||||||
#include <stdunk.h>
|
#include <stdunk.h>
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
#define MAXLEN_DMA_BUFFER 0x18000
|
#define MAXLEN_DMA_BUFFER 0x18000
|
||||||
#define MAX_OUTPUT_STREAMS 1
|
#define MAX_OUTPUT_STREAMS 1
|
||||||
|
@ -460,4 +462,4 @@ enum
|
||||||
KSNODE_WAVE_INVALID
|
KSNODE_WAVE_INVALID
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_INTERFACES_HPP_
|
#endif //_INTERFACES_HPP_
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
if "%DDKBUILDENV%"=="chk" goto :AlreadyDefined
|
|
||||||
call %CMI_DDKDIR%\bin\setenv %CMI_DDKDIR% chk %CMI_DEBUGARCH% %CMI_DEBUGOS%
|
|
||||||
:AlreadyDefined
|
|
||||||
cd %CMI_BUILDDIR%
|
|
||||||
|
|
||||||
if "%CMI_DEBUGARCH%"=="AMD64" goto :x64
|
|
||||||
set CMI_DEBUGDIR=objchk_%CMI_DEBUGOS%_%CMI_DEBUGARCH%\i386
|
|
||||||
mkdir %CMI_DEBUGDIR%
|
|
||||||
sed -e "s/CMIVersion/%CMI_VERSION%-dbg/" -e "s/CMIReleaseDate/%CMI_RELEASEDATE%/" CM8738-x32%WAVERTSTR%.INF >%CMI_DEBUGDIR%\CM8738.inf
|
|
||||||
goto start
|
|
||||||
:x64
|
|
||||||
set CMI_DEBUGDIR=objchk_%CMI_DEBUGOS%_%CMI_DEBUGARCH%\AMD64
|
|
||||||
mkdir %CMI_DEBUGDIR%
|
|
||||||
sed -e "s/CMIVersion/%CMI_VERSION%-dbg/" -e "s/CMIReleaseDate/%CMI_RELEASEDATE%/" CM8738-x64%WAVERTSTR%.inf >%CMI_DEBUGDIR%\CM8738.inf
|
|
||||||
|
|
||||||
:start
|
|
||||||
del %CMI_DEBUGDIR%\*.obj
|
|
||||||
|
|
||||||
sed -i "s/CMIVERSION.*/CMIVERSION \"%CMI_VERSION%-debug\"/" debug.hpp
|
|
||||||
|
|
||||||
if "%CMI_DEBUGVER%"=="WaveRT" goto :WaveRT
|
|
||||||
sed -i "s/^#define WAVERT/\/\/#define WAVERT/" debug.hpp
|
|
||||||
goto next
|
|
||||||
:WaveRT
|
|
||||||
sed -i "s/^\/\/#define WAVERT/#define WAVERT/" debug.hpp
|
|
||||||
:next
|
|
||||||
|
|
||||||
nmake /x errors.err
|
|
||||||
|
|
||||||
if "%CMI_DEBUGVER%"=="WaveRT" goto :WaveRT2
|
|
||||||
set WAVERTSTR=""
|
|
||||||
goto end
|
|
||||||
:WaveRT2
|
|
||||||
set WAVERTSTR="-WAVERT"
|
|
||||||
|
|
||||||
:end
|
|
||||||
sed -i "s/^cmicpl.*$//g" %CMI_DEBUGDIR%\CM8738.inf
|
|
||||||
sed -i "s/^CMICONTROL.*$//g" %CMI_DEBUGDIR%\CM8738.inf
|
|
|
@ -1,6 +0,0 @@
|
||||||
!if defined(DDK_TARGET_OS) && "$(DDK_TARGET_OS)"!="Win2K"
|
|
||||||
!INCLUDE $(NTMAKEENV)\makefile.def
|
|
||||||
!else
|
|
||||||
!message This project is for Windows XP (or later) only.
|
|
||||||
!endif
|
|
||||||
|
|
|
@ -35,18 +35,18 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
NTSTATUS CreateMiniportTopologyCMI(PUNKNOWN* Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
|
NTSTATUS CreateMiniportTopologyCMI(PUNKNOWN* Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(Unknown);
|
//ASSERT(Unknown);
|
||||||
STD_CREATE_BODY_(CCMITopology,Unknown,UnknownOuter,PoolType,PMINIPORTTOPOLOGY);
|
STD_CREATE_BODY_(CCMITopology,Unknown,UnknownOuter,PoolType,PMINIPORTTOPOLOGY);
|
||||||
}
|
}
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::NonDelegatingQueryInterface(REFIID Interface, PVOID* Object)
|
STDMETHODIMP CCMITopology::NonDelegatingQueryInterface(REFIID Interface, PVOID* Object)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(Object);
|
//ASSERT(Object);
|
||||||
DBGPRINT(("CCMITopology::NonDelegatingQueryInterface"));
|
DBGPRINT(("CCMITopology::NonDelegatingQueryInterface"));
|
||||||
|
|
||||||
if (IsEqualGUIDAligned(Interface,IID_IUnknown)) {
|
if (IsEqualGUIDAligned(Interface, IID_IUnknown)) {
|
||||||
*Object = PVOID(PUNKNOWN(PMINIPORTTOPOLOGY(this)));
|
*Object = PVOID(PUNKNOWN(PMINIPORTTOPOLOGY(this)));
|
||||||
} else if (IsEqualGUIDAligned(Interface,IID_IMiniport)) {
|
} else if (IsEqualGUIDAligned(Interface,IID_IMiniport)) {
|
||||||
*Object = PVOID(PMINIPORT(this));
|
*Object = PVOID(PMINIPORT(this));
|
||||||
|
@ -68,7 +68,7 @@ STDMETHODIMP CCMITopology::NonDelegatingQueryInterface(REFIID Interface, PVOID*
|
||||||
|
|
||||||
CCMITopology::~CCMITopology()
|
CCMITopology::~CCMITopology()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
|
|
||||||
DBGPRINT(("CCMITopology::~CCMITopology"));
|
DBGPRINT(("CCMITopology::~CCMITopology"));
|
||||||
|
|
||||||
|
@ -82,9 +82,9 @@ CCMITopology::~CCMITopology()
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST ResourceList, PPORTTOPOLOGY Port)
|
STDMETHODIMP CCMITopology::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST ResourceList, PPORTTOPOLOGY Port)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(UnknownAdapter);
|
//ASSERT(UnknownAdapter);
|
||||||
ASSERT(Port);
|
//ASSERT(Port);
|
||||||
DBGPRINT(("CCMITopology::Init"));
|
DBGPRINT(("CCMITopology::Init"));
|
||||||
|
|
||||||
NTSTATUS ntStatus = UnknownAdapter->QueryInterface(IID_ICMIAdapter, (PVOID *)&CMIAdapter);
|
NTSTATUS ntStatus = UnknownAdapter->QueryInterface(IID_ICMIAdapter, (PVOID *)&CMIAdapter);
|
||||||
|
@ -111,8 +111,8 @@ STDMETHODIMP CCMITopology::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST ResourceL
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::GetDescription(PPCFILTER_DESCRIPTOR* OutFilterDescriptor)
|
STDMETHODIMP CCMITopology::GetDescription(PPCFILTER_DESCRIPTOR* OutFilterDescriptor)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(OutFilterDescriptor);
|
//ASSERT(OutFilterDescriptor);
|
||||||
DBGPRINT(("CCMITopology::GetDescription"));
|
DBGPRINT(("CCMITopology::GetDescription"));
|
||||||
|
|
||||||
*OutFilterDescriptor = &MiniportFilterDescriptor;
|
*OutFilterDescriptor = &MiniportFilterDescriptor;
|
||||||
|
@ -122,7 +122,7 @@ STDMETHODIMP CCMITopology::GetDescription(PPCFILTER_DESCRIPTOR* OutFilterDescri
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::loadMixerSettingsFromRegistry()
|
STDMETHODIMP CCMITopology::loadMixerSettingsFromRegistry()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMITopology::loadMixerSettingsFromRegistry"));
|
DBGPRINT(("CCMITopology::loadMixerSettingsFromRegistry"));
|
||||||
|
|
||||||
PREGISTRYKEY DriverKey;
|
PREGISTRYKEY DriverKey;
|
||||||
|
@ -269,7 +269,7 @@ STDMETHODIMP CCMITopology::loadMixerSettingsFromRegistry()
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::storeMixerSettingsToRegistry()
|
STDMETHODIMP CCMITopology::storeMixerSettingsToRegistry()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMITopology::storeMixerSettingsToRegistry"));
|
DBGPRINT(("CCMITopology::storeMixerSettingsToRegistry"));
|
||||||
|
|
||||||
PREGISTRYKEY DriverKey;
|
PREGISTRYKEY DriverKey;
|
||||||
|
@ -429,7 +429,7 @@ STDMETHODIMP CCMITopology::storeMixerSettingsToRegistry()
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::loadMixerSettingsFromMemory()
|
STDMETHODIMP CCMITopology::loadMixerSettingsFromMemory()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMITopology::loadMixerSettingsFromMemory"));
|
DBGPRINT(("CCMITopology::loadMixerSettingsFromMemory"));
|
||||||
|
|
||||||
CMIAdapter->resetMixer();
|
CMIAdapter->resetMixer();
|
||||||
|
@ -449,7 +449,7 @@ STDMETHODIMP CCMITopology::loadMixerSettingsFromMemory()
|
||||||
|
|
||||||
STDMETHODIMP CCMITopology::storeMixerSettingsToMemory()
|
STDMETHODIMP CCMITopology::storeMixerSettingsToMemory()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CCMITopology::storeMixerSettingsToMemory"));
|
DBGPRINT(("CCMITopology::storeMixerSettingsToMemory"));
|
||||||
|
|
||||||
mixer1Register = CMIAdapter->readUInt8(REG_MIXER1);
|
mixer1Register = CMIAdapter->readUInt8(REG_MIXER1);
|
||||||
|
@ -462,10 +462,10 @@ STDMETHODIMP CCMITopology::storeMixerSettingsToMemory()
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest)
|
NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[PropertyHandler_OnOff]"));
|
DBGPRINT(("[PropertyHandler_OnOff]"));
|
||||||
|
|
||||||
CCMITopology *that = (CCMITopology *) ((PMINIPORTTOPOLOGY) PropertyRequest->MajorTarget);
|
CCMITopology *that = (CCMITopology *) ((PMINIPORTTOPOLOGY) PropertyRequest->MajorTarget);
|
||||||
|
@ -1013,8 +1013,8 @@ static NTSTATUS PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
|
|
||||||
static NTSTATUS BasicSupportHandler(PPCPROPERTY_REQUEST PropertyRequest)
|
static NTSTATUS BasicSupportHandler(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[BasicSupportHandler]"));
|
DBGPRINT(("[BasicSupportHandler]"));
|
||||||
|
|
||||||
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
@ -1081,10 +1081,10 @@ static NTSTATUS BasicSupportHandler(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest)
|
NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[PropertyHandler_Level]"));
|
DBGPRINT(("[PropertyHandler_Level]"));
|
||||||
|
|
||||||
CCMITopology *that = (CCMITopology *) ((PMINIPORTTOPOLOGY) PropertyRequest->MajorTarget);
|
CCMITopology *that = (CCMITopology *) ((PMINIPORTTOPOLOGY) PropertyRequest->MajorTarget);
|
||||||
|
@ -1218,11 +1218,10 @@ static NTSTATUS PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
|
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
static NTSTATUS PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest)
|
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[PropertyHandler_CpuResources]"));
|
DBGPRINT(("[PropertyHandler_CpuResources]"));
|
||||||
|
|
||||||
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
@ -1271,10 +1270,10 @@ static NTSTATUS PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyReque
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest)
|
NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[PropertyHandler_ComponentId]"));
|
DBGPRINT(("[PropertyHandler_ComponentId]"));
|
||||||
|
|
||||||
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
@ -1317,10 +1316,10 @@ NTSTATUS PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest)
|
NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[PropertyHandler_Private]"));
|
DBGPRINT(("[PropertyHandler_Private]"));
|
||||||
|
|
||||||
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
@ -1347,8 +1346,8 @@ NTSTATUS PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
#endif
|
#endif
|
||||||
cmiData->hardwareRevision = that->cm->chipVersion;
|
cmiData->hardwareRevision = that->cm->chipVersion;
|
||||||
cmiData->maxChannels = that->cm->maxChannels;
|
cmiData->maxChannels = that->cm->maxChannels;
|
||||||
cmiData->IOBase = (USHORT)that->cm->IOBase;
|
cmiData->IOBase = (USHORT)(ULONG_PTR)that->cm->IOBase;
|
||||||
cmiData->MPUBase = (USHORT)that->cm->MPUBase;
|
cmiData->MPUBase = (USHORT)(ULONG_PTR)that->cm->MPUBase;
|
||||||
cmiData->enableSPDO = that->cm->enableSPDIFOut;
|
cmiData->enableSPDO = that->cm->enableSPDIFOut;
|
||||||
cmiData->enableSPDI = that->cm->enableSPDIFIn;
|
cmiData->enableSPDI = that->cm->enableSPDIFIn;
|
||||||
cmiData->formatMask = that->cm->formatMask;
|
cmiData->formatMask = that->cm->formatMask;
|
||||||
|
|
|
@ -80,14 +80,14 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
//friends
|
//friends
|
||||||
friend NTSTATUS PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
friend NTSTATUS PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
friend NTSTATUS PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
friend NTSTATUS PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
friend NTSTATUS PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
friend NTSTATUS PropertyHandler_Mux(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_Mux(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
|
||||||
static NTSTATUS EventHandler(PPCEVENT_REQUEST EventRequest);
|
static NTSTATUS NTAPI EventHandler(PPCEVENT_REQUEST EventRequest);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_MINTOPO_HPP_
|
#endif //_MINTOPO_HPP_
|
||||||
|
|
|
@ -37,6 +37,11 @@ DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_D
|
||||||
#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
|
#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
NTSTATUS NTAPI PropertyHandler_Level(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
NTSTATUS NTAPI PropertyHandler_CpuResources(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
NTSTATUS NTAPI PropertyHandler_OnOff(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
NTSTATUS NTAPI PropertyHandler_ComponentId(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
NTSTATUS NTAPI PropertyHandler_Private(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
|
||||||
static KSDATARANGE PinDataRangesBridge[] =
|
static KSDATARANGE PinDataRangesBridge[] =
|
||||||
{
|
{
|
||||||
|
@ -292,15 +297,16 @@ static PCPROPERTY_ITEM PropertiesVolume[] =
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_VOLUMELEVEL,
|
KSPROPERTY_AUDIO_VOLUMELEVEL,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_Level
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_Level
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_CPU_RESOURCES,
|
KSPROPERTY_AUDIO_CPU_RESOURCES,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_CpuResources
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_CpuResources
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationVolume,PropertiesVolume);
|
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationVolume,PropertiesVolume);
|
||||||
|
|
||||||
static PCPROPERTY_ITEM PropertiesLoudness[] =
|
static PCPROPERTY_ITEM PropertiesLoudness[] =
|
||||||
|
@ -309,13 +315,13 @@ static PCPROPERTY_ITEM PropertiesLoudness[] =
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_LOUDNESS,
|
KSPROPERTY_AUDIO_LOUDNESS,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_OnOff
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_OnOff
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_CPU_RESOURCES,
|
KSPROPERTY_AUDIO_CPU_RESOURCES,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_CpuResources
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_CpuResources
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationLoudness,PropertiesLoudness);
|
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationLoudness,PropertiesLoudness);
|
||||||
|
@ -326,13 +332,13 @@ static PCPROPERTY_ITEM PropertiesMute[] =
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_MUTE,
|
KSPROPERTY_AUDIO_MUTE,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_OnOff
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_OnOff
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_CPU_RESOURCES,
|
KSPROPERTY_AUDIO_CPU_RESOURCES,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_CpuResources
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_CpuResources
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationMute,PropertiesMute);
|
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationMute,PropertiesMute);
|
||||||
|
@ -343,19 +349,19 @@ static PCPROPERTY_ITEM PropertiesFilter[] =
|
||||||
&KSPROPSETID_General,
|
&KSPROPSETID_General,
|
||||||
KSPROPERTY_GENERAL_COMPONENTID,
|
KSPROPERTY_GENERAL_COMPONENTID,
|
||||||
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
|
||||||
PropertyHandler_ComponentId
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_ComponentId
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
&KSPROPSETID_CMI,
|
&KSPROPSETID_CMI,
|
||||||
KSPROPERTY_CMI_GET,
|
KSPROPERTY_CMI_GET,
|
||||||
KSPROPERTY_TYPE_GET,
|
KSPROPERTY_TYPE_GET,
|
||||||
PropertyHandler_Private
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_Private
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
&KSPROPSETID_CMI,
|
&KSPROPSETID_CMI,
|
||||||
KSPROPERTY_CMI_SET,
|
KSPROPERTY_CMI_SET,
|
||||||
KSPROPERTY_TYPE_SET,
|
KSPROPERTY_TYPE_SET,
|
||||||
PropertyHandler_Private
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_Private
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationFilter,PropertiesFilter);
|
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationFilter,PropertiesFilter);
|
||||||
|
|
|
@ -33,8 +33,8 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
NTSTATUS CreateMiniportWaveCMI(PUNKNOWN *Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
|
NTSTATUS CreateMiniportWaveCMI(PUNKNOWN *Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(Unknown);
|
//ASSERT(Unknown);
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
STD_CREATE_BODY_(CMiniportWaveCMI,Unknown,UnknownOuter,PoolType,PMINIPORTWAVERT);
|
STD_CREATE_BODY_(CMiniportWaveCMI,Unknown,UnknownOuter,PoolType,PMINIPORTWAVERT);
|
||||||
#else
|
#else
|
||||||
|
@ -44,8 +44,8 @@ NTSTATUS CreateMiniportWaveCMI(PUNKNOWN *Unknown, REFCLSID, PUNKNOWN UnknownOute
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveCMI::processResources(PRESOURCELIST resourceList)
|
NTSTATUS CMiniportWaveCMI::processResources(PRESOURCELIST resourceList)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT (resourceList);
|
//ASSERT (resourceList);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::ProcessResources(%p)", this, resourceList));
|
DBGPRINT(("CMiniportWaveCMI[%p]::ProcessResources(%p)", this, resourceList));
|
||||||
|
|
||||||
if (resourceList->NumberOfInterrupts() < 1) {
|
if (resourceList->NumberOfInterrupts() < 1) {
|
||||||
|
@ -58,8 +58,8 @@ NTSTATUS CMiniportWaveCMI::processResources(PRESOURCELIST resourceList)
|
||||||
#ifndef WAVERT
|
#ifndef WAVERT
|
||||||
NTSTATUS CMiniportWaveCMI::newDMAChannel(PDMACHANNEL *dmaChannel, UInt32 bufferLength)
|
NTSTATUS CMiniportWaveCMI::newDMAChannel(PDMACHANNEL *dmaChannel, UInt32 bufferLength)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(dmaChannel);
|
//ASSERT(dmaChannel);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::newDMAChannel(%p)", this, dmaChannel));
|
DBGPRINT(("CMiniportWaveCMI[%p]::newDMAChannel(%p)", this, dmaChannel));
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
NTSTATUS ntStatus;
|
||||||
|
@ -79,8 +79,8 @@ NTSTATUS CMiniportWaveCMI::newDMAChannel(PDMACHANNEL *dmaChannel, UInt32 bufferL
|
||||||
//generic crap
|
//generic crap
|
||||||
STDMETHODIMP CMiniportWaveCMI::NonDelegatingQueryInterface(REFIID Interface, PVOID *Object)
|
STDMETHODIMP CMiniportWaveCMI::NonDelegatingQueryInterface(REFIID Interface, PVOID *Object)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(Object);
|
//ASSERT(Object);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::NonDelegatingQueryInterface"));
|
DBGPRINT(("CMiniportWaveCMI[%p]::NonDelegatingQueryInterface"));
|
||||||
|
|
||||||
if (IsEqualGUIDAligned(Interface,IID_IUnknown)) {
|
if (IsEqualGUIDAligned(Interface,IID_IUnknown)) {
|
||||||
|
@ -113,7 +113,7 @@ STDMETHODIMP CMiniportWaveCMI::NonDelegatingQueryInterface(REFIID Interface, PVO
|
||||||
|
|
||||||
CMiniportWaveCMI::~CMiniportWaveCMI(void)
|
CMiniportWaveCMI::~CMiniportWaveCMI(void)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::~CMiniportWaveCMI", this));
|
DBGPRINT(("CMiniportWaveCMI[%p]::~CMiniportWaveCMI", this));
|
||||||
|
|
||||||
storeChannelConfigToRegistry(); //or not. during system shutdown, this doesn't seem to work.
|
storeChannelConfigToRegistry(); //or not. during system shutdown, this doesn't seem to work.
|
||||||
|
@ -149,11 +149,11 @@ STDMETHODIMP CMiniportWaveCMI::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST Resou
|
||||||
STDMETHODIMP CMiniportWaveCMI::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST ResourceList, PPORTWAVECYCLIC Port_)
|
STDMETHODIMP CMiniportWaveCMI::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST ResourceList, PPORTWAVECYCLIC Port_)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
|
|
||||||
ASSERT(UnknownAdapter);
|
//ASSERT(UnknownAdapter);
|
||||||
ASSERT(ResourceList);
|
//ASSERT(ResourceList);
|
||||||
ASSERT(Port_);
|
//ASSERT(Port_);
|
||||||
|
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::Init(%p, %p, %p)", this, UnknownAdapter, ResourceList, Port_));
|
DBGPRINT(("CMiniportWaveCMI[%p]::Init(%p, %p, %p)", this, UnknownAdapter, ResourceList, Port_));
|
||||||
|
|
||||||
|
@ -201,8 +201,8 @@ STDMETHODIMP CMiniportWaveCMI::Init(PUNKNOWN UnknownAdapter, PRESOURCELIST Resou
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
STDMETHODIMP_(NTSTATUS) CMiniportWaveCMI::GetDeviceDescription(PDEVICE_DESCRIPTION OutDeviceDescriptor)
|
STDMETHODIMP_(NTSTATUS) CMiniportWaveCMI::GetDeviceDescription(PDEVICE_DESCRIPTION OutDeviceDescriptor)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(OutDeviceDescriptor);
|
//ASSERT(OutDeviceDescriptor);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::GetDeviceDescription(%p)", this, OutDeviceDescriptor));
|
DBGPRINT(("CMiniportWaveCMI[%p]::GetDeviceDescription(%p)", this, OutDeviceDescriptor));
|
||||||
|
|
||||||
RtlZeroMemory(OutDeviceDescriptor, sizeof(DEVICE_DESCRIPTION));
|
RtlZeroMemory(OutDeviceDescriptor, sizeof(DEVICE_DESCRIPTION));
|
||||||
|
@ -218,8 +218,8 @@ STDMETHODIMP_(NTSTATUS) CMiniportWaveCMI::GetDeviceDescription(PDEVICE_DESCRIPTI
|
||||||
|
|
||||||
STDMETHODIMP CMiniportWaveCMI::GetDescription(PPCFILTER_DESCRIPTOR *OutFilterDescriptor)
|
STDMETHODIMP CMiniportWaveCMI::GetDescription(PPCFILTER_DESCRIPTOR *OutFilterDescriptor)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(OutFilterDescriptor);
|
//ASSERT(OutFilterDescriptor);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::GetDescription(%p)", this, OutFilterDescriptor));
|
DBGPRINT(("CMiniportWaveCMI[%p]::GetDescription(%p)", this, OutFilterDescriptor));
|
||||||
|
|
||||||
*OutFilterDescriptor = &WaveMiniportFilterDescriptor;
|
*OutFilterDescriptor = &WaveMiniportFilterDescriptor;
|
||||||
|
@ -229,7 +229,7 @@ STDMETHODIMP CMiniportWaveCMI::GetDescription(PPCFILTER_DESCRIPTOR *OutFilterDes
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveCMI::loadChannelConfigFromRegistry()
|
NTSTATUS CMiniportWaveCMI::loadChannelConfigFromRegistry()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
PREGISTRYKEY DriverKey;
|
PREGISTRYKEY DriverKey;
|
||||||
PREGISTRYKEY SettingsKey;
|
PREGISTRYKEY SettingsKey;
|
||||||
UNICODE_STRING KeyName;
|
UNICODE_STRING KeyName;
|
||||||
|
@ -291,7 +291,7 @@ NTSTATUS CMiniportWaveCMI::loadChannelConfigFromRegistry()
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveCMI::storeChannelConfigToRegistry()
|
NTSTATUS CMiniportWaveCMI::storeChannelConfigToRegistry()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
PREGISTRYKEY DriverKey;
|
PREGISTRYKEY DriverKey;
|
||||||
PREGISTRYKEY SettingsKey;
|
PREGISTRYKEY SettingsKey;
|
||||||
UNICODE_STRING KeyName;
|
UNICODE_STRING KeyName;
|
||||||
|
@ -339,7 +339,7 @@ NTSTATUS CMiniportWaveCMI::storeChannelConfigToRegistry()
|
||||||
|
|
||||||
STDMETHODIMP_(void) CMiniportWaveCMI::powerUp(void)
|
STDMETHODIMP_(void) CMiniportWaveCMI::powerUp(void)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::powerUp()", this));
|
DBGPRINT(("CMiniportWaveCMI[%p]::powerUp()", this));
|
||||||
KSSTATE oldState[3];
|
KSSTATE oldState[3];
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ STDMETHODIMP_(void) CMiniportWaveCMI::powerUp(void)
|
||||||
|
|
||||||
STDMETHODIMP_(void) CMiniportWaveCMI::powerDown(void)
|
STDMETHODIMP_(void) CMiniportWaveCMI::powerDown(void)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::powerDown()", this));
|
DBGPRINT(("CMiniportWaveCMI[%p]::powerDown()", this));
|
||||||
|
|
||||||
if (cm->TopoMiniport) {
|
if (cm->TopoMiniport) {
|
||||||
|
@ -377,8 +377,8 @@ STDMETHODIMP_(void) CMiniportWaveCMI::powerDown(void)
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveCMI::isFormatAllowed(UInt32 sampleRate, BOOLEAN multiChan, BOOLEAN AC3)
|
NTSTATUS CMiniportWaveCMI::isFormatAllowed(UInt32 sampleRate, BOOLEAN multiChan, BOOLEAN AC3)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(sampleRate);
|
//ASSERT(sampleRate);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::isFormatAllowed(%d, %d, %d)", this, sampleRate, multiChan, AC3));
|
DBGPRINT(("CMiniportWaveCMI[%p]::isFormatAllowed(%d, %d, %d)", this, sampleRate, multiChan, AC3));
|
||||||
|
|
||||||
if (multiChan) {
|
if (multiChan) {
|
||||||
|
@ -410,8 +410,8 @@ NTSTATUS CMiniportWaveCMI::isFormatAllowed(UInt32 sampleRate, BOOLEAN multiChan,
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveCMI::validateFormat(PKSDATAFORMAT format, ULONG PinID, BOOLEAN capture)
|
NTSTATUS CMiniportWaveCMI::validateFormat(PKSDATAFORMAT format, ULONG PinID, BOOLEAN capture)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(format);
|
//ASSERT(format);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::validateFormat(%p, %d, %d)", this, format, PinID, capture));
|
DBGPRINT(("CMiniportWaveCMI[%p]::validateFormat(%p, %d, %d)", this, format, PinID, capture));
|
||||||
|
|
||||||
PWAVEFORMATEX waveFormat = PWAVEFORMATEX(format + 1);
|
PWAVEFORMATEX waveFormat = PWAVEFORMATEX(format + 1);
|
||||||
|
@ -468,7 +468,7 @@ NTSTATUS CMiniportWaveCMI::validateFormat(PKSDATAFORMAT format, ULONG PinID, BOO
|
||||||
// Tests a data range intersection
|
// Tests a data range intersection
|
||||||
STDMETHODIMP CMiniportWaveCMI::DataRangeIntersection(ULONG PinId, PKSDATARANGE ClientDataRange, PKSDATARANGE MyDataRange, ULONG OutputBufferLength, PVOID ResultantFormat, PULONG ResultantFormatLength)
|
STDMETHODIMP CMiniportWaveCMI::DataRangeIntersection(ULONG PinId, PKSDATARANGE ClientDataRange, PKSDATARANGE MyDataRange, ULONG OutputBufferLength, PVOID ResultantFormat, PULONG ResultantFormatLength)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::DataRangeIntersection(%d, %p, %p, %d, %p, %p)", this, PinId, ClientDataRange, MyDataRange, OutputBufferLength, ResultantFormat, ResultantFormatLength));
|
DBGPRINT(("CMiniportWaveCMI[%p]::DataRangeIntersection(%d, %p, %p, %d, %p, %p)", this, PinId, ClientDataRange, MyDataRange, OutputBufferLength, ResultantFormat, ResultantFormatLength));
|
||||||
|
|
||||||
if (PinId == PIN_WAVE_AC3_RENDER_SINK) {
|
if (PinId == PIN_WAVE_AC3_RENDER_SINK) {
|
||||||
|
@ -722,14 +722,14 @@ STDMETHODIMP CMiniportWaveCMI::NewStream(PMINIPORTWAVERTSTREAM *OutStream, PPORT
|
||||||
STDMETHODIMP CMiniportWaveCMI::NewStream(PMINIPORTWAVECYCLICSTREAM *OutStream, PUNKNOWN OuterUnknown, POOL_TYPE PoolType, ULONG PinID, BOOLEAN Capture, PKSDATAFORMAT DataFormat, PDMACHANNEL* OutDmaChannel, PSERVICEGROUP* OutServiceGroup)
|
STDMETHODIMP CMiniportWaveCMI::NewStream(PMINIPORTWAVECYCLICSTREAM *OutStream, PUNKNOWN OuterUnknown, POOL_TYPE PoolType, ULONG PinID, BOOLEAN Capture, PKSDATAFORMAT DataFormat, PDMACHANNEL* OutDmaChannel, PSERVICEGROUP* OutServiceGroup)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(OutStream);
|
//ASSERT(OutStream);
|
||||||
ASSERT(DataFormat);
|
//ASSERT(DataFormat);
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::NewStream(%p, %p, %d, %d, %p)", this, OutStream, OuterUnknown, PinID, Capture, DataFormat));
|
DBGPRINT(("CMiniportWaveCMI[%p]::NewStream(%p, %p, %d, %d, %p)", this, OutStream, OuterUnknown, PinID, Capture, DataFormat));
|
||||||
#else
|
#else
|
||||||
ASSERT(OutDmaChannel);
|
//ASSERT(OutDmaChannel);
|
||||||
ASSERT(OutServiceGroup);
|
//ASSERT(OutServiceGroup);
|
||||||
DBGPRINT(("CMiniportWaveCMI[%p]::NewStream(%p, %p, %p, %d, %d, %p, %p, %p)", this, OutStream, OuterUnknown, PoolType, PinID, Capture, DataFormat, OutDmaChannel, OutServiceGroup));
|
DBGPRINT(("CMiniportWaveCMI[%p]::NewStream(%p, %p, %p, %d, %d, %p, %p, %p)", this, OutStream, OuterUnknown, PoolType, PinID, Capture, DataFormat, OutDmaChannel, OutServiceGroup));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -820,10 +820,10 @@ STDMETHODIMP CMiniportWaveCMI::NewStream(PMINIPORTWAVECYCLICSTREAM *OutStream, P
|
||||||
return ntStatus;
|
return ntStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest)
|
NTSTATUS NTAPI PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(PropertyRequest);
|
//ASSERT(PropertyRequest);
|
||||||
DBGPRINT(("[PropertyHandler_ChannelConfig]"));
|
DBGPRINT(("[PropertyHandler_ChannelConfig]"));
|
||||||
|
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
|
@ -881,7 +881,7 @@ static NTSTATUS PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyReques
|
||||||
|
|
||||||
NTSTATUS CreateMiniportWaveStreamCMI(CMiniportWaveStreamCMI **MiniportWaveStreamCMI, PUNKNOWN pUnknownOuter, POOL_TYPE PoolType)
|
NTSTATUS CreateMiniportWaveStreamCMI(CMiniportWaveStreamCMI **MiniportWaveStreamCMI, PUNKNOWN pUnknownOuter, POOL_TYPE PoolType)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CreateMiniportWaveStreamCMI"));
|
DBGPRINT(("CreateMiniportWaveStreamCMI"));
|
||||||
|
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
|
@ -899,7 +899,7 @@ NTSTATUS CreateMiniportWaveStreamCMI(CMiniportWaveStreamCMI **MiniportWaveStrea
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveStreamCMI::prepareStream()
|
NTSTATUS CMiniportWaveStreamCMI::prepareStream()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::prepareStream()", this));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::prepareStream()", this));
|
||||||
DBGPRINT(("---streamIndex: %d, channelNumber: %d", streamIndex, channelNumber));
|
DBGPRINT(("---streamIndex: %d, channelNumber: %d", streamIndex, channelNumber));
|
||||||
|
|
||||||
|
@ -982,7 +982,7 @@ NTSTATUS CMiniportWaveStreamCMI::prepareStream()
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveStreamCMI::setDACChannels()
|
NTSTATUS CMiniportWaveStreamCMI::setDACChannels()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setDACChannels()", this));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setDACChannels()", this));
|
||||||
NTSTATUS ntStatus = STATUS_SUCCESS;
|
NTSTATUS ntStatus = STATUS_SUCCESS;
|
||||||
|
|
||||||
|
@ -1046,7 +1046,7 @@ NTSTATUS CMiniportWaveStreamCMI::setDACChannels()
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveStreamCMI::setupSPDIFPlayback(bool enableSPDIF)
|
NTSTATUS CMiniportWaveStreamCMI::setupSPDIFPlayback(bool enableSPDIF)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setupSPDIFPlayback(%d)", this, enableSPDIF));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setupSPDIFPlayback(%d)", this, enableSPDIF));
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
NTSTATUS ntStatus;
|
||||||
|
@ -1115,7 +1115,7 @@ NTSTATUS CMiniportWaveStreamCMI::setupSPDIFPlayback(bool enableSPDIF)
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveStreamCMI::setupAC3Passthru()
|
NTSTATUS CMiniportWaveStreamCMI::setupAC3Passthru()
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setupAC3Passthru()"));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::setupAC3Passthru()"));
|
||||||
|
|
||||||
if (enableAC3Passthru) {
|
if (enableAC3Passthru) {
|
||||||
|
@ -1177,7 +1177,7 @@ NTSTATUS CMiniportWaveStreamCMI::setupAC3Passthru()
|
||||||
|
|
||||||
CMiniportWaveStreamCMI::~CMiniportWaveStreamCMI(void)
|
CMiniportWaveStreamCMI::~CMiniportWaveStreamCMI(void)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
|
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::~CMiniportWaveStreamCMI", this));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::~CMiniportWaveStreamCMI", this));
|
||||||
|
|
||||||
|
@ -1217,8 +1217,8 @@ CMiniportWaveStreamCMI::~CMiniportWaveStreamCMI(void)
|
||||||
|
|
||||||
STDMETHODIMP CMiniportWaveStreamCMI::NonDelegatingQueryInterface(REFIID Interface, PVOID *Object)
|
STDMETHODIMP CMiniportWaveStreamCMI::NonDelegatingQueryInterface(REFIID Interface, PVOID *Object)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(Object);
|
//ASSERT(Object);
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::NonDelegatingQueryInterface(%p, %p)", this, Interface, Object));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::NonDelegatingQueryInterface(%p, %p)", this, Interface, Object));
|
||||||
|
|
||||||
if (IsEqualGUIDAligned(Interface,IID_IUnknown)) {
|
if (IsEqualGUIDAligned(Interface,IID_IUnknown)) {
|
||||||
|
@ -1250,14 +1250,14 @@ NTSTATUS CMiniportWaveStreamCMI::Init(CMiniportWaveCMI* Miniport_, UInt32 stream
|
||||||
NTSTATUS CMiniportWaveStreamCMI::Init(CMiniportWaveCMI* Miniport_, UInt32 streamIndex_, bool isCaptureStream_, PKSDATAFORMAT DataFormat, PDMACHANNEL DMAChannel_, PSERVICEGROUP* OutServiceGroup)
|
NTSTATUS CMiniportWaveStreamCMI::Init(CMiniportWaveCMI* Miniport_, UInt32 streamIndex_, bool isCaptureStream_, PKSDATAFORMAT DataFormat, PDMACHANNEL DMAChannel_, PSERVICEGROUP* OutServiceGroup)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
ASSERT(Miniport_);
|
//ASSERT(Miniport_);
|
||||||
ASSERT(DataFormat);
|
//ASSERT(DataFormat);
|
||||||
|
|
||||||
NTSTATUS ntStatus;
|
NTSTATUS ntStatus;
|
||||||
|
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
ASSERT(Port_);
|
//ASSERT(Port_);
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::Init(%p, %d, %d, %p, %p)", this, Miniport_, streamIndex_, isCaptureStream_, DataFormat, Port_));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::Init(%p, %d, %d, %p, %p)", this, Miniport_, streamIndex_, isCaptureStream_, DataFormat, Port_));
|
||||||
Port = Port_;
|
Port = Port_;
|
||||||
Port->AddRef();
|
Port->AddRef();
|
||||||
|
@ -1303,7 +1303,7 @@ NTSTATUS CMiniportWaveStreamCMI::Init(CMiniportWaveCMI* Miniport_, UInt32 stream
|
||||||
|
|
||||||
NTSTATUS CMiniportWaveStreamCMI::SetFormat(PKSDATAFORMAT Format)
|
NTSTATUS CMiniportWaveStreamCMI::SetFormat(PKSDATAFORMAT Format)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::SetFormat(%p)", this, Format));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::SetFormat(%p)", this, Format));
|
||||||
PWAVEFORMATEX waveFormat = PWAVEFORMATEX(Format + 1);
|
PWAVEFORMATEX waveFormat = PWAVEFORMATEX(Format + 1);
|
||||||
NTSTATUS ntStatus = Miniport->validateFormat(Format, -1, isCaptureStream);
|
NTSTATUS ntStatus = Miniport->validateFormat(Format, -1, isCaptureStream);
|
||||||
|
@ -1344,7 +1344,7 @@ NTSTATUS CMiniportWaveStreamCMI::SetFormat(PKSDATAFORMAT Format)
|
||||||
// DRM crap - we're supposed to disable every digital interface here
|
// DRM crap - we're supposed to disable every digital interface here
|
||||||
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::SetContentId(ULONG contentId, PCDRMRIGHTS drmRights)
|
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::SetContentId(ULONG contentId, PCDRMRIGHTS drmRights)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::SetContentId(%d, %p)", this, contentId, drmRights));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::SetContentId(%d, %p)", this, contentId, drmRights));
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
|
@ -1354,7 +1354,7 @@ STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::SetContentId(ULONG contentId, PC
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::AllocateAudioBuffer(ULONG size, PMDL *userModeBuffer, ULONG *bufferSize, ULONG *bufferOffset, MEMORY_CACHING_TYPE *cacheType)
|
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::AllocateAudioBuffer(ULONG size, PMDL *userModeBuffer, ULONG *bufferSize, ULONG *bufferOffset, MEMORY_CACHING_TYPE *cacheType)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
|
|
||||||
PHYSICAL_ADDRESS low;
|
PHYSICAL_ADDRESS low;
|
||||||
PHYSICAL_ADDRESS high;
|
PHYSICAL_ADDRESS high;
|
||||||
|
@ -1393,7 +1393,7 @@ STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::AllocateAudioBuffer(ULONG size,
|
||||||
|
|
||||||
STDMETHODIMP_(VOID) CMiniportWaveStreamCMI::FreeAudioBuffer(PMDL Mdl, ULONG Size)
|
STDMETHODIMP_(VOID) CMiniportWaveStreamCMI::FreeAudioBuffer(PMDL Mdl, ULONG Size)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::FreeAudioBuffer(%p, %x)", this, Mdl, Size));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::FreeAudioBuffer(%p, %x)", this, Mdl, Size));
|
||||||
|
|
||||||
Port->FreePagesFromMdl(Mdl);
|
Port->FreePagesFromMdl(Mdl);
|
||||||
|
@ -1403,7 +1403,7 @@ STDMETHODIMP_(VOID) CMiniportWaveStreamCMI::FreeAudioBuffer(PMDL Mdl, ULONG Size
|
||||||
}
|
}
|
||||||
|
|
||||||
STDMETHODIMP_(void) CMiniportWaveStreamCMI::GetHWLatency(PKSRTAUDIO_HWLATENCY hwLatency) {
|
STDMETHODIMP_(void) CMiniportWaveStreamCMI::GetHWLatency(PKSRTAUDIO_HWLATENCY hwLatency) {
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::GetHWLatency(%p)", this, hwLatency));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::GetHWLatency(%p)", this, hwLatency));
|
||||||
hwLatency->FifoSize = 32;
|
hwLatency->FifoSize = 32;
|
||||||
hwLatency->ChipsetDelay = 0;
|
hwLatency->ChipsetDelay = 0;
|
||||||
|
@ -1412,7 +1412,7 @@ STDMETHODIMP_(void) CMiniportWaveStreamCMI::GetHWLatency(PKSRTAUDIO_HWLATENCY hw
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::GetPositionRegister(PKSRTAUDIO_HWREGISTER hwRegister)
|
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::GetPositionRegister(PKSRTAUDIO_HWREGISTER hwRegister)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::GetPositionRegister(%p)", this, hwRegister));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::GetPositionRegister(%p)", this, hwRegister));
|
||||||
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
@ -1420,7 +1420,7 @@ STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::GetPositionRegister(PKSRTAUDIO_H
|
||||||
|
|
||||||
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::GetClockRegister(PKSRTAUDIO_HWREGISTER hwRegister)
|
STDMETHODIMP_(NTSTATUS) CMiniportWaveStreamCMI::GetClockRegister(PKSRTAUDIO_HWREGISTER hwRegister)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
//PAGED_CODE();
|
||||||
DBGPRINT(("CMiniportWaveStreamCMI[%p]::GetClockRegister(%p)", this, hwRegister));
|
DBGPRINT(("CMiniportWaveStreamCMI[%p]::GetClockRegister(%p)", this, hwRegister));
|
||||||
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
@ -1578,7 +1578,7 @@ STDMETHODIMP CMiniportWaveStreamCMI::SetState(KSSTATE NewState)
|
||||||
#ifdef WAVERT
|
#ifdef WAVERT
|
||||||
STDMETHODIMP CMiniportWaveStreamCMI::GetPosition(PKSAUDIO_POSITION Position)
|
STDMETHODIMP CMiniportWaveStreamCMI::GetPosition(PKSAUDIO_POSITION Position)
|
||||||
{
|
{
|
||||||
ASSERT(Position);
|
//ASSERT(Position);
|
||||||
|
|
||||||
UInt32 reg;
|
UInt32 reg;
|
||||||
|
|
||||||
|
@ -1597,7 +1597,7 @@ STDMETHODIMP CMiniportWaveStreamCMI::GetPosition(PKSAUDIO_POSITION Position)
|
||||||
#else //WaveCyclic
|
#else //WaveCyclic
|
||||||
STDMETHODIMP CMiniportWaveStreamCMI::GetPosition(PULONG Position)
|
STDMETHODIMP CMiniportWaveStreamCMI::GetPosition(PULONG Position)
|
||||||
{
|
{
|
||||||
ASSERT(Position);
|
//ASSERT(Position);
|
||||||
|
|
||||||
UInt32 reg;
|
UInt32 reg;
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ public:
|
||||||
STDMETHODIMP_(void) powerUp();
|
STDMETHODIMP_(void) powerUp();
|
||||||
STDMETHODIMP_(void) powerDown();
|
STDMETHODIMP_(void) powerDown();
|
||||||
|
|
||||||
friend NTSTATUS PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest);
|
friend NTSTATUS NTAPI PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
friend class CMiniportWaveStreamCMI;
|
friend class CMiniportWaveStreamCMI;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
|
DEFINE_GUIDSTRUCT("00000092-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF);
|
||||||
#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
|
#define KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF)
|
||||||
|
|
||||||
|
NTSTATUS NTAPI PropertyHandler_ChannelConfig(PPCPROPERTY_REQUEST PropertyRequest);
|
||||||
|
|
||||||
|
|
||||||
static KSDATARANGE_AUDIO WavePinDataRangesPCMStream[] =
|
static KSDATARANGE_AUDIO WavePinDataRangesPCMStream[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
@ -274,7 +277,7 @@ static PCPROPERTY_ITEM PropertiesChannels[] =
|
||||||
&KSPROPSETID_Audio,
|
&KSPROPSETID_Audio,
|
||||||
KSPROPERTY_AUDIO_CHANNEL_CONFIG,
|
KSPROPERTY_AUDIO_CHANNEL_CONFIG,
|
||||||
KSPROPERTY_TYPE_BASICSUPPORT | KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET,
|
KSPROPERTY_TYPE_BASICSUPPORT | KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_SET,
|
||||||
PropertyHandler_ChannelConfig
|
(PCPFNPROPERTY_HANDLER)PropertyHandler_ChannelConfig
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationChans,PropertiesChannels);
|
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationChans,PropertiesChannels);
|
||||||
|
|
|
@ -83,4 +83,4 @@ typedef struct
|
||||||
UInt32 enableSPDI;
|
UInt32 enableSPDI;
|
||||||
} CMIDATA;
|
} CMIDATA;
|
||||||
|
|
||||||
#endif //_PROPERTY_H_
|
#endif //_PROPERTY_H_
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
TARGETNAME=cmipci
|
|
||||||
TARGETTYPE=DRIVER
|
|
||||||
TARGETPATH=obj
|
|
||||||
|
|
||||||
TARGETLIBS= $(DDK_LIB_PATH)\portcls.lib \
|
|
||||||
$(DDK_LIB_PATH)\stdunk.lib \
|
|
||||||
$(SDK_LIB_PATH)\libcntpr.lib \
|
|
||||||
$(DDK_LIB_PATH)\ntstrsafe.lib
|
|
||||||
|
|
||||||
INCLUDES=
|
|
||||||
|
|
||||||
MSC_WARNING_LEVEL=-WX
|
|
||||||
|
|
||||||
C_DEFINES= $(C_DEFINES) -D_WIN32 -DUNICODE -D_UNICODE -DDEBUG_LEVEL=DEBUGLVL_TERSE
|
|
||||||
|
|
||||||
SOURCES = adapter.cpp \
|
|
||||||
common.cpp \
|
|
||||||
mintopo.cpp \
|
|
||||||
minwave.cpp \
|
|
||||||
cmipci.rc
|
|
|
@ -1,12 +0,0 @@
|
||||||
@echo off
|
|
||||||
call envars.bat
|
|
||||||
if "%CMI_DEBUGARCH%"=="AMD64" goto :x64
|
|
||||||
set CMI_DEBUGDIR=objchk_%CMI_DEBUGOS%_%CMI_DEBUGARCH%\i386
|
|
||||||
goto start
|
|
||||||
:x64
|
|
||||||
set CMI_DEBUGDIR=objchk_%CMI_DEBUGOS%_%CMI_DEBUGARCH%\AMD64
|
|
||||||
:start
|
|
||||||
devcon remove "PCI\VEN_13F6&DEV_0111&SUBSYS_011113F6&REV_10"
|
|
||||||
devcon dp_delete %CMI_OEMINF%
|
|
||||||
devcon rescan
|
|
||||||
devcon update %CMI_DEBUGDIR%\CM8738.INF "PCI\VEN_13F6&DEV_0111&SUBSYS_011113F6&REV_10"
|
|
Loading…
Reference in a new issue