Skip to content

Commit

Permalink
Format codes
Browse files Browse the repository at this point in the history
  • Loading branch information
lzcapp committed Oct 10, 2024
1 parent 0f68fcd commit 9b29ef7
Show file tree
Hide file tree
Showing 2 changed files with 557 additions and 557 deletions.
278 changes: 139 additions & 139 deletions NotMyFault/exe/driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,36 +26,36 @@ HANDLE SysHandle = INVALID_HANDLE_VALUE;
****************************************************************************/
BOOL InstallDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName, IN LPCTSTR ServiceExe)
{
SC_HANDLE schService;

//
// NOTE: This creates an entry for a standalone driver. If this
// is modified for use with a driver that requires a Tag,
// Group, and/or Dependencies, it may be necessary to
// query the registry for existing driver information
// (in order to determine a unique Tag, etc.).
//

schService = CreateService(SchSCManager, // SCManager database
DriverName, // name of service
DriverName, // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_KERNEL_DRIVER, // service type
SERVICE_DEMAND_START, // start type
SERVICE_ERROR_IGNORE, // error control type
ServiceExe, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL // no password
);
if (schService == NULL)
return FALSE;

CloseServiceHandle(schService);

return TRUE;
SC_HANDLE schService;

//
// NOTE: This creates an entry for a standalone driver. If this
// is modified for use with a driver that requires a Tag,
// Group, and/or Dependencies, it may be necessary to
// query the registry for existing driver information
// (in order to determine a unique Tag, etc.).
//

schService = CreateService(SchSCManager, // SCManager database
DriverName, // name of service
DriverName, // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_KERNEL_DRIVER, // service type
SERVICE_DEMAND_START, // start type
SERVICE_ERROR_IGNORE, // error control type
ServiceExe, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL // no password
);
if (schService == NULL)
return FALSE;

CloseServiceHandle(schService);

return TRUE;
}


Expand All @@ -68,22 +68,22 @@ BOOL InstallDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName, IN LPCTSTR
****************************************************************************/
BOOL StartDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName)
{
SC_HANDLE schService;
BOOL ret;

schService = OpenService(SchSCManager,
DriverName,
SERVICE_ALL_ACCESS
);
if (schService == NULL)
return FALSE;

ret = StartService(schService, 0, NULL)
|| GetLastError() == ERROR_SERVICE_ALREADY_RUNNING
|| GetLastError() == ERROR_SERVICE_DISABLED;

CloseServiceHandle(schService);
return ret;
SC_HANDLE schService;
BOOL ret;

schService = OpenService(SchSCManager,
DriverName,
SERVICE_ALL_ACCESS
);
if (schService == NULL)
return FALSE;

ret = StartService(schService, 0, NULL)
|| GetLastError() == ERROR_SERVICE_ALREADY_RUNNING
|| GetLastError() == ERROR_SERVICE_DISABLED;

CloseServiceHandle(schService);
return ret;
}


Expand All @@ -96,56 +96,56 @@ BOOL StartDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName)
****************************************************************************/
BOOL OpenDevice(IN LPCTSTR DriverName, HANDLE* lphDevice)
{
TCHAR completeDeviceName[64];
HANDLE hDevice;

//
// Create a \\.\XXX device name that CreateFile can use
//
// NOTE: We're making an assumption here that the driver
// has created a symbolic link using it's own name
// (i.e. if the driver has the name "XXX" we assume
// that it used IoCreateSymbolicLink to create a
// symbolic link "\DosDevices\XXX". Usually, there
// is this understanding between related apps/drivers.
//
// An application might also peruse the DEVICEMAP
// section of the registry, or use the QueryDosDevice
// API to enumerate the existing symbolic links in the
// system.
//

if ((GetVersion() & 0xFF) >= 5)
{
//
// We reference the global name so that the application can
// be executed in Terminal Services sessions on Win2K
//
wsprintf(completeDeviceName, TEXT("\\\\.\\Global\\%s"), DriverName);
}
else
{
wsprintf(completeDeviceName, TEXT("\\\\.\\%s"), DriverName);
}

hDevice = CreateFile(completeDeviceName,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hDevice == ((HANDLE)-1))
return FALSE;

// If user wants handle, give it to them. Otherwise, just close it.
if (lphDevice)
*lphDevice = hDevice;
else
CloseHandle(hDevice);

return TRUE;
TCHAR completeDeviceName[64];
HANDLE hDevice;

//
// Create a \\.\XXX device name that CreateFile can use
//
// NOTE: We're making an assumption here that the driver
// has created a symbolic link using it's own name
// (i.e. if the driver has the name "XXX" we assume
// that it used IoCreateSymbolicLink to create a
// symbolic link "\DosDevices\XXX". Usually, there
// is this understanding between related apps/drivers.
//
// An application might also peruse the DEVICEMAP
// section of the registry, or use the QueryDosDevice
// API to enumerate the existing symbolic links in the
// system.
//

if ((GetVersion() & 0xFF) >= 5)
{
//
// We reference the global name so that the application can
// be executed in Terminal Services sessions on Win2K
//
wsprintf(completeDeviceName, TEXT("\\\\.\\Global\\%s"), DriverName);
}
else
{
wsprintf(completeDeviceName, TEXT("\\\\.\\%s"), DriverName);
}

hDevice = CreateFile(completeDeviceName,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hDevice == ((HANDLE)-1))
return FALSE;

// If user wants handle, give it to them. Otherwise, just close it.
if (lphDevice)
*lphDevice = hDevice;
else
CloseHandle(hDevice);

return TRUE;
}


