| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef NCB_INCLUDED | |
| #define NCB_INCLUDED | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #define NCBNAMSZ 16 | |
| #define MAX_LANA 254 | |
| 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_err; | |
| WORD xmit_aborts; | |
| DWORD xmit_success; | |
| DWORD recv_success; | |
| WORD iframe_xmit_err; | |
| WORD recv_buff_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 _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 | |
| 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[18]; | |
| } FIND_NAME_BUFFER,*PFIND_NAME_BUFFER; | |
| typedef struct _ACTION_HEADER { | |
| ULONG transport_id; | |
| USHORT action_code; | |
| USHORT reserved; | |
| } ACTION_HEADER,*PACTION_HEADER; | |
| #define ALL_TRANSPORTS "M\0\0\0" | |
| #define MS_NBF "MNBF" | |
| #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 | |
| #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_OPENERR 0x3f | |
| #define NRC_SYSTEM 0x40 | |
| #define NRC_PENDING 0xff | |
| UCHAR WINAPI Netbios(PNCB pncb); | |
| #define NCB_POST void CALLBACK | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |