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

       

Программа DIRUNMAP


Программа DIRUNMAP (листинг 10) выполняет отмену отображения локального диска на сетевой каталог. Ей необходимо указать один параметр - букву, обозначающую диск, для которого необходимо отменить отображение.

// =================================================== // Листинг 10. Отмена отображения локального диска на // сетевой каталог // Файл dirunmap\dirunmap.cpp // // (C) A. Frolov, 1993 // ===================================================

#include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h>

#define BYTE unsigned char #define WORD unsigned int

extern "C" int GetNetWareShellVersion(char *,char *, char *); extern "C" BYTE GetDirectoryHandle(BYTE); extern "C" int DeallocateDirectoryHandle(BYTE);

void main(int argc, char *argv[]) {

char MajorVersion=0; char MinorVersion=0; char Revision=0;

BYTE DirectoryHandle;

int ccode;

printf("\n*DIRUNMAP* (C) Frolov A., 1993\n");

// Проверяем наличие сетевой оболочки

asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision); asm pop si

if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n"); return; }

// Необходимо задать букву, обозначающую имя // локального диска и путь к сетевому каталогу

if(argc < 2) { printf( "Укажите локальный диск, например: dirunmap f\n"); return; } // Параметр должен быть задан заглавной буквой

strupr(argv[1]);

// Получаем индекс каталога, на который отображен указанный диск

DirectoryHandle = GetDirectoryHandle(argv[1][0] - 'A');

// Если диск не отображен на сетевой каталог, // выводим сообщение об ошибке

if(DirectoryHandle) printf("Индекс каталога: %d\n", DirectoryHandle); else { printf("Диск не отображен на сетевой каталог\n"); return; }

// Отменяем отображение диска

ccode = DeallocateDirectoryHandle(DirectoryHandle);

// Если ошибок не было, выводим индекс каталога // и маску прав для каталога

if(ccode) printf("Ошибка %02.2X\n", ccode); else printf("Диск %c удален\n", argv[1][0]); }



Содержание раздела