Windows NT 4.0 source code leak
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/****************************************************************************
* * registry.h * * Copyright (c) 1992 Microsoft Corporation. All Rights Reserved. * * This file contains public definitions for maintaining registry information * for drivers managing kernel driver registry related data. ****************************************************************************/
/****************************************************************************
Our registry access data
****************************************************************************/
typedef struct { SC_HANDLE ServiceManagerHandle; // Handle to the service controller
// SC_HANDLE ServiceHandle; // Handle to our particular service
// HKEY NodeHandle; // Handle to device's key
LPTSTR DriverName; // Name of driver
} REG_ACCESS, *PREG_ACCESS;
/****************************************************************************
Test if configuration etc can be supported
****************************************************************************/
#define DrvAccess(RegAccess) ((RegAccess)->ServiceManagerHandle != NULL)
/****************************************************************************
Driver types
****************************************************************************/
typedef enum { SoundDriverTypeNormal = 1, SoundDriverTypeSynth /* Go in the synth group */ } SOUND_KERNEL_MODE_DRIVER_TYPE;
/****************************************************************************
Function prototypes
****************************************************************************/
/*
* Create a services node for our driver if there isn't one already, * otherwise open the existing one. Returns ERROR_SUCCESS if OK. */ BOOL DrvCreateServicesNode(PTCHAR DriverName, SOUND_KERNEL_MODE_DRIVER_TYPE DriverType, PREG_ACCESS RegAccess, BOOL Create);
/*
* Close down our connection to the services manager */
VOID DrvCloseServiceManager( PREG_ACCESS RegAccess); /*
* Delete the services node for our driver */
BOOL DrvDeleteServicesNode( PREG_ACCESS RegAccess);
/*
* Create the 'Parameters' subkey */ LONG DrvCreateParamsKey( PREG_ACCESS RegAccess);
/*
* Set a device parameter */ LONG DrvSetDeviceParameter( PREG_ACCESS RegAccess, PTCHAR ValueName, DWORD Value);
/*
* Read current parameter setting */
LONG DrvQueryDeviceParameter( PREG_ACCESS RegAccess, PTCHAR ValueName, PDWORD pValue);
/*
* Try loading a kernel driver */ BOOL DrvLoadKernelDriver( PREG_ACCESS RegAccess); /*
* Try unloading a kernel driver */
BOOL DrvUnloadKernelDriver( PREG_ACCESS RegAccess);
/*
* See if driver is loaded */
BOOL DrvIsDriverLoaded( PREG_ACCESS RegAccess);
/*
* Do driver (installation+) configuration */
BOOL DrvConfigureDriver( PREG_ACCESS RegAccess, LPTSTR DriverName, SOUND_KERNEL_MODE_DRIVER_TYPE DriverType, BOOL (* SetParms )(PVOID), PVOID Context);
/*
* Remove a driver */
LRESULT DrvRemoveDriver( PREG_ACCESS RegAccess);
|