Intel Pentium processor - технический обзор
Технический обзор
Главная -
Формат Блока сообщений спецпроцессора (SMB)
Формат Блока сообщений спецпроцессора (SMB)
В этом разделе описывается общая структура и поля SMB (фор-
мат). Заметьте, что термины "имя устройства", "имя каталога" и "имя
файла" относятся к своим эквивалентам в PC-DOS (например, имя уст-
ройства PRN обозначает принтер). Имя диалекта представляет собой
строку символов, которая имеет те же ограничения, что и имя файла
(8 символов плюс необязательное расширение из 3 символов). В начале
данной главы описывается структура имени сети. Имя источника и наз-
начения представляют собой имена длиной от 1 до 15 символов (см.вы-
ше). Пароль представляет собой имя длиной от 1 до 8 символов, ко-
торое имеет те же ограничения, что и имя файла PC-DOS.
На рис. 4-1 показан типичный формат SMB.
ПОЛЕ РАЗМЕР ОПИСАНИЕ
-------------------------------------------------------------------
!SMB_ID ! DB 0FFH ! Программа Сети РС 1.0 Тип сообщения !
-------------------------------------------------------------------
!SMB_SERVER ! DB 'SMB' ! Тип спецпроцессора SMB !
-------------------------------------------------------------------
!SMB_FUNCTION! DB 0 ! Код функции !
-------------------------------------------------------------------
!SME_RETCLASS! DB 0 ! Класс ошибки возврата !
-------------------------------------------------------------------
!SMB_HEINFO ! DB 0 ! Величина AH по прерыванию INT 24H !
! ! ! или зарезервировано = 0 !
-------------------------------------------------------------------
!SMB_RETCODE ! DW 0 ! Код ошибки возврата !
-------------------------------------------------------------------
!SMB_RESV1 ! DB 0 ! Зарезервировано; должно быть 0 !
-------------------------------------------------------------------
!SMB_RESV2 ! DB 0 ! Зарезервировано; должно быть 0 !
-------------------------------------------------------------------
! ! ! !
-------------------------------------------------------------------
! ! ! !
-------------------------------------------------------------------
! ! ! !
-------------------------------------------------------------------
! ! ! !
-------------------------------------------------------------------
! ! ! !
-------------------------------------------------------------------
!SMB_RESV8 ! DW 0 ! Зарезервировано; должно быть 0 !
-------------------------------------------------------------------
!SMB_NPID ! DW 0 ! Идентификатор маршрута сети !
-------------------------------------------------------------------
!SMB_PID ! DW 0 ! Идентификатор процесса !
-------------------------------------------------------------------
!SMB_RESV9 ! DW 0 ! Зарезервировано; должно быть 0 !
-------------------------------------------------------------------
!SMB_RES10 ! DW 0 ! Зарезервировано; должно быть 0 !
-------------------------------------------------------------------
!SMB_PARMCNT ! DB 0 ! Подсчет параметров в SMB !
-------------------------------------------------------------------
!SMB_P1-PN ! DW 0 ! Функционально-зависимые параметры SMB !
-------------------------------------------------------------------
!SMB_BUFLEN ! DW 0 ! Длина буфера SMB !
-------------------------------------------------------------------
!SMB_BUF ! DB'bytes'! Начало области буфера SMB !
-------------------------------------------------------------------
Рис 4-1. Типичный формат SMB.
Поле SMB_FUNCTION может принимать следующие величины:
Величина Значение
-------- --------
00H Создать каталог
01H
02H Открыть файл
03H Создать файл
04H Закрыть файл
05H Выполнить все файлы
06H Стереть файл
07H Переименовать файл
08H Получить атрибут файла
09H Установить атрибут файла
0AH Прочитать байтовый блок
0BH Записать байтовый блок
0CH Блокировать байтовый блок
0DH Разблокировать байтовый блок
0EH Создать уникальный файл
0FH Создать новый файл
10H Проверить каталог
11H Конец процесса
12H LSEEK (см.далее)
70H Начать соединение
71H Закончить соединение
72H Проверить диалект
80H Получить атрибуты диска
81H Поиск нескольких файлов
C0H Создать буферный файл
C1H Буферизировать байтовый блок
C2H Закрыть буферный файл
C3H Возвратить очередь печати
D0H Послать сообщение
D1H Послать широковещательное сообщение
D2H Ретранслировать имя пользователя
D3H Отменить ретрансляцию
D4H Получить имя машины
D5H Начать много-блоковое сообщение
D6H Закончить много-блоковое сообщение
D7H Текст много-блокового сообщения
Поле SMB_RETCODE может принимать следующие величины (если
SMB_RETCLASS = 00H):
Величина Значение
-------- --------
0054H Сообщение было буферизировано
0055H Сообщение было зарегистрировано
0056H Показано сообщение пользователя.
Поле SMB_RETCODE может принимать следующие величины (если
SMB_RETCLASS = 02H):
Величина Значение
-------- --------
0000H Зарезервировано
0001H Неизвестная ошибка
0002H Неверный пароль
0003H Не соответствует присвоенный тип устройства
0004H Нарушен уровень доступа к имени сети
0005H Неверный идентификатор маршрута сети
0006H Не найден маршрут сети
0007H Неправильное устройство
0031H Очередь печати заполнена (число файлов)
0032H Очередь печати не помещается в свободное
место
0033H Конец файла в очереди печати
0034H Неверный идентификатор файла печати
0051H Пауза спецпроцессора
0052H Нет получаемых сообщений
0053H Нет места для буферизации сообщения
0057H Чрезмерное количество отдаленных
пользовательских имен
0058H Дублирующееся имя в сети
FFFFH Функция не поддерживается
20.05.2012