6#define SB_WAVE_IN_DEVICE_NAME L"\\Device\\SBWaveIn"
7#define SB_WAVE_OUT_DEVICE_NAME L"\\Device\\SBWaveOut"
9#define SB_AUX_DEVICE_NAME L"\\Device\\SBAux"
10#define SB_MIXER_DEVICE_NAME L"\\Device\\SBMixer"
12#define DEFAULT_PORT 0x220
15#define DEFAULT_BUFFER_SIZE 65535
17#define SB_TIMEOUT 1000000
19#define SB_DSP_READY 0xaa
77#define SbWrite(sbdevice, subport, data) \
78 WRITE_PORT_UCHAR((PUCHAR) sbdevice->port + subport, data)
80#define SbRead(sbdevice, subport) \
81 READ_PORT_UCHAR((PUCHAR) sbdevice->port + subport)
83#define SbWriteReset(sbdevice, data) \
84 SbWrite(sbdevice, SB_RESET_PORT, data)
86#define SbWriteDataWithoutWait(sbdevice, data) \
87 SbWrite(sbdevice, SB_WRITE_DATA_PORT, data)
89#define SbReadDataWithoutWait(sbdevice) \
90 SbRead(sbdevice, SB_READ_DATA_PORT)
93#define SbGetWriteStatus(sbdevice) \
94 SbRead(sbdevice, SB_WRITE_STATUS_PORT)
96#define SbGetReadStatus(sbdevice) \
97 SbRead(sbdevice, SB_READ_STATUS_PORT)
106#define WaitToWrite(sbdevice) \
107 WaitForReady(sbdevice, SB_WRITE_STATUS_PORT)
109#define WaitToRead(sbdevice) \
110 WaitForReady(sbdevice, SB_READ_STATUS_PORT)
BOOLEAN ResetSoundBlaster(PSOUND_BLASTER_PARAMETERS SBDevice)
NTAPI NTSTATUS REGISTRY_CALLBACK_ROUTINE(PDRIVER_OBJECT DriverObject, PWSTR RegistryPath)
BOOLEAN WaitForReady(PSOUND_BLASTER_PARAMETERS SBDevice, UCHAR Port)
NTSTATUS EnableIrq(PDEVICE_OBJECT DeviceObject)
BOOLEAN SetOutputSampleRate(PSOUND_BLASTER_PARAMETERS SBDevice, ULONG SampleRate)
ULONG GetSoundBlasterModel(PSOUND_BLASTER_PARAMETERS SBDevice)
struct _SOUND_BLASTER_PARAMETERS SOUND_BLASTER_PARAMETERS
struct _SOUND_BLASTER_PARAMETERS * PSOUND_BLASTER_PARAMETERS
BOOLEAN IsSampleRateCompatible(PSOUND_BLASTER_PARAMETERS SBDevice, ULONG SampleRate)
BOOLEAN EnableSpeaker(PSOUND_BLASTER_PARAMETERS SBDevice)
BOOLEAN StartSoundOutput(PSOUND_BLASTER_PARAMETERS SBDevice, ULONG BitDepth, ULONG Channels, ULONG BlockSize)
BOOLEAN DisableSpeaker(PSOUND_BLASTER_PARAMETERS SBDevice)
REGISTRY_CALLBACK_ROUTINE * PREGISTRY_CALLBACK_ROUTINE
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject