|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| No
| Import Library
| -
| Header File
| nb30.h
| Unicode
| No
| Platform Notes
| None
|
|
|
NCB
The
NCB structure describes a network control block. A pointer to this structure is
passed to the
Netbios function.
typedef struct _NCB { // ncb
UCHAR ncb_command;
UCHAR ncb_retcode;
UCHAR ncb_lsn;
UCHAR ncb_num;
PUCHAR ncb_buffer;
WORD ncb_length;
UCHAR ncb_callname[NCBNAMSZ];
UCHAR ncb_name[NCBNAMSZ];
UCHAR ncb_rto;
UCHAR ncb_sto;
void (*ncb_post) (struct _NCB *);
UCHAR ncb_lana_num;
UCHAR ncb_cmd_cplt;
UCHAR ncb_reserve[10];
HANDLE ncb_event;
} NCB;
Members
ncb_command
Specifies the command code and a flag that indicates whether the
NCB structure is processed asynchronously. The most significant bit contains the
flag. If the ASYNCH constant is combined with a command code (by using the OR
operator), the
NCB structure is processed asynchronously. The following command codes are
supported:
Code
| Meaning
|
NCBACTION
| Enables extensions to the transport interface. NCBACTION commands are mapped
to TdiAction. When this code is specified, the ncb_buffer member points to a buffer to be filled with an ACTION_HEADER structure, which is optionally followed by data. NCBACTION commands cannot be
canceled by using NCBCANCEL.
|
NCBADDGRNAME
| Adds a group name to the local name table.
|
NCBADDNAME
| Adds a unique name to the local name table.
|
NCBASTAT
| Retrieves the status of the adapter. When this code is specified, the ncb_buffer member points to a buffer to be filled with an ADAPTER_STATUS structure, followed by an array of NAME_BUFFER structures.
|
NCBCALL
| Opens a session with another name.
|
NCBCANCEL
| Cancels a previous command.
|
NCBCHAINSEND
| Sends the contents of two data buffers to the specified session partner.
|
NCBCHAINSENDNA
| Sends the contents of two data buffers to the specified session partner and
does not wait for acknowledgment.
|
NCBDELNAME
| Deletes a name from the local name table.
|
NCBDGRECV
| Receives a datagram from any name.
|
NCBDGRECVBC
| Receives broadcast datagram from any host.
|
NCBDGSEND
| Sends datagram to a specified name.
|
NCBDGSENDBC
| Sends a broadcast datagram to every host on the local area network (LAN).
|
NCBENUM
| Enumerates LAN adapter (LANA) numbers. When this code is specified, the ncb_buffer member points to a buffer to be filled with a LANA_ENUM structure.
|
NCBFINDNAME
| Determines the location of a name on the network. When this code is specified,
the ncb_buffer member points to a buffer to be filled with a FIND_NAME_HEADER structure followed by one or more FIND_NAME_BUFFER structures.
|
NCBHANGUP
| Closes a specified session.
|
NCBLANSTALERT
| Notifies the user of LAN failures that last for more than one minute.
|
NCBLISTEN
| Enables a session to be opened with another name.
|
NCBRECV
| Receives data from the specified session partner.
|
NCBRECVANY
| Receives data from any session corresponding to a specified name.
|
NCBRESET
| Resets a LAN adapter. An adapter must be reset before any other NCB command
that specifies the same number in the ncb_lana_num member will be accepted.
|
| The IBM NetBIOS 3.0 specification documents several NCB_RESET NCB's. Win32
implements the NCB.RESET using the dynamic link routine interface. Particular
values can be passed in specific bytes of the NCB, more specifically:
|
| - If ncb_lsn is not 0x00, all resources associated with ncb_lana_num are to be freed.
|
| - If ncb_lsn is 0x00, all resources associated with ncb_lana_num are to be freed, and new resources are to be allocated. The ncb_callname[0] byte specifies the maximum number of sessions, and the ncb_callname[2] byte specifies the maximum number of names. A nonzero value for the ncb_callname[3] byte requests that the application use NAME_NUMBER_1.
|
NCBSEND
| Sends data to the specified session partner.
|
NCBSENDNA
| Sends data to specified session partner and does not wait for an
acknowledgment.
|
NCBSSTAT
| Retrieves the status of the session. When this value is specified, the ncb_buffer member points to a buffer to be filled with a SESSION_HEADER structure, followed by one or more SESSION_BUFFER structures.
|
NCBTRACE
| Activates or deactivates NCB tracing. Support for this command in the system
is optional and system-specific.
|
NCBUNLINK
| Unlinks the adapter.
|
ncb_retcode
Specifies the return code. This value is set to NRC_PENDING while an
asynchronous operation is in progress. One of the following return code values can be
specified:
Value
| Meaning
|
NRC_GOODRET
| The operation succeeded.
|
NRC_BUFLEN
| An illegal buffer length was supplied.
|
NRC_ILLCMD
| An illegal command was supplied.
|
NRC_CMDTMO
| The command was timed out.
|
NRC_INCOMP
| The message was incomplete. The application is to issue another command.
|
NRC_BADDR
| The buffer address was illegal.
|
NRC_SNUMOUT
| The session number was out of range.
|
NRC_NORES
| No resource was available.
|
NRC_SCLOSED
| The session was closed.
|
NRC_CMDCAN
| The command was canceled.
|
NRC_DUPNAME
| A duplicate name existed in the local name table.
|
NRC_NAMTFUL
| The name table was full.
|
NRC_ACTSES
| The command finished; the name has active sessions and is no longer registered.
|
NRC_LOCTFUL
| The local session table was full.
|
NRC_REMTFUL
| The remote session table was full. The request to open a session was rejected.
|
NRC_ILLNN
| An illegal name number was specified.
|
NRC_NOCALL
| The system did not find the name that was called.
|
NRC_NOWILD
| Wildcards are not permitted in the ncb_name member.
|
NRC_INUSE
| The name was already in use on the remote adapter.
|
NRC_NAMERR
| The name was deleted.
|
NRC_SABORT
| The session ended abnormally.
|
NRC_NAMCONF
| A name conflict was detected.
|
NRC_IFBUSY
| The interface was busy.
|
NRC_TOOMANY
| Too many commands were outstanding; the application can retry the command
later.
|
NRC_BRIDGE
| The ncb_lana_num member did not specify a valid network number.
|
NRC_CANOCCR
| The command finished while a cancel operation was occurring.
|
NRC_CANCEL
| The NCBCANCEL command was not valid; the command was not canceled.
|
NRC_DUPENV
| The name was defined by another local process.
|
NRC_ENVNOTDEF
| The environment was not defined. A reset command must be issued.
|
NRC_OSRESNOTAV
| Operating system resources were exhausted. The application can retry the
command later.
|
NRC_MAXAPPS
| The maximum number of applications was exceeded.
|
NRC_NOSAPS
| No service access points (SAPs) were available for NetBIOS.
|
NRC_NORESOURCES
| The requested resources were not available.
|
NRC_INVADDRESS
| The NCB address was not valid.
|
| This return code is not part of the IBM NetBIOS 3.0 specification and is not
returned in the NCB structure. Instead, it is returned by the Netbios function.
|
NRC_INVDDID
| The NCB DDID was invalid.
|
NRC_LOCKFAIL
| The attempt to lock the user area failed.
|
NRC_OPENERR
| An error occurred during an open operation being performed by the device
driver. This return code is not part of the IBM NetBIOS 3.0 specification.
|
NRC_SYSTEM
| A system error occurred.
|
NRC_PENDING
| An asynchronous operation is not yet finished.
|
ncb_lsn
Specifies the local session number. This number uniquely identifies a session
within an environment.
ncb_num
Specifies the number for the local network name. This number is returned by
Netbios after a successful NCBADDNAME or NCBADDGRNAME command. This number, not the
name, must be used with all datagram commands and for NCBRECVANY commands.
The number for NAME_NUMBER_1 (see NCBRESET) is always 0x01.
Netbios assigns values in the range 0x02 to 0xFE for the remaining names.
ncb_buffer
Points to the message buffer.
ncb_length
Specifies the size, in bytes, of the message buffer.
ncb_callname
Specifies the string that contains the remote name. Trailing space characters
should be supplied to make the length of the string equal to NCBNAMSZ.
ncb_name
Specifies the string that contains the local name. Trailing space characters
should be supplied to make the length of the string equal to NCBNAMSZ.
ncb_rto
Specifies the receive time-out period, in 500-millisecond units, for the
session. A value of zero implies no time-out. Specified with the NCBCALL or
NCBLISTEN command. Affects subsequent NCBRECV commands.
ncb_sto
Specifies the send time-out period, in 500-millisecond units, for the session.
A value of zero implies no time-out. Specified with the NCBCALL or NCBLISTEN
command. Affects subsequent NCBSEND and NCBCHAINSEND commands.
ncb_post
Specifies the address of the routine to call when the asynchronous NCB
finishes. The completion routine is passed a pointer to the completed network control
block.
ncb_lana_num
Specifies the LAN adapter number. This zero-based number corresponds to a
particular transport provider using a particular LAN adapter board.
ncb_cmd_cplt
Specifies the command complete flag. This value is the same as the
ncb_retcode member.
ncb_reserve
Reserved; must be zero.
ncb_event
Specifies a handle to a Windows event that is set to the signaled state when
the asynchronous network control block finishes. The event is signaled if the
Netbios function returns a nonzero value.
The
ncb_event member must be zero if the
ncb_command member does not have the ASYNCH value set or if
ncb_post is nonzero. Otherwise, NRC_ILLCMD is returned.
The event specified by
ncb_event is set to the nonsignaled state by the system when an asynchronous NetBIOS
command is accepted, and it is set to the signaled state when the asynchronous
NetBIOS command finishes.
Using
ncb_event to submit asynchronous requests requires fewer system resources than using
ncb_post. Also, when
ncb_event is nonzero, the pending request is canceled if the thread terminates before
the request is processed. This is not true for requests sent by using
ncb_post.
Only manual reset events should be used with
Netbios. A given event should not be associated with more than one active
asynchronous NetBIOS command.
See Also
ACTION_HEADER,
ADAPTER_STATUS,
FIND_NAME_BUFFER,
FIND_NAME_HEADER,
LANA_ENUM,
NAME_BUFFER,
Netbios,
SESSION_BUFFER,
SESSION_HEADER
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database