Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Листинг 1



Листинг 1

Программа для обнаружения сетевой // оболочки и определения ее версии // Файл version\version.cpp // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h> #include <stdio.h> extern "C" int GetNetWareShellVersion(char *,char *, char *); void main(void) { char MajorVersion=0; char MinorVersion=0; char Revision=0; asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision); asm pop si if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n"); return; } printf("\nВерсия оболочки NetWare: %d.%d.%d\n",MajorVersion, MinorVersion, Revision); }

Приведенная программа составлена на языке программирования С++, поэтому внешняя функция GetNetWareShellVersion() должна быть описана как внешняя функция, использующая соглашения об именах и передаче параметров в стандарте С: extern "C" int GetNetWareShellVersion(char *,char *, char *);

Если бы программа была составлена на языке С, можно было бы использовать описание этой функции, приведенное в одном из include-файлов библиотеки Netware C Interface. Для включения всех include-файлов библиотеки Netware C Interface вы должны добавить в вашу программу следующую строку: #include <nit.h>

Для программ, составленных на языке С++, вам придется создавать собственные include-файлы на базе поставляемых вместе с библиотекой Netware C Interface.

Если у вас нет библиотеки Netware C Interface, вы можете узнать номер версии, вызвав непосредственно функцию 0xEA01 прерывания INT21h.

Перед вызовом функции вам нужно соответствующим образом загрузить регистры:

На входе:AX= EA01h.
ES:DI= Указатель на буфер размером 40 байт, в который будет записано текстовое описание среды рабочей станции. Это описание состоит из четырех строк:

- название операционной системы;
- версия операционной системы;
- модель компьютера;
- фирма-производитель компьютера.

Последняя текстовая строка в буфере закрыта двумя двоичными нулями. На выходе:BH= Верхний (major) номер версии или 0, если сетевая оболочка не загружена или ее версия меньше 2.1. BL= Нижний (minor) номер версии. CL= Номер изменения (revision).

Приведем вариант предыдущей программы, не использующий библиотеку NetWare C Interface (листинг 2). Кроме версии сетевой оболочки программа выводит содержимое буфера с текстовым описанием среды рабочей станции. // ================================================================









- Начало -  - Назад -  - Вперед -