|  | /* | 
|  | * 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 */ |