service, network and logoff
- From
- Vadim Yegorov ()
- To
- All
- Date
- 2001-05-16T23:40:47Z
- Area
- SU.WINDOWS.NT.PROG
From: "Vadim Yegorov" <zg@matrica.apollo.lv>
Есть сервис. Он слушает именованный канал, по которому ему говорят что
делать. В том числе и скопировать такие-то файлы туда-то. В том числе и по
сети. И вот с этим проблема. Сервис пускается под LocalSystem, Interract
with Desktop отключено. Для того чтобы видеть сеть применяется код:
if(!ImpersonateNamedPipeClient(hPipe))
Log(L"ImpersonateNamedPipeClient",NULL,NULL);
else
{
if(!OpenThreadToken(GetCurrentThread(),TOKEN_ALL_ACCESS,FALSE,&client_token)
)
Log(L"OpenThreadToken",NULL,NULL);
else
{
if(!SetThreadToken(&hThread,client_token))
Log(L"SetThreadToken",NULL,NULL);
CloseHandle(client_token);
}
if(!RevertToSelf())
Log(L"RevertToSelf",NULL,NULL);
}
Все работает замечательно до логоффа. Наблюдается табличка типа "Disconnect
Networks Connections" и CopyFileExW возвращает: Reached end of file. Все это
происходит с MSNetworks. Причем следующее копирование уже в логоффе
происходит нормально.
Что делать? Вариант с не использованием приведенного кода и назначением
сервису юзера не работает с Netware Client32 версии 4.80.
--- ifmail v.2.15dev5
* Origin: Fidolook Express http://fidolook.da.ru (2:5020/400)