Содержание
NsEnumServices()
Функция объявлена в файле coresrv/ns/ns_api.h
.
Retcode NsEnumServices(NsHandle ns, const char *type, unsigned index,
char *server, rtl_size_t serverSize,
char *service, rtl_size_t serviceSize);
Функция перечисляет службы с заданным интерфейсом, опубликованные на сервере имен.
Входные параметры:
ns
– дескриптор соединения с сервером имен, полученный ранее с помощью вызоваNsCreate()
;type
– имя интерфейса, который реализует служба (например,kl.drivers.Block
);index
– индекс для перечисления служб;serverSize
– максимальный размер буфера для выходного параметраserver
в байтах;serviceSize
– максимальный размер буфера для выходного параметраservice
в байтах.
Выходные параметры:
server
– имя серверного процесса, предоставляющего службу (например,kl.drivers.Ata
);service
– полное квалифицированное имя службы (например,blkdev.ata
).
Например, получить полный список серверных процессов, предоставляющих службу с интерфейсом kl.drivers.Block
, можно следующим образом.
rc = NsEnumServices(ns, "kl.drivers.Block", 0, outServerName, ServerNameSize, outServiceName, ServiceNameSize);
rc = NsEnumServices(ns, "kl.drivers.Block", 1, outServerName, ServerNameSize, outServiceName, ServiceNameSize);
...
rc = NsEnumServices(ns, "kl.drivers.Block", N, outServerName, ServerNameSize, outServiceName, ServiceNameSize);
Вызовы функции с инкрементированием индекса продолжаются до тех пор, пока функция не вернет rcResourceNotFound.
В случае успеха функция возвращает rcOk, иначе возвращает код ошибки.
В начало