|
|
1.1 ! root 1: /**************************************************************************** ! 2: * ! 3: * registry.h ! 4: * ! 5: * Copyright (c) 1992 Microsoft Corporation. All Rights Reserved. ! 6: * ! 7: * This file contains public definitions for maintaining registry information ! 8: * for drivers managing kernel driver registry related data. ! 9: ****************************************************************************/ ! 10: ! 11: ! 12: /**************************************************************************** ! 13: ! 14: Our registry access data ! 15: ! 16: ****************************************************************************/ ! 17: ! 18: typedef struct { ! 19: SC_HANDLE ServiceManagerHandle; // Handle to the service controller ! 20: // SC_HANDLE ServiceHandle; // Handle to our particular service ! 21: // HKEY NodeHandle; // Handle to device's key ! 22: LPTSTR DriverName; // Name of driver ! 23: } REG_ACCESS, *PREG_ACCESS; ! 24: ! 25: /**************************************************************************** ! 26: ! 27: Test if configuration etc can be supported ! 28: ! 29: ****************************************************************************/ ! 30: ! 31: #define DrvAccess(RegAccess) ((RegAccess)->ServiceManagerHandle != NULL) ! 32: ! 33: ! 34: /**************************************************************************** ! 35: ! 36: Driver types ! 37: ! 38: ****************************************************************************/ ! 39: ! 40: typedef enum { ! 41: SoundDriverTypeNormal = 1, ! 42: SoundDriverTypeSynth /* Go in the synth group */ ! 43: } SOUND_KERNEL_MODE_DRIVER_TYPE; ! 44: ! 45: /**************************************************************************** ! 46: ! 47: Function prototypes ! 48: ! 49: ****************************************************************************/ ! 50: ! 51: /* ! 52: * Create a services node for our driver if there isn't one already, ! 53: * otherwise open the existing one. Returns ERROR_SUCCESS if OK. ! 54: */ ! 55: BOOL ! 56: DrvCreateServicesNode(PTCHAR DriverName, ! 57: SOUND_KERNEL_MODE_DRIVER_TYPE DriverType, ! 58: PREG_ACCESS RegAccess, ! 59: BOOL Create); ! 60: ! 61: /* ! 62: * Close down our connection to the services manager ! 63: */ ! 64: ! 65: VOID ! 66: DrvCloseServiceManager( ! 67: PREG_ACCESS RegAccess); ! 68: /* ! 69: * Delete the services node for our driver ! 70: */ ! 71: ! 72: BOOL ! 73: DrvDeleteServicesNode( ! 74: PREG_ACCESS RegAccess); ! 75: ! 76: /* ! 77: * Create the 'Parameters' subkey ! 78: */ ! 79: LONG ! 80: DrvCreateParamsKey( ! 81: PREG_ACCESS RegAccess); ! 82: ! 83: /* ! 84: * Set a device parameter ! 85: */ ! 86: LONG ! 87: DrvSetDeviceParameter( ! 88: PREG_ACCESS RegAccess, ! 89: PTCHAR ValueName, ! 90: DWORD Value); ! 91: ! 92: /* ! 93: * Read current parameter setting ! 94: */ ! 95: ! 96: LONG ! 97: DrvQueryDeviceParameter( ! 98: PREG_ACCESS RegAccess, ! 99: PTCHAR ValueName, ! 100: PDWORD pValue); ! 101: ! 102: ! 103: /* ! 104: * Try loading a kernel driver ! 105: */ ! 106: BOOL ! 107: DrvLoadKernelDriver( ! 108: PREG_ACCESS RegAccess); ! 109: /* ! 110: * Try unloading a kernel driver ! 111: */ ! 112: ! 113: BOOL ! 114: DrvUnloadKernelDriver( ! 115: PREG_ACCESS RegAccess); ! 116: ! 117: /* ! 118: * See if driver is loaded ! 119: */ ! 120: ! 121: BOOL ! 122: DrvIsDriverLoaded( ! 123: PREG_ACCESS RegAccess); ! 124: ! 125: /* ! 126: * Do driver (installation+) configuration ! 127: */ ! 128: ! 129: BOOL DrvConfigureDriver( ! 130: PREG_ACCESS RegAccess, ! 131: LPTSTR DriverName, ! 132: SOUND_KERNEL_MODE_DRIVER_TYPE ! 133: DriverType, ! 134: BOOL (* SetParms )(PVOID), ! 135: PVOID Context); ! 136: ! 137: ! 138: /* ! 139: * Remove a driver ! 140: */ ! 141: ! 142: LRESULT DrvRemoveDriver( ! 143: PREG_ACCESS RegAccess);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.