Annotation of ntddk/src/mmedia/mmdrv/mmdrv.h, revision 1.1.1.1

1.1       root        1: 
                      2: /****************************************************************************
                      3:  *
                      4:  *   mmdrv.h
                      5:  *
                      6:  *   Multimedia kernel driver support component (mmdrv)
                      7:  *
                      8:  *   Copyright (c) 1991 Microsoft Corporation.  All Rights Reserved.
                      9:  *
                     10:  *   Local declarations :
                     11:  *
                     12:  *   -- Debug
                     13:  *   -- Device types
                     14:  *   -- Routine prototypes
                     15:  *
                     16:  *   History
                     17:  *      01-Feb-1992 - Robin Speed (RobinSp) wrote it
                     18:  *
                     19:  ***************************************************************************/
                     20: 
                     21: /****************************************************************************
                     22: 
                     23:  General includes
                     24: 
                     25:  ***************************************************************************/
                     26: 
                     27: #define UNICODE
                     28: #ifndef RC_INVOKED
                     29: 
                     30: #include <string.h>
                     31: #include <stdio.h>
                     32: 
                     33: #endif /* RC_INVOKED */
                     34: 
                     35: #include <windows.h>
                     36: #include <mmsystem.h>
                     37: #include <devioctl.h>
                     38: 
                     39: #include <mmddk.h>
                     40: 
                     41: #if DBG
                     42:     #define STATIC
                     43: #else
                     44:     #define STATIC static
                     45: #endif
                     46: 
                     47: //
                     48: // Large Integer divide - 64-bits / 32-bits -> 64-bits
                     49: //
                     50: 
                     51: LARGE_INTEGER
                     52: NTAPI
                     53: RtlExtendedLargeIntegerDivide (
                     54:     LARGE_INTEGER Dividend,
                     55:     ULONG Divisor,
                     56:     PULONG Remainder
                     57:     );
                     58: 
                     59: /***************************************************************************
                     60: 
                     61:     DEBUGGING SUPPORT
                     62: 
                     63:  ***************************************************************************/
                     64: 
                     65: 
                     66: #if DBG
                     67: 
                     68:     #define DEBUG_RETAIL
                     69: 
                     70:     extern int mmdrvDebugLevel;
                     71:     extern void mmdrvDbgOut(LPSTR lpszFormat, ...);
                     72:     extern void dDbgAssert(LPSTR exp, LPSTR file, int line);
                     73: 
                     74:     DWORD __dwEval;
                     75: 
                     76:     #define dprintf( _x_ )                            mmdrvDbgOut _x_
                     77:     #define dprintf1( _x_ ) if (mmdrvDebugLevel >= 1) mmdrvDbgOut _x_
                     78:     #define dprintf2( _x_ ) if (mmdrvDebugLevel >= 2) mmdrvDbgOut _x_
                     79:     #define dprintf3( _x_ ) if (mmdrvDebugLevel >= 3) mmdrvDbgOut _x_
                     80:     #define dprintf4( _x_ ) if (mmdrvDebugLevel >= 4) mmdrvDbgOut _x_
                     81: 
                     82:     #define WinAssert(exp) \
                     83:         ((exp) ? (void)0 : dDbgAssert(#exp, __FILE__, __LINE__))
                     84:     #define WinEval(exp) \
                     85:         ((__dwEval=(DWORD)(exp)) ? (void)0 : dDbgAssert(#exp, __FILE__, __LINE__), __dwEval)
                     86: 
                     87: #else
                     88: 
                     89:        #define WinAssert(x) 0
                     90:        #define WinEval(exp) exp
                     91: 
                     92:     #define dprintf(x)
                     93:     #define dprintf1(x)
                     94:     #define dprintf2(x)
                     95:     #define dprintf3(x)
                     96:     #define dprintf4(x)
                     97: 
                     98: #endif
                     99: 
                    100: /****************************************************************************
                    101: 
                    102:  Device Types
                    103: 
                    104:  ***************************************************************************/
                    105:  enum {
                    106:      InvalidDevice,
                    107:      WaveInDevice,
                    108:      WaveOutDevice,
                    109:      MidiInDevice,
                    110:      MidiOutDevice,
                    111:      AuxDevice
                    112:  };
                    113: 
                    114: /****************************************************************************
                    115: 
                    116:   Our heap
                    117: 
                    118: ****************************************************************************/
                    119: 
                    120:  HANDLE hHeap;
                    121: 
                    122: /****************************************************************************
                    123: 
                    124:   Our serialization
                    125: 
                    126: ****************************************************************************/
                    127: 
                    128:  CRITICAL_SECTION mmDrvCritSec;  // Serialize access to device lists
                    129: 
                    130: /****************************************************************************
                    131: 
                    132:  Local routines
                    133: 
                    134:  ***************************************************************************/
                    135: 
                    136: DWORD    sndTranslateStatus(void);
                    137: MMRESULT sndOpenDev(UINT DeviceType, DWORD dwId,
                    138:                     PHANDLE phDev, DWORD Access);
                    139: DWORD    sndGetNumDevs(UINT DeviceType);
                    140: MMRESULT sndSetData(UINT DeviceType, UINT DeviceId, UINT Length, PBYTE Data,
                    141:                     ULONG Ioctl);
                    142: MMRESULT sndGetData(UINT DeviceType, UINT DeviceId, UINT Length, PBYTE Data,
                    143:                     ULONG Ioctl);
                    144: 
                    145: MMRESULT sndGetHandleData(HANDLE     hDev,
                    146:                           DWORD      dwSize,
                    147:                           PVOID      pData,
                    148:                           ULONG      Ioctl,
                    149:                           HANDLE     hEvent);
                    150: 
                    151: MMRESULT sndSetHandleData(HANDLE     hDev,
                    152:                           DWORD      dwSize,
                    153:                           PVOID      pData,
                    154:                           ULONG      Ioctl,
                    155:                           HANDLE     hEvent);
                    156: 
                    157: VOID     TerminateWave(VOID);
                    158: VOID     TerminateMidi(VOID);
                    159: 
                    160: /****************************************************************************
                    161: 
                    162:   Our local driver procs
                    163: 
                    164: ****************************************************************************/
                    165: 
                    166: DWORD APIENTRY widMessage(DWORD, DWORD, DWORD, DWORD, DWORD);
                    167: DWORD APIENTRY wodMessage(DWORD, DWORD, DWORD, DWORD, DWORD);
                    168: DWORD APIENTRY midMessage(DWORD, DWORD, DWORD, DWORD, DWORD);
                    169: DWORD APIENTRY modMessage(DWORD, DWORD, DWORD, DWORD, DWORD);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.