#include "interface.h"
+typedef struct
+{
+ PMDL Mdl;
+ ULONG Length;
+ ULONG Function;
+}WDMAUD_COMPLETION_CONTEXT, *PWDMAUD_COMPLETION_CONTEXT;
+
+
typedef struct
{
HANDLE Handle;
LIST_ENTRY MixerEventList;
}WDMAUD_CLIENT, *PWDMAUD_CLIENT;
+typedef struct
+{
+ LIST_ENTRY Entry;
+ ULONG NotificationType;
+ ULONG Value;
+ HANDLE hMixer;
+}EVENT_ENTRY, *PEVENT_ENTRY;
+
typedef struct
{
LIST_ENTRY Entry;
IN PWDMAUD_DEVICE_INFO DeviceInfo,
IN PWDMAUD_CLIENT ClientInfo);
+NTSTATUS
+WdmAudControlOpenMidi(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN PIRP Irp,
+ IN PWDMAUD_DEVICE_INFO DeviceInfo,
+ IN PWDMAUD_CLIENT ClientInfo);
ULONG
GetNumOfMixerDevices(
IN PWDMAUD_CLIENT ClientInfo,
IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
+NTSTATUS
+WdmAudMidiCapabilities(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN PWDMAUD_DEVICE_INFO DeviceInfo,
+ IN PWDMAUD_CLIENT ClientInfo,
+ IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
+
NTSTATUS
NTAPI
WdmAudFrameSize(
ULONG
WdmAudGetWaveOutDeviceCount();
-NTSTATUS
-WdmAudGetMixerPnpNameByIndex(
- IN ULONG DeviceIndex,
- OUT LPWSTR * Device);
+ULONG
+WdmAudGetMidiInDeviceCount();
+
+ULONG
+WdmAudGetMidiOutDeviceCount();
NTSTATUS
WdmAudGetPnpNameByIndexAndType(