|
|
1.1 root 1: /*++ BUILD Version: 0001 // Increment this if a change has global effects
2:
3:
4: Copyright (c) 1990 Microsoft Corporation
5:
6: Module Name:
7:
8: soundlib.h
9:
10: Abstract:
11:
12: This include file defines common structures for sound drivers
13:
14: Author:
15:
16: Robin Speed (RobinSp) 17-Oct-92
17:
18: Revision History:
19: --*/
20:
21: #define VOLUME_NOTIFY
22:
23: //#include <ntddk.h>
24: #include <ntddk.h>
25: #include <soundcfg.h>
26: #include <ntddwave.h>
27: #include <ntddaux.h>
28: #include <ntddmidi.h>
29: #include <devices.h>
30: #include <windef.h>
31: #include <mmsystem.h>
32: #include <mmreg.h>
33:
34:
35:
36: //
37: // Debug macros
38: //
39:
40: #if DBG
41: extern char *DriverName; // Fill this in in init routine !
42: extern ULONG SoundDebugLevel;
43: extern void dDbgOut(char *szFormat, ...);
44:
45: #define dprintf( _x_ ) dDbgOut _x_
46: #define dprintf1( _x_ ) if (SoundDebugLevel >= 1) dDbgOut _x_
47: #define dprintf2( _x_ ) if (SoundDebugLevel >= 2) dDbgOut _x_
48: #define dprintf3( _x_ ) if (SoundDebugLevel >= 3) dDbgOut _x_
49: #define dprintf4( _x_ ) if (SoundDebugLevel >= 4) dDbgOut _x_
50: #define dprintf5( _x_ ) if (SoundDebugLevel >= 5) dDbgOut _x_
51: #define dprintf6( _x_ ) if (SoundDebugLevel >= 6) dDbgOut _x_
52:
53: #else
54:
55: #define dprintf( _x_ )
56: #define dprintf1( _x_ )
57: #define dprintf2( _x_ )
58: #define dprintf3( _x_ )
59: #define dprintf4( _x_ )
60: #define dprintf5( _x_ )
61: #define dprintf6( _x_ )
62:
63: #endif
64:
65: //
66: // Functions
67: //
68:
69:
70:
71:
72: NTSTATUS
73: SoundGetBusNumber(
74: IN OUT INTERFACE_TYPE InterfaceType,
75: OUT PULONG BusNumber
76: );
77:
78: NTSTATUS
79: SoundSaveRegistryPath(
80: IN PUNICODE_STRING RegistryPathName,
81: OUT PWSTR *SavedString
82: );
83:
84: NTSTATUS SoundReportResourceUsage(
85: IN PDEVICE_OBJECT DeviceObject,
86: IN INTERFACE_TYPE BusType,
87: IN ULONG BusNumber,
88: IN PULONG InterruptNumber OPTIONAL,
89: IN KINTERRUPT_MODE InterruptMode,
90: IN BOOLEAN InterruptShareDisposition,
91: IN PULONG DmaChannel OPTIONAL,
92: IN PULONG FirstIoPort OPTIONAL,
93: IN ULONG IoPortLength
94: );
95:
96: VOID
97: SoundFreeDevice(
98: IN PDEVICE_OBJECT DeviceObject
99: );
100:
101: NTSTATUS
102: SoundCreateDevice(
103: IN PSOUND_DEVICE_INIT DeviceInit,
104: IN UCHAR CreationFlags,
105: IN PDRIVER_OBJECT pDriverObject,
106: IN PVOID pGDI,
107: IN PVOID DeviceData,
108: IN PVOID pHw,
109: IN int i,
110: OUT PDEVICE_OBJECT *ppDevObj
111: );
112:
113:
114: PUCHAR
115: SoundMapPortAddress(
116: INTERFACE_TYPE BusType,
117: ULONG BusNumber,
118: ULONG PortBase,
119: ULONG Length,
120: PULONG MemType
121: );
122: NTSTATUS
123: SoundConnectInterrupt(
124: IN ULONG InterruptNumber,
125: IN INTERFACE_TYPE BusType,
126: IN ULONG BusNumber,
127: IN PKSERVICE_ROUTINE Isr,
128: IN PVOID ServiceContext,
129: IN KINTERRUPT_MODE InterruptMode,
130: IN BOOLEAN ShareVector,
131: OUT PKINTERRUPT *Interrupt
132: );
133:
134:
135: NTSTATUS
136: SoundSetErrorCode(
137: IN PWSTR RegistryPath,
138: IN ULONG Value
139: );
140:
141: NTSTATUS
142: SoundWriteRegistryDWORD(
143: IN PWSTR RegistryPath,
144: IN PWSTR ValueName,
145: IN ULONG Value
146: );
147:
148: VOID
149: SoundDelay(
150: IN ULONG Milliseconds
151: );
152: LARGE_INTEGER
153: SoundGetTime(
154: VOID
155: );
156:
157: VOID
158: SoundFreeQ(
159: PLIST_ENTRY ListHead,
160: NTSTATUS IoStatus
161: );
162:
163: VOID
164: SoundAddIrpToCancellableQ(
165: PLIST_ENTRY QueueHead,
166: PIRP Irp,
167: BOOLEAN Head
168: );
169:
170: PIRP
171: SoundRemoveFromCancellableQ(
172: PLIST_ENTRY QueueHead
173: );
174:
175: VOID
176: SoundRaiseHardError(
177: PWSTR ErrorText
178: );
179:
180: VOID
181: SoundFlushRegistryKey(
182: IN PWSTR RegistryPathName
183: );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.