diff --git a/reactos/drivers/wdm/audio/backpln/portcls/port_factory.c b/reactos/drivers/wdm/audio/backpln/portcls/port_factory.c
index 49e864ad930..23def6b7b20 100644
--- a/reactos/drivers/wdm/audio/backpln/portcls/port_factory.c
+++ b/reactos/drivers/wdm/audio/backpln/portcls/port_factory.c
@@ -48,7 +48,7 @@ PcNewPort(
{
DPRINT("Calling KoCreateInstance\n");
/* Call KS.SYS's Kernel-mode COM function */
- status = KoCreateInstance(ClassId, NULL, CLSCTX_KERNEL_SERVER, &IID_IPort, &new_port);
+ status = KoCreateInstance(ClassId, NULL, CLSCTX_KERNEL_SERVER, &IID_IPort, (PVOID*)&new_port);
}
else
{
diff --git a/reactos/drivers/wdm/audio/backpln/portcls/portcls.def b/reactos/drivers/wdm/audio/backpln/portcls/portcls.def
deleted file mode 100644
index 4ad6a010c50..00000000000
--- a/reactos/drivers/wdm/audio/backpln/portcls/portcls.def
+++ /dev/null
@@ -1,55 +0,0 @@
-;
-; Exports definition file for portcls.sys
-;
-EXPORTS
-DllInitialize@4
-DllUnload@0
-
-; Adapters (adapter.c)
-PcAddAdapterDevice@20
-PcInitializeAdapterDriver@12
-
-; Factories
-PcNewDmaChannel@20
-PcNewInterruptSync@20
-PcNewMiniport@8
-PcNewPort@8
-PcNewRegistryKey@36
-PcNewResourceList@20
-PcNewResourceSublist@20
-PcNewServiceGroup@8
-
-; Digital Rights Management (drm.c)
-PcAddContentHandlers@12
-PcCreateContentMixed@12
-PcDestroyContent@4
-PcForwardContentToDeviceObject@12
-PcForwardContentToFileObject@8
-PcForwardContentToInterface@12
-PcGetContentRights@8
-
-; IRP Helpers
-PcCompleteIrp@12
-PcDispatchIrp@8
-PcForwardIrpSynchronous@8
-
-; Misc
-PcGetTimeInterval@8
-PcRegisterSubdevice@12
-
-; Physical Connections
-PcRegisterPhysicalConnection@20
-PcRegisterPhysicalConnectionFromExternal@20
-PcRegisterPhysicalConnectionToExternal@20
-
-; Power Management
-PcRegisterAdapterPowerManagement@8
-PcRequestNewPowerState@8
-
-; Properties
-PcCompletePendingPropertyRequest@8
-PcGetDeviceProperty@20
-
-; Timeouts
-PcRegisterIoTimeout@12
-PcUnregisterIoTimeout@12
diff --git a/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild b/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild
index 043d7c43c7a..6f2fc9c06e2 100644
--- a/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild
+++ b/reactos/drivers/wdm/audio/backpln/portcls/portcls.rbuild
@@ -8,7 +8,7 @@
-fno-rtti
-->
-Wno-non-virtual-dtor
-
+
@@ -48,4 +48,5 @@
MiniportWavePci.cpp
portcls.rc
+ portcls.spec
diff --git a/reactos/drivers/wdm/audio/backpln/portcls/portcls.spec b/reactos/drivers/wdm/audio/backpln/portcls/portcls.spec
new file mode 100644
index 00000000000..1af797cafed
--- /dev/null
+++ b/reactos/drivers/wdm/audio/backpln/portcls/portcls.spec
@@ -0,0 +1,51 @@
+@ stdcall DllInitialize(long)
+@ stdcall DllUnload()
+
+; Adapters (adapter.c)
+@ stdcall PcAddAdapterDevice(ptr ptr ptr long long)
+@ stdcall PcInitializeAdapterDriver(ptr ptr ptr)
+
+; Factories
+@ stdcall PcNewDmaChannel(ptr ptr long ptr ptr)
+@ stdcall PcNewInterruptSync(ptr ptr ptr long long)
+@ stdcall PcNewMiniport(ptr ptr)
+@ stdcall PcNewPort(ptr ptr)
+@ stdcall PcNewRegistryKey(ptr ptr long long ptr ptr ptr long ptr)
+@ stdcall PcNewResourceList(ptr ptr long ptr ptr)
+@ stdcall PcNewResourceSublist(ptr ptr long ptr long)
+@ stdcall PcNewServiceGroup(ptr ptr)
+
+; Digital Rights Management (drm.c)
+@ stdcall PcAddContentHandlers(long ptr long)
+@ stdcall PcCreateContentMixed(ptr long ptr)
+@ stdcall PcDestroyContent(long)
+@ stdcall PcForwardContentToDeviceObject(long ptr ptr)
+@ stdcall PcForwardContentToFileObject(long ptr)
+@ stdcall PcForwardContentToInterface(long ptr long)
+@ stdcall PcGetContentRights(long ptr)
+
+; IRP Helpers
+@ stdcall PcCompleteIrp(ptr ptr long)
+@ stdcall PcDispatchIrp(ptr ptr)
+@ stdcall PcForwardIrpSynchronous(ptr ptr)
+
+; Misc
+@ stdcall PcGetTimeInterval(long long)
+@ stdcall PcRegisterSubdevice(ptr wstr ptr)
+
+; Physical Connections
+@ stdcall PcRegisterPhysicalConnection(ptr ptr long ptr long)
+@ stdcall PcRegisterPhysicalConnectionFromExternal(ptr ptr long ptr long)
+@ stdcall PcRegisterPhysicalConnectionToExternal(ptr ptr long ptr long)
+
+; Power Management
+@ stdcall PcRegisterAdapterPowerManagement(ptr ptr)
+@ stdcall PcRequestNewPowerState(ptr long)
+
+; Properties
+@ stdcall PcCompletePendingPropertyRequest(ptr long)
+@ stdcall PcGetDeviceProperty(ptr long long ptr ptr)
+
+; Timeouts
+@ stdcall PcRegisterIoTimeout(ptr ptr ptr)
+@ stdcall PcUnregisterIoTimeout(ptr ptr ptr)