NB_WReceiveDatagram (0x21)
Команда предназначена для приема датаграмм, переданных командой NB_SendDatagram. Она не может принимать датаграммы, переданные в "широковещательном" режиме командой NB_SendBroadcastDatagram. Однако эта команда может принимать датаграммы, посланные на групповое имя.
Если перед вызовом команды в поле NetworkNameNumber блока NCB записать значение 0xFF, команда сможет принимать датаграммы от любой станции для любого имени.
Если длина принятой датаграммы превышает значение, указанное в поле Size, принятый блок данных будет обрезан.
| Поля NCB на входе | Содержимое |
| Cmd | 0x21 |
| NetworkNameNumber | Номер, присвоенный при добавлении имени или 0xFF |
| Buffer | Адрес буфера, содержащего передаваемые данные |
| Size | Размер буфера |
| PostRoutine | Дальний указатель на POST-программу или нулевое значение, если POST-программа не используется |
| AdapterNumber | Номер адаптера; 0 - первый адаптер, 1 - второй |
| Поля NCB на выходе | Содержимое |
| CallName | Имя станции, от которой получена датаграмма |
| Size | Размер принятого блока данных |
| CCode | Промежуточный код завершения команды |
| FinalCCode | Окончательный код завершения команды |
| Содержимое поля CCode на выходе |
Значение |
| 0x00 | Нет ошибок |
| 0x03 | Неправильный код команды |
| 0x21 | Интерфейс занят |
| 0x22 | Выдано слишком много команд |
| 0x23 | Неправильное значение в поле номера адаптера AdapterNumber |
| 0x40 - 0x4F | Необычное состояние сети (Unusual network condition) |
| 0x50 - 0xFE | Сбой сетевого адаптера или другого сетевого аппаратного обеспечения |
| Содержимое поля FinalCCode на выходе |
Значение |
| 0x00 | Нет ошибок |
| 0x01 | Неправильная длина буфера |
| 0x03 | Неправильный код команды |
| 0x06 | Размер буфера слишком мал для того, чтобы разместить в нем принятые данные |
| 0x0B | Команда отменена |
| 0x13 | Неправильный номер имени |
| 0x17 | Имя удалено |
| 0x19 | Конфликт имен (внутренняя ошибка NETBIOS) |
| 0x21 | Интерфейс занят |
| 0x22 | Выдано слишком много команд |
| 0x23 | Неправильное значение в поле номера адаптера AdapterNumber |
| 0x40 - 0x4F | Необычное состояние сети (Unusual network condition) |
| 0x50 - 0xFE | Сбой сетевого адаптера или другого сетевого аппаратного обеспечения |