File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                 nb30.d                                *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.nb30;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t
4e2933c620 2015-04-21        kinaba: 	NCBNAMSZ =  16,
4e2933c620 2015-04-21        kinaba: 	MAX_LANA = 254;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: are these really two sets of constants?
4e2933c620 2015-04-21        kinaba: enum : UCHAR {
4e2933c620 2015-04-21        kinaba: 	REGISTERING     = 0,
4e2933c620 2015-04-21        kinaba: 	REGISTERED      = 4,
4e2933c620 2015-04-21        kinaba: 	DEREGISTERED,
4e2933c620 2015-04-21        kinaba: 	DUPLICATE,
4e2933c620 2015-04-21        kinaba: 	DUPLICATE_DEREG, // = 7
4e2933c620 2015-04-21        kinaba: 	UNIQUE_NAME     = 0,
4e2933c620 2015-04-21        kinaba: 	GROUP_NAME      = 0x80,
4e2933c620 2015-04-21        kinaba: 	NAME_FLAGS_MASK = 0x87
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UCHAR {
4e2933c620 2015-04-21        kinaba: 	LISTEN_OUTSTANDING = 1,
4e2933c620 2015-04-21        kinaba: 	CALL_PENDING,
4e2933c620 2015-04-21        kinaba: 	SESSION_ESTABLISHED,
4e2933c620 2015-04-21        kinaba: 	HANGUP_PENDING,
4e2933c620 2015-04-21        kinaba: 	HANGUP_COMPLETE,
4e2933c620 2015-04-21        kinaba: 	SESSION_ABORTED // = 6
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const char[4]
4e2933c620 2015-04-21        kinaba: 	ALL_TRANSPORTS = "M\0\0\0",
4e2933c620 2015-04-21        kinaba: 	MS_NBF         = "MNBF";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UCHAR {
4e2933c620 2015-04-21        kinaba: 	NCBCALL        = 0x10,
4e2933c620 2015-04-21        kinaba: 	NCBLISTEN,
4e2933c620 2015-04-21        kinaba: 	NCBHANGUP,  // = 0x12
4e2933c620 2015-04-21        kinaba: 	NCBSEND        = 0x14,
4e2933c620 2015-04-21        kinaba: 	NCBRECV,
4e2933c620 2015-04-21        kinaba: 	NCBRECVANY,
4e2933c620 2015-04-21        kinaba: 	NCBCHAINSEND, // = 0x17
4e2933c620 2015-04-21        kinaba: 	NCBDGSEND      = 0x20,
4e2933c620 2015-04-21        kinaba: 	NCBDGRECV,
4e2933c620 2015-04-21        kinaba: 	NCBDGSENDBC,
4e2933c620 2015-04-21        kinaba: 	NCBDGRECVBC, // = 0x23,
4e2933c620 2015-04-21        kinaba: 	NCBADDNAME     = 0x30,
4e2933c620 2015-04-21        kinaba: 	NCBDELNAME,
4e2933c620 2015-04-21        kinaba: 	NCBRESET,
4e2933c620 2015-04-21        kinaba: 	NCBASTAT,
4e2933c620 2015-04-21        kinaba: 	NCBSSTAT,
4e2933c620 2015-04-21        kinaba: 	NCBCANCEL,
4e2933c620 2015-04-21        kinaba: 	NCBADDGRNAME,
4e2933c620 2015-04-21        kinaba: 	NCBENUM,    // = 0x37
4e2933c620 2015-04-21        kinaba: 	NCBUNLINK      = 0x70,
4e2933c620 2015-04-21        kinaba: 	NCBSENDNA,
4e2933c620 2015-04-21        kinaba: 	NCBCHAINSENDNA,
4e2933c620 2015-04-21        kinaba: 	NCBLANSTALERT, // = 0x73
4e2933c620 2015-04-21        kinaba: 	NCBACTION      = 0x77,
4e2933c620 2015-04-21        kinaba: 	NCBFINDNAME,
4e2933c620 2015-04-21        kinaba: 	NCBTRACE    // = 0x79
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const UCHAR ASYNCH = 0x80;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UCHAR {
4e2933c620 2015-04-21        kinaba: 	NRC_GOODRET     = 0x00,
4e2933c620 2015-04-21        kinaba: 	NRC_BUFLEN      = 0x01,
4e2933c620 2015-04-21        kinaba: 	NRC_ILLCMD      = 0x03,
4e2933c620 2015-04-21        kinaba: 	NRC_CMDTMO      = 0x05,
4e2933c620 2015-04-21        kinaba: 	NRC_INCOMP,
4e2933c620 2015-04-21        kinaba: 	NRC_BADDR,
4e2933c620 2015-04-21        kinaba: 	NRC_SNUMOUT,
4e2933c620 2015-04-21        kinaba: 	NRC_NORES,
4e2933c620 2015-04-21        kinaba: 	NRC_SCLOSED,
4e2933c620 2015-04-21        kinaba: 	NRC_CMDCAN,  // = 0x0b
4e2933c620 2015-04-21        kinaba: 	NRC_DUPNAME     = 0x0d,
4e2933c620 2015-04-21        kinaba: 	NRC_NAMTFUL,
4e2933c620 2015-04-21        kinaba: 	NRC_ACTSES,  // = 0x0f,
4e2933c620 2015-04-21        kinaba: 	NRC_LOCTFUL     = 0x11,
4e2933c620 2015-04-21        kinaba: 	NRC_REMTFUL,
4e2933c620 2015-04-21        kinaba: 	NRC_ILLNN,
4e2933c620 2015-04-21        kinaba: 	NRC_NOCALL,
4e2933c620 2015-04-21        kinaba: 	NRC_NOWILD,
4e2933c620 2015-04-21        kinaba: 	NRC_INUSE,
4e2933c620 2015-04-21        kinaba: 	NRC_NAMERR,
4e2933c620 2015-04-21        kinaba: 	NRC_SABORT,
4e2933c620 2015-04-21        kinaba: 	NRC_NAMCONF, // = 0x19
4e2933c620 2015-04-21        kinaba: 	NRC_IFBUSY      = 0x21,
4e2933c620 2015-04-21        kinaba: 	NRC_TOOMANY,
4e2933c620 2015-04-21        kinaba: 	NRC_BRIDGE,
4e2933c620 2015-04-21        kinaba: 	NRC_CANOCCR, // = 0x24
4e2933c620 2015-04-21        kinaba: 	NRC_CANCEL      = 0x26,
4e2933c620 2015-04-21        kinaba: 	NRC_DUPENV      = 0x30,
4e2933c620 2015-04-21        kinaba: 	NRC_ENVNOTDEF   = 0x34,
4e2933c620 2015-04-21        kinaba: 	NRC_OSRESNOTAV,
4e2933c620 2015-04-21        kinaba: 	NRC_MAXAPPS,
4e2933c620 2015-04-21        kinaba: 	NRC_NOSAPS,
4e2933c620 2015-04-21        kinaba: 	NRC_NORESOURCES,
4e2933c620 2015-04-21        kinaba: 	NRC_INVADDRESS, // = 0x39
4e2933c620 2015-04-21        kinaba: 	NRC_INVDDID     = 0x3B,
4e2933c620 2015-04-21        kinaba: 	NRC_LOCKFAIL    = 0x3C,
4e2933c620 2015-04-21        kinaba: 	NRC_OPENERR     = 0x3f,
4e2933c620 2015-04-21        kinaba: 	NRC_SYSTEM      = 0x40,
4e2933c620 2015-04-21        kinaba: 	NRC_PENDING     = 0xff
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTION_HEADER {
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		/*	transport_id is defined as a ULONG, but both the above constants
4e2933c620 2015-04-21        kinaba: 		 *	and the documented description suggest it should be a char[4]
4e2933c620 2015-04-21        kinaba: 		 */
4e2933c620 2015-04-21        kinaba: 		ULONG   transport_id;
4e2933c620 2015-04-21        kinaba: 		char[4] c_transport_id;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	USHORT action_code;
4e2933c620 2015-04-21        kinaba: 	USHORT reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTION_HEADER* PACTION_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ADAPTER_STATUS {
4e2933c620 2015-04-21        kinaba: 	UCHAR[6] adapter_address;
4e2933c620 2015-04-21        kinaba: 	UCHAR    rev_major;
4e2933c620 2015-04-21        kinaba: 	UCHAR    reserved0;
4e2933c620 2015-04-21        kinaba: 	UCHAR    adapter_type;
4e2933c620 2015-04-21        kinaba: 	UCHAR    rev_minor;
4e2933c620 2015-04-21        kinaba: 	WORD     duration;
4e2933c620 2015-04-21        kinaba: 	WORD     frmr_recv;
4e2933c620 2015-04-21        kinaba: 	WORD     frmr_xmit;
4e2933c620 2015-04-21        kinaba: 	WORD     iframe_recv_err;
4e2933c620 2015-04-21        kinaba: 	WORD     xmit_aborts;
4e2933c620 2015-04-21        kinaba: 	DWORD    xmit_success;
4e2933c620 2015-04-21        kinaba: 	DWORD    recv_success;
4e2933c620 2015-04-21        kinaba: 	WORD     iframe_xmit_err;
4e2933c620 2015-04-21        kinaba: 	WORD     recv_buff_unavail;
4e2933c620 2015-04-21        kinaba: 	WORD     t1_timeouts;
4e2933c620 2015-04-21        kinaba: 	WORD     ti_timeouts;
4e2933c620 2015-04-21        kinaba: 	DWORD    reserved1;
4e2933c620 2015-04-21        kinaba: 	WORD     free_ncbs;
4e2933c620 2015-04-21        kinaba: 	WORD     max_cfg_ncbs;
4e2933c620 2015-04-21        kinaba: 	WORD     max_ncbs;
4e2933c620 2015-04-21        kinaba: 	WORD     xmit_buf_unavail;
4e2933c620 2015-04-21        kinaba: 	WORD     max_dgram_size;
4e2933c620 2015-04-21        kinaba: 	WORD     pending_sess;
4e2933c620 2015-04-21        kinaba: 	WORD     max_cfg_sess;
4e2933c620 2015-04-21        kinaba: 	WORD     max_sess;
4e2933c620 2015-04-21        kinaba: 	WORD     max_sess_pkt_size;
4e2933c620 2015-04-21        kinaba: 	WORD     name_count;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ADAPTER_STATUS* PADAPTER_STATUS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FIND_NAME_BUFFER {
4e2933c620 2015-04-21        kinaba: 	/*	From Win32 API docs
4e2933c620 2015-04-21        kinaba: 	 *
4e2933c620 2015-04-21        kinaba: 	 *	length
4e2933c620 2015-04-21        kinaba: 	 *		Specifies the length, in bytes, of the FIND_NAME_BUFFER
4e2933c620 2015-04-21        kinaba: 	 *		structure. Although this structure always occupies 33 bytes,
4e2933c620 2015-04-21        kinaba: 	 *		not all of the structure is necessarily valid.
4e2933c620 2015-04-21        kinaba: 	 *
4e2933c620 2015-04-21        kinaba: 	 *	On this basis, should length be initialised?
4e2933c620 2015-04-21        kinaba: 	 */
4e2933c620 2015-04-21        kinaba: 	UCHAR     length;
4e2933c620 2015-04-21        kinaba: 	UCHAR     access_control;
4e2933c620 2015-04-21        kinaba: 	UCHAR     frame_control;
4e2933c620 2015-04-21        kinaba: 	UCHAR[6]  destination_addr;
4e2933c620 2015-04-21        kinaba: 	UCHAR[6]  source_addr;
4e2933c620 2015-04-21        kinaba: 	UCHAR[18] routing_info;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FIND_NAME_BUFFER* PFIND_NAME_BUFFER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FIND_NAME_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD  node_count;
4e2933c620 2015-04-21        kinaba: 	UCHAR reserved;
4e2933c620 2015-04-21        kinaba: 	UCHAR unique_group;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FIND_NAME_HEADER* PFIND_NAME_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct LANA_ENUM {
4e2933c620 2015-04-21        kinaba: 	UCHAR             length;
4e2933c620 2015-04-21        kinaba: 	UCHAR[MAX_LANA+1] lana;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias LANA_ENUM* PLANA_ENUM;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct NAME_BUFFER {
4e2933c620 2015-04-21        kinaba: 	UCHAR[NCBNAMSZ] name;
4e2933c620 2015-04-21        kinaba: 	UCHAR           name_num;
4e2933c620 2015-04-21        kinaba: 	UCHAR           name_flags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias NAME_BUFFER* PNAME_BUFFER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct NCB {
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_command;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_retcode;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_lsn;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_num;
4e2933c620 2015-04-21        kinaba: 	PUCHAR          ncb_buffer;
4e2933c620 2015-04-21        kinaba: 	WORD            ncb_length;
4e2933c620 2015-04-21        kinaba: 	UCHAR[NCBNAMSZ] ncb_callname;
4e2933c620 2015-04-21        kinaba: 	UCHAR[NCBNAMSZ] ncb_name;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_rto;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_sto;
4e2933c620 2015-04-21        kinaba: 	extern (Windows) void function(NCB*) ncb_post;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_lana_num;
4e2933c620 2015-04-21        kinaba: 	UCHAR           ncb_cmd_cplt;
9b639cf2d6 2015-05-05        kinaba: 	UCHAR[10]       ncb_reserve;
4e2933c620 2015-04-21        kinaba: 	HANDLE          ncb_event;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias NCB* PNCB;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SESSION_BUFFER {
4e2933c620 2015-04-21        kinaba: 	UCHAR           lsn;
4e2933c620 2015-04-21        kinaba: 	UCHAR           state;
4e2933c620 2015-04-21        kinaba: 	UCHAR[NCBNAMSZ] local_name;
4e2933c620 2015-04-21        kinaba: 	UCHAR[NCBNAMSZ] remote_name;
4e2933c620 2015-04-21        kinaba: 	UCHAR           rcvs_outstanding;
4e2933c620 2015-04-21        kinaba: 	UCHAR           sends_outstanding;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SESSION_BUFFER* PSESSION_BUFFER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SESSION_HEADER {
4e2933c620 2015-04-21        kinaba: 	UCHAR sess_name;
4e2933c620 2015-04-21        kinaba: 	UCHAR num_sess;
4e2933c620 2015-04-21        kinaba: 	UCHAR rcv_dg_outstanding;
4e2933c620 2015-04-21        kinaba: 	UCHAR rcv_any_outstanding;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SESSION_HEADER* PSESSION_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) UCHAR Netbios(PNCB);