Использование протоколов IPX, SPX, NETBIOS

       

Команды NETBIOS


Перед выполнением команды ее код должен быть записан в поле Cmd блока NCB. Каждая команда NETBIOS реализована в двух вариантах - с ожиданием и без ожидания.

Если вашей программе нечего делать до тех пор, пока выполнение команды NETBIOS не будет полностью завершено, вы можете выбрать вариант с ожиданием. В этом случае после вызова NETBIOS программа вновь получит управление только после завершения выполнения команды. При использовании протоколов IPX/SPX ваша программа должна была сама дожидаться выполнения

вызванной функции, выполняя в цикле опрос поля InUse блока ECB. Однако учтите, что, если по каким-либо причинам выполнение команды не может быть завершено, ваша программа "зависнет".

Вариант без ожидания похож на вариант использования функций IPX/SPX с программой ESR, вызываемой после завершения операции. Программа, вызвавшая команду NETBIOS без ожидания, получает управление немедленно. Команда будет выполняться в фоновом режиме параллельно с работой вызвавшей ее программы. После того как выполнение команды будет завершено, управление будет передано функции, адрес которой необходимо указать в поле PostRoutine блока NCB. Можно также дожидаться окончания выполнения команды, опрашивая в цикле поле FinalCCode, которое будет содержать значение 0xFF до тех пор, пока команда не будет выполнена.

Все команды NETBIOS можно разделить на несколько групп:

для работы с именами;

  • для приема и передачи датаграмм;
  • для работы с каналами;
  • для приема и передачи данных через каналы;
  • другие команды.

    Так как большинство команд NETBIOS реализованы в двух вариантах

    (с ожиданием и без ожидания), для обозначения варианта с ожиданием мы будем в названии команды после префикса NB_ (от слова NETBIOS) добавлять букву W (от слова wait - ожидание). Например, команда NB_AddName выполняется без ожидания, а команда NB_WAddName - с ожиданием.

    У команд без ожидания старший бит кода команды установлен в единицу.



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