| /* | 
 |  * Copyright (C) 2001 Mike McCormack | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
 |  */ | 
 |  | 
 | #ifndef NCB_INCLUDED | 
 | #define NCB_INCLUDED | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | #define NCBNAMSZ 16 | 
 | #define MAX_LANA 0xfe | 
 |  | 
 | #define NCBCALL        0x10 | 
 | #define NCBLISTEN      0x11 | 
 | #define NCBHANGUP      0x12 | 
 | #define NCBSEND        0x14 | 
 | #define NCBRECV        0x15 | 
 | #define NCBRECVANY     0x16 | 
 | #define NCBCHAINSEND   0x17 | 
 | #define NCBDGSEND      0x20 | 
 | #define NCBDGRECV      0x21 | 
 | #define NCBDGSENDBC    0x22 | 
 | #define NCBDGRECVBC    0x23 | 
 | #define NCBADDNAME     0x30 | 
 | #define NCBDELNAME     0x31 | 
 | #define NCBRESET       0x32 | 
 | #define NCBASTAT       0x33 | 
 | #define NCBSSTAT       0x34 | 
 | #define NCBCANCEL      0x35 | 
 | #define NCBADDGRNAME   0x36 | 
 | #define NCBENUM        0x37 | 
 | #define NCBUNLINK      0x70 | 
 | #define NCBSENDNA      0x71 | 
 | #define NCBCHAINSENDNA 0x72 | 
 | #define NCBLANSTALERT  0x73 | 
 | #define NCBACTION      0x77 | 
 | #define NCBFINDNAME    0x78 | 
 | #define NCBTRACE       0x79 | 
 |  | 
 | #define ASYNCH         0x80 | 
 |  | 
 | typedef struct _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	(CALLBACK *ncb_post)(struct _NCB *); | 
 | 	UCHAR	ncb_lana_num; | 
 | 	UCHAR	ncb_cmd_cplt; | 
 | #ifdef _WIN64 | 
 | 	UCHAR	ncb_reserve[18]; | 
 | #else | 
 | 	UCHAR	ncb_reserve[10]; | 
 | #endif | 
 | 	HANDLE	ncb_event; | 
 | } NCB, *PNCB; | 
 |  | 
 | typedef struct _ADAPTER_STATUS | 
 | { | 
 | 	UCHAR   adapter_address[6]; | 
 | 	UCHAR	rev_major; | 
 | 	UCHAR	reserved0; | 
 | 	UCHAR	adapter_type; | 
 | 	UCHAR	rev_minor; | 
 | 	WORD	duration; | 
 | 	WORD	frmr_recv; | 
 | 	WORD	frmr_xmit; | 
 | 	WORD	iframe_recv_error; | 
 | 	WORD	xmit_aborts; | 
 | 	DWORD	xmit_success; | 
 | 	DWORD	recv_success; | 
 | 	WORD	iframe_xmit_error; | 
 | 	WORD	recv_buffer_unavail; | 
 | 	WORD	t1_timeouts; | 
 | 	WORD	ti_timeouts; | 
 | 	DWORD	reserved1; | 
 | 	WORD	free_ncbs; | 
 | 	WORD	max_cfg_ncbs; | 
 | 	WORD	max_ncbs; | 
 | 	WORD	xmit_buf_unavail; | 
 | 	WORD	max_dgram_size; | 
 | 	WORD	pending_sess; | 
 | 	WORD	max_cfg_sess; | 
 | 	WORD	max_sess; | 
 | 	WORD	max_sess_pkt_size; | 
 | 	WORD	name_count; | 
 | } ADAPTER_STATUS, *PADAPTER_STATUS; | 
 |  | 
 | typedef struct _NAME_BUFFER | 
 | { | 
 |   UCHAR name[NCBNAMSZ]; | 
 |   UCHAR name_num; | 
 |   UCHAR name_flags; | 
 | } NAME_BUFFER, *PNAME_BUFFER; | 
 |  | 
 | #define NAME_FLAGS_MASK 0x87 | 
 | #define GROUP_NAME      0x80 | 
 | #define UNIQUE_NAME     0x00 | 
 | #define REGISTERING     0x00 | 
 | #define REGISTERED      0x04 | 
 | #define DEREGISTERED    0x05 | 
 | #define DUPLICATE       0x06 | 
 | #define DUPLICATE_DEREG 0x07 | 
 |  | 
 | typedef struct _LANA_ENUM | 
 | { | 
 | 	UCHAR length; | 
 | 	UCHAR lana[MAX_LANA+1]; | 
 | } LANA_ENUM, *PLANA_ENUM; | 
 |  | 
 | typedef struct _FIND_NAME_HEADER | 
 | { | 
 |   WORD  node_count; | 
 |   UCHAR reserved; | 
 |   UCHAR unique_group; | 
 | } FIND_NAME_HEADER, *PFIND_NAME_HEADER; | 
 |  | 
 | typedef struct _FIND_NAME_BUFFER | 
 | { | 
 |   UCHAR length; | 
 |   UCHAR access_control; | 
 |   UCHAR frame_control; | 
 |   UCHAR destination_addr[6]; | 
 |   UCHAR source_addr[6]; | 
 |   UCHAR routing_info[6]; | 
 | } FIND_NAME_BUFFER, *PFIND_NAME_BUFFER; | 
 |  | 
 | typedef struct _SESSION_HEADER { | 
 |   UCHAR sess_name; | 
 |   UCHAR num_sess; | 
 |   UCHAR rcv_dg_outstanding; | 
 |   UCHAR rcv_any_outstanding; | 
 | } SESSION_HEADER, *PSESSION_HEADER; | 
 |  | 
 | typedef struct _SESSION_BUFFER { | 
 |   UCHAR lsn; | 
 |   UCHAR state; | 
 |   UCHAR local_name[NCBNAMSZ]; | 
 |   UCHAR remote_name[NCBNAMSZ]; | 
 |   UCHAR rcvs_outstanding; | 
 |   UCHAR sends_outstanding; | 
 | } SESSION_BUFFER, *PSESSION_BUFFER; | 
 |  | 
 | #define LISTEN_OUTSTANDING  0x01 | 
 | #define CALL_PENDING        0x02 | 
 | #define SESSION_ESTABLISHED 0x03 | 
 | #define HANGUP_PENDING      0x04 | 
 | #define HANGUP_COMPLETE     0x05 | 
 | #define SESSION_ABORTED     0x06 | 
 |  | 
 | #define ALL_TRANSPORTS "M\0\0\0" | 
 |  | 
 | #define NRC_GOODRET     0x00 | 
 | #define NRC_BUFLEN      0x01 | 
 | #define NRC_ILLCMD      0x03 | 
 | #define NRC_CMDTMO      0x05 | 
 | #define NRC_INCOMP      0x06 | 
 | #define NRC_BADDR       0x07 | 
 | #define NRC_SNUMOUT     0x08 | 
 | #define NRC_NORES       0x09 | 
 | #define NRC_SCLOSED     0x0a | 
 | #define NRC_CMDCAN      0x0b | 
 | #define NRC_DUPNAME     0x0d | 
 | #define NRC_NAMTFUL     0x0e | 
 | #define NRC_ACTSES      0x0f | 
 | #define NRC_LOCTFUL     0x11 | 
 | #define NRC_REMTFUL     0x12 | 
 | #define NRC_ILLNN       0x13 | 
 | #define NRC_NOCALL      0x14 | 
 | #define NRC_NOWILD      0x15 | 
 | #define NRC_INUSE       0x16 | 
 | #define NRC_NAMERR      0x17 | 
 | #define NRC_SABORT      0x18 | 
 | #define NRC_NAMCONF     0x19 | 
 | #define NRC_IFBUSY      0x21 | 
 | #define NRC_TOOMANY     0x22 | 
 | #define NRC_BRIDGE      0x23 | 
 | #define NRC_CANOCCR     0x24 | 
 | #define NRC_CANCEL      0x26 | 
 | #define NRC_DUPENV      0x30 | 
 | #define NRC_ENVNOTDEF   0x34 | 
 | #define NRC_OSRESNOTAV  0x35 | 
 | #define NRC_MAXAPPS     0x36 | 
 | #define NRC_NOSAPS      0x37 | 
 | #define NRC_NORESOURCES 0x38 | 
 | #define NRC_INVADDRESS  0x39 | 
 | #define NRC_INVDDID     0x3b | 
 | #define NRC_LOCKFAIL    0x3c | 
 | #define NRC_OPENERROR   0x3f | 
 | #define NRC_SYSTEM      0x40 | 
 | #define NRC_PENDING     0xff | 
 |  | 
 | UCHAR WINAPI Netbios(PNCB pncb); | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif  /* NCB_INCLUDED */ |