typedef struct _GLOBAL_SYNTH_INFO {
ULONG Key;
#define SYNTH_KEY (*(ULONG *)"Syn ")
INTERFACE_TYPE BusType;
ULONG BusNumber;
KMUTEX MidiMutex;
ULONG MemType;
PDEVICE_OBJECT DeviceObject;
PDRIVER_OBJECT DriverObject;
SOUND_DISPATCH_ROUTINE *DevCapsRoutine;
UCHAR DeviceInUse;
volatile BOOLEAN InterruptFired; // Interrupt fired?
BOOLEAN IsOpl3; // It's an OPL3
SYNTH_HARDWARE Hw; // Hardware specific stuff
} GLOBAL_SYNTH_INFO, *PGLOBAL_SYNTH_INFO;
The GLOBAL_SYNTH_INFO structure contains context information for a mixer device.
Allocate a GLOBAL_SYNTH_INFO structure from the nonpaged memory pool by calling ExAllocatePool, then zero it by calling RtlZeroMemory. The structure is initialized by code in SynthInit.