Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];

Вниз

createservice вызывает падение rpc...   Найти похожие ветки 

 
istok20 ©   (2009-08-20 19:31) [0]

подскажите куда копать, если createservice вызывает отказ rpc и как следствие ребут\зависание важных служб ос (hservice возвращает 0, а если ставить руками через /install то всё ок)?

происходит такое на малом кол-ве компов


 
Anatoly Podgoretsky ©   (2009-08-20 19:55) [1]

> istok20  (20.08.2009 19:31:00)  [0]

И ты хочешь ответ без кода, на основание слов - не работает?


 
istok20 ©   (2009-08-20 20:37) [2]

установка сервиса происходит в таком духе:

function TForm1.GetServiceType(const AServiceType: TServiceType;
 Interactive: Boolean): Integer;
begin
 Result := SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS;
 case AServiceType of
   stWin32:
     if Interactive then
       Result := SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS
     else
       Result := SERVICE_WIN32_OWN_PROCESS;
   stDevice: Result := SERVICE_KERNEL_DRIVER;
   stFileSystem: Result := SERVICE_FILE_SYSTEM_DRIVER;
 end;
end;

function TForm1.GetStartType(
 const AStartType: TStartType): Integer;
begin
 Result := SERVICE_AUTO_START;
 case AStartType of
   stBoot, stSystem, stAuto: Result := SERVICE_AUTO_START;
   stManual: Result := SERVICE_DEMAND_START;
   stDisabled: Result := SERVICE_DISABLED;
 end;
end;

function TForm1.GetErrorSeverity(
 const AErrorSeverity: TErrorSeverity): Integer;
begin
 Result := SERVICE_ERROR_NORMAL;
 case AErrorSeverity of
   esIgnore: Result := SERVICE_ERROR_IGNORE;
   esNormal: Result := SERVICE_ERROR_NORMAL;
   esSevere: Result := SERVICE_ERROR_SEVERE;
   esCritical: Result := SERVICE_ERROR_CRITICAL;
 end;
end;

procedure TForm1.CreateMyService(var ServiceInfo: TweServiceInfo; afilename: string);
var
 hService: SC_HANDLE;
 lpVectors: PChar;
 StartSrvName: Pointer;
 i: Integer;
 FErrorStr: string;
 FSCManager: SC_HANDLE;
begin
 FSCManager := OpenSCManager(PChar(Edit1.Text), nil, SC_MANAGER_ALL_ACCESS);
 with ServiceInfo do
 try
       if rServiceStartName = "" then StartSrvName := nil
       else StartSrvName := PChar(rServiceStartName);

   hService := CreateService(FSCManager, PChar(rName), PChar(rDisplayName),
     SERVICE_ALL_ACCESS, GetServiceType(rServiceType, rInteractive), GetStartType(rStartType),
     GetErrorSeverity(rErrorSeverity), PChar(afilename), PChar(rLoadGroup), nil, PChar(""),
     StartSrvName, PChar(rPassword));
     Memo1.Lines.Add("hService="+IntToStr(hService))
 finally
   CloseServiceHandle(FSCManager);
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 Edit1.Text := GetComputerName;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ServiceInfo: TweServiceInfo;
begin
   //add ClientDataTransferService
   with ServiceInfo do
   begin
     rServiceStartName := "";
     rName := cClientDataTransferServiceName;
     rDisplayName := cClientDataTransferServiceDisplayName;
     rServiceType := stWin32;
     rStartType := stAuto;
     rErrorSeverity := esNormal;
     rLoadGroup := "";
     rPassword := "";
     rInteractive := True;
   end;
   CreateMyService(ServiceInfo, ExtractFilePath(Forms.Application.Exename)+"distrib\service1.exe");
end;


 
Leonid Troyanovsky ©   (2009-08-21 08:53) [3]


> istok20 ©   (20.08.09 20:37) [2]

> установка сервиса происходит в таком духе:

PChar("") и nil - две большие разницы.
Смотри Pointer(s) vs PChar(s).

И, во-ще, прежде чем кричать "караул" изучают результаты,
возвращаемые функциями с возможной GetLastError в порядке,
установленном msdn.

--
Regards, LVT.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1249568385
caps14
2009-08-06 18:19
2009.10.18
перемещение изображений по форме


2-1250149690
_Андрей
2009-08-13 11:48
2009.10.18
FastMM & records


11-1206101255
exero
2008-03-21 15:07
2009.10.18
Печать изображений


15-1250351901
Холивар
2009-08-15 19:58
2009.10.18
Вопрос по вебкамере(разрешениям)


2-1250177404
Del
2009-08-13 19:30
2009.10.18
Указатели





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский