|
|
1.1 ! root 1: /*++ BUILD Version: 0002 // Increment this if a change has global effects ! 2: ! 3: ! 4: Copyright (c) 1993 Microsoft Corporation ! 5: ! 6: Module Name: ! 7: ! 8: sound.h ! 9: ! 10: Abstract: ! 11: ! 12: This include file defines constants and types for ! 13: the Microsoft midi synthesiser kernel-mode driver ! 14: ! 15: Author: ! 16: ! 17: Robin Speed (RobinSp) 20-Oct-92 ! 18: ! 19: Revision History: ! 20: ! 21: --*/ ! 22: ! 23: ! 24: // ! 25: // Other header files needed to build this driver ! 26: // ! 27: ! 28: #include <soundlib.h> ! 29: #include "hardware.h" ! 30: ! 31: #define DRIVER_VERSION 0x0100 ! 32: ! 33: ! 34: // ! 35: // Magic markers ! 36: // ! 37: ! 38: #define GDI_KEY (*(ULONG *)"GDI ") ! 39: ! 40: ! 41: ! 42: extern SOUND_DEVICE_INIT DeviceInit[NumberOfDevices]; ! 43: ! 44: ! 45: typedef struct { ! 46: WAVE_DD_VOLUME Volume[NumberOfDevices]; ! 47: } SOUND_CONFIG_DATA, *PSOUND_CONFIG_DATA; ! 48: ! 49: ! 50: // ! 51: // driver global data structure shared by each device object ! 52: // Note that we have one global spin lock used for all access ! 53: // to both the global data and the local data structures. ! 54: // ! 55: ! 56: typedef struct _GLOBAL_DEVICE_INFO { ! 57: ! 58: // static items not requiring use of the spin lock ! 59: ! 60: ULONG Key; ! 61: INTERFACE_TYPE BusType; ! 62: ULONG BusNumber; ! 63: ! 64: // ! 65: // Device access ! 66: // ! 67: ! 68: KMUTEX MidiMutex; ! 69: ! 70: ULONG MemType; ! 71: PDEVICE_OBJECT DeviceObject[ // pointer to input device objects ! 72: NumberOfDevices]; ! 73: PDRIVER_OBJECT DriverObject; // The actual driver instance ! 74: ! 75: UCHAR DeviceInUse; ! 76: ! 77: SOUND_HARDWARE Hw; // Hardware specific stuff ! 78: ! 79: // ! 80: // Registry path saving ! 81: // ! 82: ! 83: PWSTR RegistryPathName; ! 84: } GLOBAL_DEVICE_INFO, *PGLOBAL_DEVICE_INFO; ! 85: ! 86: ! 87: // ! 88: // config.c Configuration routines ! 89: // ! 90: ! 91: NTSTATUS ! 92: SoundReadConfiguration( ! 93: IN PWSTR ValueName, ! 94: IN ULONG ValueType, ! 95: IN PVOID ValueData, ! 96: IN ULONG ValueLength, ! 97: IN PVOID Context, ! 98: IN PVOID EntryContext ! 99: ); ! 100: ! 101: NTSTATUS ! 102: SoundGetSynthConfig( ! 103: IN OUT PGLOBAL_DEVICE_INFO pGDI ! 104: ); ! 105: ! 106: VOID ! 107: SoundSaveVolume( ! 108: PGLOBAL_DEVICE_INFO pGDI ! 109: ); ! 110: ! 111: ! 112: SOUND_DISPATCH_ROUTINE SoundMidiDispatch; ! 113: ! 114: ! 115: // ! 116: // mididisp.c ! 117: // ! 118: ! 119: ! 120: VOID ! 121: SoundMidiQuiet( ! 122: IN UCHAR DeviceIndex, ! 123: IN PSOUND_HARDWARE pHw ! 124: ); ! 125: ! 126: NTSTATUS ! 127: SoundSynthPortValid( ! 128: IN OUT PGLOBAL_DEVICE_INFO pGDI ! 129: ); ! 130: ! 131: BOOL ! 132: SoundMidiIsOpl3( ! 133: IN PSOUND_HARDWARE pHw ! 134: ); ! 135:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.