Программирование в сетях Windows
.pdf538 Приложение А Перечень команд NetBtOB
Команда NCBCHAINSEND Х1ЮКЖ бднвмоЖ
Команда отправляет содержимое двух буферов указанному получателю. Максимальное количество данных, которое можно отправить, — 128 кб (по 64 кб в каждом буфере). Укажите первый буфер и его длину в полях neb buffer и ncbjength соответственно. Используйте байты 0-1 из ncbcallname, чтобы задать длину второго буфера, а байты 2-5 — чтобы сослаться на него.
Поле |
|
Ввод или вывод |
|
Нужно ли задать |
||
neb |
command |
|
Ввод |
|
Да |
|
neb |
retcode |
|
Вывод |
|
Нет |
|
ncbjsn |
|
Ввод |
|
Да |
|
|
neb пит |
|
Необязательно |
|
Нет |
|
|
ncbj>uffer |
|
Ввод |
|
Да |
|
|
neb |
length |
|
Ввод |
|
Да |
|
neb |
callname |
IMl |
Ввод |
|
Да |
|
neb |
name |
nil |
Необязательно |
|
Н е т |
VK>\ |
ncbrto |
|
Необязательно |
|
Нет |
да |
|
nebsto |
|
Необязательно |
|
Нет |
|
|
ncb_post |
|
Ввод |
|
Нет |
|
|
neb |
lana пит |
|
Ввод |
|
Да |
|
ncb_cmd_cplt |
|
Вывод |
|»; |
Нет |
|
|
neb |
event |
|
Ввод |
|
Нет |
|
|
|
|
|
|
|
|
КомандаNCBCHAINSENDNA
Команда отправляет содержимое двух буферов указанному получателю, не ожидая подтверждения. Максимальное количество данных, которое можно отправить, — 128 кб (по 64 кб в каждом буфере). Укажите первый буфер и его длину в полях nebjbuffer и ncbjength соответственно. Используйте байты 0-1 из ncbjoallname, чтобы задать длину второго буфера, а байты 2-5 — чтобы сослаться на него.
Поле |
Ввод или вывод |
|
Нужно ли задать |
||
ncb_command |
Ввод |
|
Да |
|
|
ncbretcode |
Вывод |
|
Нет |
|
|
ncbjsn |
Ввод |
|
Да |
,\ |
|
neb пит |
Необязательно |
м |
Нет |
^ ^ |
|
neb buffer |
|||||
Ввод |
ч |
Да |
ч |
||
ncbjength |
Ввод |
|
Да |
|
|
ncbjzallname |
Ввод |
|
Да |
|
|
nebjiame |
Необязательно |
|
Нет |
|
|
ncb_rto |
Необязательно |
|
Нет |
|
|
ncb_sto |
Необязательно |
|
Нет |
|
|
neb post |
Ввод |
|
Нет |
|
Приложение А Перечень команд NetBIOS |
539 |
|
|
продолжение |
|
|
|
|
|
Поле |
Ввод или вывод |
Нужно ли задать |
|
neb lana пит |
Ввод |
Да |
|
ncbcmdcplt |
Вывод |
Нет |
|
neb event |
Ввод |
Нет |
КомандаNCBDELNAME
Команда удаляет имя из локальной таблицы имен. Если удаляемое имя связано с активными сеансами, возвращается ошибка NRC^ACTSES (OxOF). Если ожидают выполнения какие-либо неактивные сеансы — ошибка NRC_NAMERR (0x17).
Поле |
Ввод или вывод |
|
Нужно ли задать |
|
neb |
command |
Ввод |
|
Да |
ncb_retcode |
Вывод |
|
Нет |
|
neb Isn |
Не обязательно |
|
Нет |
|
nebjium |
Не обязательно |
|
Нет |
|
neb |
buffer |
Не обязательно |
|
Нет |
neb |
length |
Не обязательно |
|
Нет |
neb |
callname |
Не обязательно |
|
Нет |
neb |
name |
Ввод |
|
Да |
neb |
rto |
Не обязательно |
|
' t Щ |
|
Нет |
|||
|
|
|
|
|
neb |
sto |
Не обязательно |
|
Нет |
nebjjost |
Ввод |
J.,,, |
Нет « |
|
neb |
lana пит |
Ввод |
|
Да |
neb |
cmdcplt |
Вывод |
|
Нет |
ncb_event |
Ввод |
|
Нет |
|
|
|
|
|
|
КомандаNCBDGRECV
Команда получает дейтаграмму, адресованную локальному имени, связанному со значением nebjium. Если ncbjium — OxFF, то команда получает дейтаграммы, адресованные любому локальному имени. Локальное имя может быть именем группы, либо уникальным. Если при отправке дейтаграммы нет команд, ожидающих приема дейтаграмм, данные удаляются. Если предоставленный буфер слишком мал, появится сообщение о невозможности завершения (NRCJNCOMP — 0x06) и данные будут усечены до размера буфера.
Поле |
Ввод или вывод |
Нужно ли задать |
|
||
neb |
command |
Ввод |
Да |
|
|
neb |
retcode |
Вывод |
Нет |
|
|
neb Isn |
Не обязательно |
Нет |
|
|
|
neb |
пит |
Ввод |
Да |
|
|
nebbuffer |
Вывод |
Да |
см.след.стр. |
|
|
|
|
|
|
|
540 Приложение А Перечень команд NetBIOS
продолжение
Поле |
Ввод или вывод |
Нужно ли задать |
|
|
|
ncbjength |
Ввод и вывод |
Да |
|
|
|
neb |
callname |
Вывод |
Нет |
|
|
neb |
name |
Необязательно |
Нет |
1 |
|
neb |
rto |
Не обязательно |
Нет |
|
|
neb |
sto |
Не обязательно |
Нет |
1 |
|
ncb_post |
Ввод |
Нет |
|
||
|
|
||||
nebjanajvum |
Ввод |
Да |
1 |
||
neb |
cmd cplt |
Вывод |
Нет |
11 |
|
ncb_event |
Ввод |
Нет |
|
|
|
|
|
|
|
|
|
КомандаNCBDGRECVBC
Команда получает широковещательную дейтаграмму от любого имени, выдающего команды отправки таких дейтаграмм. Если предоставленный буфер слишком мал, появится сообщение о невозможности завершения (NRCJNСОМР — ОхОб) и данные будут усечены до размера буфера.
Поле |
|
|
Ввод или вывод |
|
Нужно ли задать |
|
nebcommand |
|
Ввод |
Да |
|
||
ncbretcode |
|
Вывод |
Нет |
н |
||
ncbjsn |
He обязательно |
Нет |
< |
|||
nebjium |
Ввод |
Да |
.1 |
|||
ncb_buffer |
Ввод |
Да |
л |
|||
ncbjength |
Ввод и вывод |
Да |
\. |
|||
neb callname |
|
Вывод |
Нет |
|
||
nebjiame |
He обязательно |
Нет |
si |
|||
ncb_rto |
He обязательно |
Нет |
|
|||
ncb_sto |
Необязательно |
Нет \ • |
| |
|||
ncb_post |
Ввод |
Нет |
|
|||
nebjanajnum |
Ввод |
Да |
f' |
|||
ncbcmdcplt |
Вывод |
Нет |
'' |
|||
ncbevent |
|
Ввод |
Нет |
|
КомандаNCBDGSEND
Команда отправляет дейтаграмму по указанному уникальному или групповому имени. Если в адаптере есть отложенная команда приема дейтаграммы для того же самого имени, то адаптер получит свое собственное сообщение. Выполните локальную команду NCBASTAT — в структуре ADAPTERJ5TATUS будет возвращен максимальный размер дейтаграммы для базового транспортного протокола.
|
|
|
Приложение А |
Перечень команд NetBIOS |
54\ |
|
|
|
|
|
|
|
|
|
|
|
|
Поле |
|
Ввод или вывод |
Нужно ли задать |
|
|
neb |
command |
|
Ввод |
Да |
|
neb |
retcode |
|
Вывод |
Нет |
|
ncbjsn |
|
Не обязательно |
Нет |
|
|
neb |
пит |
|
Ввод |
Да |
|
neb |
buffer |
|
Ввод |
Да |
|
nebjength |
|
Ввод |
Да |
|
|
neb |
callname |
|
Ввод |
Да |
|
nebjiame |
|
Не обязательно |
Нет |
|
|
neb |
rto |
|
Не обязательно |
Нет |
|
ncb_sto |
|
Не обязательно |
Нет |
|
|
ncb_post |
-~* |
Ввод |
Нет |
|
|
neb |
lananum |
|
Ввод |
Да |
|
ncbcmdcplt |
|
Вывод |
Нет |
|
|
neb |
event |
|
Ввод |
Нет |
|
КомандаNCBDGSENDBC
Команда отправляет широковещательную дейтаграмму каждому узлу в ло
кальной сети. Только компьютеры с ожидающими выполнения командам! приема дейтаграмм получат сообщение. Если в локальном адаптере ест
отложенная команда приема дейтаграммы, он получит свое собственно» сообщение. Широковещательныедейтаграммы имеют ограничения по раз меру,упомянутыевописанииNCBDGSEND.
Поле |
|
Ввод или вывод |
Нужно ли задать |
|
ncb_command |
|
Ввод |
Да |
|
neb |
retcode |
|
Вывод |
Нет |
neb |
Isn |
|
Ввод |
Да |
nebnum |
|
Ввод |
Да |
|
neb |
buffer |
|
Ввод |
Да |
nebjength |
|
Не обязательно |
Нет |
|
neb |
callname |
|
Не обязательно |
Нет |
neb |
name |
|
Не обязательно |
Нет |
neb |
rto |
|
Не обязательно |
Нет |
neb |
sto |
|
Не обязательно |
Нет |
ncb_post |
' |
Ввод |
Нет |
|
neb |
lana пит |
l |
Ввод |
Да |
neb |
cmd cplt |
^ |
Вывод |
Нет |
neb |
event |
|
Ввод |
Нет |
542 |
Приложение А Перечень команд NetBIOS |
КомандаNCBENUM
Команда нумерует LANA. При этом ncbjouffer должен ссылаться на структуру LANA_ENUM. По возвращении поле length структуры LANA_ENUM будет содержать количество номеров LANA на локальном компьютере. Поле lana из LANA_ENUM заполняется номерами LANA.
Поле |
|
Ввод или вывод |
|
|
Нужно ли задать |
|||
|
|
|
|
|
|
|
|
|
neb |
|
command |
|
Ввод |
|
Да |
||
neb |
|
retcode |
|
Вывод |
|
Нет |
||
ncbjsn |
|
He обязательно |
|
Нет |
||||
neb |
пит |
|
He обязательно |
|
Нет |
|||
ncbjouffer |
vm¥ |
Ввод |
_ |
Да |
||||
neb |
length |
|
Ввод |
|
Да |
|||
ncbcallname |
|
He обязательно |
|
Нет |
||||
neb |
|
name |
|
He обязательно |
|
Нет |
||
ncbrto |
|
He обязательно |
|
Нет |
||||
neb |
sto |
|
He обязательно |
|
Нет |
|||
ncbj)ost |
|
He обязательно |
|
Нет |
||||
neb |
lana пит |
|
Ввод |
|
Да |
|||
ncb_cmd_cplt |
|
Вывод |
|
Нет |
||||
neb |
event |
|
Не обязательно |
|
Нет |
КомандаNCBFINDNAME
Команда находит местоположение (имя компьютера) в сети. После ее выполнения буфер ncbjouffer заполняется структурой EINDJVAME_HEADER, за которой следуют одна или несколько структур FINDJVAMEJ3UFFER. Команда специфична для Microsoft Windows NT и не поддерживается другими платформами Win32.
Поле |
Ввод или вывод |
|
Нужно ли задать |
|
ncb_command |
Ввод |
|
Да |
|
neb retcode |
Вывод |
|
Нет |
|
neb Isn |
Не обязательно |
|
Нет |
|
nebnum |
Не обязательно |
„„„ |
Нет |
_ |
neb buffer |
Ввод и вывод |
|
Да |
|
nebjength |
Ввод |
|
Да |
|
ncb_callname |
Ввод |
|
Да |
|
neb name |
Не обязательно |
|
Нет |
|
neb rto |
Не обязательно |
|
Нет |
|
nebsto |
Не обязательно |
|
Нет |
|
ncb_post |
Ввод |
|
Нет |
|
nebjananum |
Ввод |
|
Да |
|
ncb_cmd_cplt |
Вывод |
|
Нет |
|
neb event |
Ввод |
|
Нет |
|
544 Приложение А Перечень команд NetBIOS
продолжение
Поле |
|
Ввод или вывод |
Нужно ли задать |
||
|
|
|
|
|
|
ncbjto |
|
He обязательно |
Нет |
||
ncb_post |
He обязательно |
Нет |
|||
neb |
lananum |
Ввод |
Да |
||
neb |
cmd_cplt |
Вывод |
Нет |
||
neb |
event |
|
Нет |
КомандаNCBLISTEN
Команда прослушивает соединения от другого процесса, локального или удаленного. Если первый символ ncb_callname — звездочка ("), соединение устанавливается с любым адаптером сети, выдавшим команду NCBCALL локальному имени. Имя, генерирующееNCBCALL, возвращается в поле neb callname. Если задан таймаут отправки или приема, он применяется во всех запросах в рамках нового сеанса.
Поле |
Ввод или вывод |
Нужно ли задать |
|
|
nebcommand |
Ввод |
Да |
|
|
neb |
retcode |
Вывод |
Нет |
|
ncbjsn |
Вывод |
Нет |
|
|
neb |
пит |
Не обязательно |
Нет |
|
ncb_buffer |
Не обязательно |
Нет |
|
|
neb |
length |
Не обязательно |
Нет |
|
neb_callname |
Ввод и вывод |
Да |
|
|
neb |
name |
Ввод |
Да |
|
ncbjrto |
Ввод |
Нет |
|
|
neb |
sto |
Ввод |
Нет |
|
ncb_post |
Ввод |
Нет |
")Л |
|
nebjanajnum |
Ввод |
Да |
|
|
ncb_cmd_cplt |
Вывод |
Нет |
|
|
neb |
event |
Ввод |
Нет |
|
|
|
|
|
|
КомандаNCBRECV
Команда получает данные от сеанса с указанным именем. Если ожидающие обработки данные способны получить несколько команд, они обрабатываются в таком порядке.
1.Прием(NCBRECV).
2.Прием всехдля указанного имени (NCBRECVANY). 3- Прием всехдлялюбого имени (NCBRECVANY).
Все команды с одинаковым приоритетом обрабатываются в порядке поступления. Если буфер обмена не достаточно вместителен, выдается ошиб-
546 Приложение А Перечень команд NetBIOS
продолжение
Поле |
|
Ввод или вывод |
Нужно ли задать |
|
neb пит |
|
Ввод и вывод |
Да |
|
ncbbuffer |
|
Ввод |
Да |
|
ncbjength |
|
Ввод и вывод |
Да |
1 |
neb callname |
|
Не обязательно |
Нет |
|
neb name |
|
Не обязательно |
Нет |
|
neb rto |
|
Не обязательно |
Нет |
|
neb sto |
M |
Не обязательно |
Нет |
|
ncb_post |
|
Ввод |
Нет |
|
neb lana пит |
|
Ввод |
Да |
|
neb cmd cplt |
|
Вывод |
Нет |
|
ncb_event |
|
Ввод |
Нет |
|
|
|
|
|
|
КомандаNCBRESET
Команда сбрасывает указанный номер LANA и затрагивает определенные ресурсы среды.
ШЕсли поле ncbjsn не равно 0, все ресурсы, связанные с ncbjanajium, освобождаются.
ШЕсли поле ncbjsn равно 0, все ресурсы, связанные с ncbjanajium, освобождаются и выделяются новые. Байт ncb_callname[O] задает максимальное количество сеансов, байт ncb_callname[2] — максимальное количество имен, а байт ncb_callname[3]требует, чтобы приложение использовало имя компьютера (у которого номер имени 1).
Поле |
|
|
Ввод или вывод |
|
Нужно ли задать |
|
|
|
|
|
|
|
|
nebjzommand |
|
Ввод |
|
Да |
||
ncb_retcode |
Вывод |
Нет |
||||
ncbjsn |
Ввод |
Да |
||||
nebjnum |
|
Ввод |
|
Да |
||
nebjouffer |
|
He обязательно |
|
Нет |
||
ncbjength |
|
He обязательно |
|
Нет |
||
ncb_callname |
|
He обязательно |
|
Нет |
||
nebjiame |
|
He обязательно |
|
Нет |
||
ncbjrto |
He обязательно |
Нет |
||||
ncb_sto |
|
He обязательно |
|
Нет |
||
ncb_post |
|
He обязательно |
|
Нет |
||
ncbjanajium |
|
Ввод |
|
Да |
||
ncbcmdjcplt |
Вывод |
Нет |
||||
neb event |
|
He обязательно |
|
Нет |
Приложение А Перечень команд NetBIOS |
547 |
КомандаNCBSEND
Команда отправляет данные указанному участнику сеанса. Максимальный размер передаваемых данных — 65 536 байт (64 кб). Если удаленная сторона выдает команду завершения связи, все отложенные отправки возвращают ошибку, связанную с закрытием сеанса, —NRCJSCLOSED (0x0А). Отложенные команды отправки обрабатываются в порядке поступления.
Поле |
Ввод или вывод |
Нужно ли задать |
||
|
|
|
|
|
ncbcommand |
Ввод |
Да |
||
neb |
retcode |
Вывод |
Нет |
|
ncbjsn |
Ввод |
Да |
||
neb |
пит |
He обязательно |
Нет |
|
nebbuffer |
Ввод |
Да |
||
nebjength |
Ввод |
Да |
||
ncbcallname |
Не обязательно |
Нет |
||
neb |
name |
Не обязательно |
Нет |
|
с neb |
rto |
Не обязательно |
Нет |
|
nebsto |
Не обязательно |
Нет |
||
ncb_post |
Ввод |
Нет |
||
neb |
lana пит |
Ввод |
Да |
|
ncb_cmd_cplt |
Вывод |
Нет |
||
neb |
event |
Ввод |
Нет |
|
КомандаNCBSENDNA
Команда отправляет данные указанному сеансу и не ожидает подтверждения от партнера. В остальном ведет себя так же, как NCBSEND.
Поле |
Ввод или вывод |
Нужно ли задать |
|
|
|
|
|
ncb_command |
Ввод |
Нет |
|
ncb_retcode |
Вывод |
Нет |
|
ncbjsn |
Ввод |
Да |
|
nebjium |
He обязательно |
Нет |
|
nebjbuffer |
Ввод |
Да |
|
nebjength |
Ввод |
Да |
|
ncb_callname |
Не обязательно |
Нет |
|
nebjiame |
Не обязательно |
Нет |
|
ncbjrto |
Не обязательно |
Нет |
|
ncb_sto |
Не обязательно |
Нет |
|
ncb_post |
Ввод |
Нет |
|
nebjanajnum |
Ввод |
Да |
|
ncb_cmd_cplt |
Вывод |
Нет |
|
neb event |
Ввод |
Нет |
|