NetBIOS Enhancements
The Win32 implementation of NetBIOS is based on the NetBIOS 3.0 specification. However, the Win32 implementation includes the following enhancements that are not part of the NetBIOS 3.0 specification:
-
NetBIOS emulator manages resources separately per process. For example, the network name numbers are assigned on a per-process basis. Therefore, if a process issues the NCBRESET command, the names, sessions, and outstanding NCBs allocated for that process are cleared, but those of other processes are not affected. Also, requests for the status of the local adapter retrieve only the names that were added by the process making the request.
-
The NetBIOS emulator supports 254 sessions per process, per LANA number.
-
You can supply an event in the ncb_event member of the NCB structure. This is not a standard NetBIOS 3.0 NCB member. The event is set to the signaled state when NetBIOS completes an asynchronous command. This method of issuing asynchronous commands is faster than using post routines and it uses fewer system resources. The system creates an event and a worker thread for each command that uses a post routine.
-
A process can enable extensions to the transport interface by using the NCBACTION command in the ncb_command member of the NCB structure. This is not a standard NetBIOS 3.0 command.
-
A process can enumerate all available LAN adapters by using the NCBENUM command in the ncb_command member of the NCB structure. This is not a standard NetBIOS 3.0 command.
-
A process is required to issue the NCBRESET command on each LANA number before it can issue any other NetBIOS command on the LANA number, with the exception of NCBENUM.
-
The NetBIOS 3.0 specification allows LANA numbers 0 and 1. Win32 allows additional LANA numbers.
-
The value 1 for the ncb_num member of the NCB structure is not exclusive when the NCBRESET command is issued. All MS-DOS and 16-bit Windows-based applications also share access to NAME_NUMBER_1.