Программирование для Windows NT (том 2)



         

Исходный текст сервиса


Исходный текст сервиса представлен в листинге 5.1. Так как ранее мы уже подробно описывали структуру этого сервиса, то мы оставим вам этот листинг и листинг приложения SRVCTRL на самостоятельное изучение.

Листинг 5.1. Файл service/small/small.c

// ==================================================

// Сервис "Sample of simple service"

// Шаблон простейшего сервиса Windows NT

//

// (С) Фролов А.В., 1996

// Email: frolov@glas.apc.org

// ==================================================

#define STRICT

#include <windows.h>

#include <windowsx.h>

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include "small.h"

// -----------------------------------------------------

// Глобальные переменные

// -----------------------------------------------------

// Код ошибки

DWORD dwErrCode;

// Текущее состояние сервиса

SERVICE_STATUS ss;

// Идентификатор сервиса

SERVICE_STATUS_HANDLE ssHandle;

// -----------------------------------------------------

// Функция main

// Точка входа процесса

// -----------------------------------------------------

void main(int agrc, char *argv[])

{

  // Таблица точек входа

  SERVICE_TABLE_ENTRY DispatcherTable[] =

  {

    {

      // Имя сервиса

      MYServiceName,

     

      // Функция main сервиса

      (LPSERVICE_MAIN_FUNCTION)ServiceMain

    },

    {

      NULL,

      NULL

    }

  };

  printf("Sample of simple service\n"

    "(C) A. Frolov, 1996, Email: frolov@glas.apc.org\n");

  // Запуск диспетчера

  if(!StartServiceCtrlDispatcher(DispatcherTable))

  {

    fprintf(stdout,

      "StartServiceCtrlDispatcher: Error %ld\n",

      GetLastError());

    getch();

    return;

  }

}

// -----------------------------------------------------

// Функция ServiceMain

// Точка входа сервиса

// -----------------------------------------------------




Содержание  Назад  Вперед