· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› CreateService странно работает

Посл.отвђт Сообщенiе


Дата: Апр 2, 2003 11:25:56

Привет!
CreateService создает раздел в реестре, одним из ключей которого является строка ImagePath. она содержит путь к исполняемому файлу. При попытке создать сервис таким вот образом с указанием в кач-ве пути '\??\F:\mydriver\mydriver.sys' в реестре реально создается строка '\??\C:\??\F:\mydriver\mydriver.sys'. вопрошал и мелкомягких почему, но ответом мне было: 'It is much better to put all drivers to system32\drivers, and have the binary name matching the service name. In this case, imagePath is not necessary.'. хотя писал не сотрудник MS, я, все равно, долго смеялся.


Дата: Апр 2, 2003 12:03:26

CreateService это обыкновенная Win32. Поэтому ожидает обычный путь, а не символьную ссылку.
Она просто тупо добавляет "\??\". У мя щас винт с одним разделом. Никогда не пробовал запускать дрова не с C:, проверить щас не могу. Возможно что и нельзя.
Короче, передай CreateService - "\F:\mydriver\mydriver.sys".
Если не заработает - "\C:\mydriver\mydriver.sys"


Дата: Апр 2, 2003 13:47:06

говоря честно, именно так еще не пробовал. но то, что она добавляет \??\С:, несколько убавляет энтузиазм.


Дата: Апр 3, 2003 06:41:50

я дрова запускал с d:
запускаются. работают. no problem.
ща из под ХР перегружусь и гляну как это он \??\С: в путь добавляет...


Дата: Апр 3, 2003 16:30:11

Глянул - запускается с любого раздела без проблем. "\F:\mydriver\mydriver.sys" должно работать.


Дата: Апр 3, 2003 18:12:30

ребята, увидев ваши сообщения специально проэкспериментировал еще раз - все равно \??\С:
код такой - запускаю из дельфей :(
hService := CreateService(hSCManager, PChar(ModuleName), PChar(ModuleName), SERVICE_START + SERVICE_STOP, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, PChar(FileName), nil, nil, nil, nil, nil);
FileName = '\??\f:\scom\debug\scom.sys';
ModuleName = 'SCOM'
PChar() преобразует в нультерминальную строку


Дата: Апр 3, 2003 18:20:20

Да блин! Я ж говорю, не так:
FileName = '\??\f:\scom\debug\scom.sys';

а так:
FileName = 'f:\scom\debug\scom.sys';


Дата: Апр 3, 2003 20:07:00

FileName = 'f:\scom\debug\scom.sys';
- прокатило.
Спасибо! (и за терпение в особенности :) )


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.035