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, иначе возвращает код ошибки.