Команды 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 - с ожиданием.
У команд без ожидания старший бит кода команды установлен в единицу.