Expand All @@ -158,19 +158,19 @@ BOOL OpenDevice(IN LPCTSTR DriverName, HANDLE* lphDevice)
****************************************************************************/
BOOL StopDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName)
{
SC_HANDLE schService;
BOOL ret;
SERVICE_STATUS serviceStatus;
SC_HANDLE schService;
BOOL ret;
SERVICE_STATUS serviceStatus;

schService = OpenService(SchSCManager, DriverName, SERVICE_ALL_ACCESS);
if (schService == NULL)
return FALSE;
schService = OpenService(SchSCManager, DriverName, SERVICE_ALL_ACCESS);
if (schService == NULL)
return FALSE;

ret = ControlService(schService, SERVICE_CONTROL_STOP, &serviceStatus);
ret = ControlService(schService, SERVICE_CONTROL_STOP, &serviceStatus);

CloseServiceHandle(schService);
CloseServiceHandle(schService);

return ret;
return ret;
}


Expand All @@ -183,20 +183,20 @@ BOOL StopDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName)
****************************************************************************/
BOOL RemoveDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName)
{
SC_HANDLE schService;
BOOL ret;
SC_HANDLE schService;
BOOL ret;

schService = OpenService(SchSCManager,
DriverName,
SERVICE_ALL_ACCESS
);
schService = OpenService(SchSCManager,
DriverName,
SERVICE_ALL_ACCESS
);

if (schService == NULL)
return FALSE;
if (schService == NULL)
return FALSE;

ret = DeleteService(schService);
CloseServiceHandle(schService);
return ret;
ret = DeleteService(schService);
CloseServiceHandle(schService);
return ret;
}


Expand All @@ -209,19 +209,19 @@ BOOL RemoveDriver(IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName)
****************************************************************************/
BOOL UnloadDeviceDriver(const TCHAR* Name)
{
SC_HANDLE schSCManager;
SC_HANDLE schSCManager;

schSCManager = OpenSCManager(NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
);
schSCManager = OpenSCManager(NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
);

StopDriver(schSCManager, Name);
RemoveDriver(schSCManager, Name);
StopDriver(schSCManager, Name);
RemoveDriver(schSCManager, Name);

CloseServiceHandle(schSCManager);
CloseServiceHandle(schSCManager);

return TRUE;
return TRUE;
}

/****************************************************************************
Expand All @@ -235,24 +235,24 @@ BOOL UnloadDeviceDriver(const TCHAR* Name)
BOOL LoadDeviceDriver(const TCHAR* Name, const TCHAR* Path,
HANDLE* lphDevice, PDWORD Error)
{
SC_HANDLE schSCManager;
BOOL okay;
SC_HANDLE schSCManager;
BOOL okay;

schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

// Remove old instances
RemoveDriver(schSCManager, Name);
// Remove old instances
RemoveDriver(schSCManager, Name);

// Ignore success of installation: it may already be installed.
InstallDriver(schSCManager, Name, Path);
// Ignore success of installation: it may already be installed.
InstallDriver(schSCManager, Name, Path);

// Ignore success of start: it may already be started.
StartDriver(schSCManager, Name);
// Ignore success of start: it may already be started.
StartDriver(schSCManager, Name);

// Do make sure we can open it.
okay = OpenDevice(Name, lphDevice);
*Error = GetLastError();
CloseServiceHandle(schSCManager);
// Do make sure we can open it.
okay = OpenDevice(Name, lphDevice);
*Error = GetLastError();
CloseServiceHandle(schSCManager);

return okay;
return okay;
}
Loading

0 comments on commit 9b29ef7

Please sign in to comment.