Service Control Manager (SCM)
SCM — это сервер, реализованный в Windows, для удаленного управления сервисами (вызовом процедур).
Для того, чтобы запустить драйвер в Windows, ему в соответствие ставится сервис, который обеспечивает управление этим драйвером. Не путать с устройством, которое создает драйвер в системе, через которое происходит обмен сообщениями с драйвером. Это устройство создается уже после старта драйвера, а вот SCM обеспечивает само внесение драйвера в систему. С помощью SCM можно: добавлять, удалять, запускать или останавливать службы.
Постановка задачи
Написать буферный класс позволяющий упростить работу SCM в C#.
Сам внешний вид этого класса можно обознать очень просто:
public ref class ServiceControlManager : public IDisposable
{
public:
ServiceControlManager(void);
void AddDriver(String^ ServiceName, String^ BinaryPathName);
void DeleteDriver(String^ ServiceName);
void StartDriver(String^ ServiceName);
void StopDriver(String^ ServiceName);
protected:
~ServiceControlManager();
!ServiceControlManager();
private:
SC_HANDLE SCMHandle;
};
Конструктор, деструктор, финализатор, основные методы, из атрибутов только HANDLE объекта SCM. Из этого следует, что экземпляр объекта этого класса будет содержать в себе созданный объект SCM, а методы упрощают с ним работу. Класс является буферным, и поскольку он реализован в C++/cli он будет автоматически масштабируем для работы в среде .NET, соответственно и в C#.