home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / RIPL.H < prev    next >
C/C++ Source or Header  |  1999-04-29  |  35KB  |  786 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Local Area Network (LAN) Server              */
  4. /*                            Version 5.03                                */
  5. /*                   (C) Copyright IBM Corp. 1988, 1998                   */
  6. /*                  Licensed Materials - Property of IBM                  */
  7. /*                                                                        */
  8. /**************************************************************************/
  9.  
  10.  
  11. /********************************************************************
  12.  *                                                                  *
  13.  *  About this file ...  RIPL.H                                     *
  14.  *                                                                  *
  15.  *  This file contains information about the RIPL (Remote IPL)      *
  16.  *  APIs.  For each API class there is a section on:                *
  17.  *                                                                  *
  18.  *      Function prototypes.                                        *
  19.  *                                                                  *
  20.  *       Data structure templates.                                  *
  21.  *                                                                  *
  22.  *        Definition of special values.                             *
  23.  *                                                                  *
  24.  *                                                                  *
  25.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  26.  *           file depends on values defined in NETCONS.H.           *
  27.  *                                                                  *
  28.  ********************************************************************/
  29.  
  30.  
  31. #if !defined NETRIPL_INCLUDED
  32. #define NETRIPL_INCLUDED
  33.  
  34. #ifdef  ANY_32_BIT
  35. #pragma pack(2)
  36. #endif
  37.  
  38. /****************************************************************
  39.  *                                                              *
  40.  *              Function prototypes - NetxxxRIPLMachine         *
  41.  *                                    NetxxxRIPLMachineInfo     *
  42.  *                                                              *
  43.  ****************************************************************/
  44.  
  45. extern API_FUNCTION
  46.  NetCreateRIPLMachine (const unsigned char LSFAR *,   /* server               */
  47.                        unsigned short,                /* level (2, 12)        */
  48.                        unsigned char LSFAR *,         /* buffer (send)        */
  49.                        unsigned short);               /* buffer length        */
  50.  
  51. extern API_FUNCTION
  52.  NetDeleteRIPLMachine (const unsigned char LSFAR *,   /* server               */
  53.                        unsigned char LSFAR *);        /* machine name(client) */
  54.  
  55. extern API_FUNCTION
  56.  NetGetRIPLMachineInfo (const unsigned char LSFAR *,  /* server               */
  57.                         unsigned char LSFAR *,        /* machine name(client) */
  58.                         unsigned short,               /* level (0, 1, 2)      */
  59.                         unsigned char LSFAR *,        /* buffer (receive)     */
  60.                         unsigned short,               /* buffer length        */
  61.                         unsigned short LSFAR *);      /* bytes available      */
  62.  
  63. extern API_FUNCTION
  64.  NetSetRIPLMachineInfo (const unsigned char LSFAR *,  /* server               */
  65.                         unsigned char LSFAR *,        /* machine name(client) */
  66.                         unsigned short,               /* level (1, 2)         */
  67.                         unsigned char LSFAR *,        /* buffer (send)        */
  68.                         unsigned short,               /* buffer length        */
  69.                         unsigned short);              /* parameter number     */
  70.  
  71. extern API_FUNCTION
  72.  NetEnumRIPLMachine (const unsigned char LSFAR *,     /* server               */
  73.                      unsigned short,                  /* level (0, 1, 2)      */
  74.                      unsigned short,                  /* type                 */
  75.                      unsigned char LSFAR *,           /* buffer (receive)     */
  76.                      unsigned short,                  /* buffer length        */
  77.                      unsigned short LSFAR *,          /* entries returned     */
  78.                      unsigned short LSFAR *);         /* entries available    */
  79.  
  80. /****************************************************************
  81.  *                                                              *
  82.  *              Data structure templates - RIPL                 *
  83.  *                                                              *
  84.  ****************************************************************/
  85. #define IPALEN 15                    //  length of IP address
  86. #define MAX_API_BUFFER_SIZE  0xffff
  87. #define VGA_VIDEO_TYPE           "VGA_VIDEO_TYPE"
  88. #define PARAMETER_NOT_SUPPORTED  "PARAMETER_NOT_SUPPORTED"
  89. #if !defined MCNLEN
  90. #define MCNLEN  8                    //  length of machine class name
  91. #endif
  92.  
  93. struct ripl_machine_info_0
  94.    {
  95.     unsigned char                     rmi0_name[CNLEN + 1];
  96.    };
  97.  
  98. struct ripl_machine_info_1
  99.    {
  100.     unsigned char                     rmi1_name[CNLEN + 1];
  101.     unsigned char LSFAR * LSPTR       rmi1_remark;
  102.    };
  103.  
  104. struct ripl_machine_info_2
  105.    {
  106.     unsigned char                     rmi2_name[CNLEN + 1];
  107.     unsigned char LSFAR * LSPTR       rmi2_remark;
  108.     unsigned char                     rmi2_adapter_address[NNLEN + 1];
  109.     unsigned char                     rmi2_pad_1;
  110.     unsigned char                     rmi2_OS2_boot_drive;
  111.     unsigned char                     rmi2_pad_2;
  112.     unsigned char                     rmi2_DOS_imageid[DOSIMGLEN + 1];
  113.     unsigned char                     rmi2_pad_3;
  114.     unsigned char LSFAR * LSPTR       rmi2_DOS_srv_rec_ID;
  115.     unsigned char LSFAR * LSPTR       rmi2_OS2_srv_rec_ID;
  116.     unsigned long                     rmi2_OS2_config_flags;
  117.    };
  118.  
  119.  
  120. struct ripl_machine_info_3
  121.    {
  122.     unsigned char                 rmi3_name[CNLEN+1];
  123.     unsigned char  LSFAR * LSPTR  rmi3_remark;
  124.     unsigned char                 rmi3_adapter_address[NNLEN+1];
  125.     unsigned char                 rmi3_pad_1[3];
  126.     unsigned char                 rmi3_machine_status;
  127.     unsigned char                 rmi3_pad_2[3];
  128.     unsigned char                 rmi3_OS_version[NNLEN+1];
  129.     unsigned char                 rmi3_pad_3[3];
  130.     unsigned char                 rmi3_OS_boot_drive;
  131.     unsigned char                 rmi3_pad_4[3];
  132.     unsigned char                 rmi3_local_swapper;
  133.     unsigned char                 rmi3_pad_5[3];
  134.     unsigned char                 rmi3_machine_class_name[MCNLEN+1];
  135.     unsigned char                 rmi3_pad_6[3];
  136.     unsigned char                 rmi3_boot_method;
  137.     unsigned char                 rmi3_boot_protocol;
  138.     unsigned char                 rmi3_additional_protocol;
  139.     unsigned char                 rmi3_tcpbeui_node;
  140.     unsigned char  LSFAR * LSPTR  rmi3_network_adapter_type;
  141.     unsigned char  LSFAR * LSPTR  rmi3_video_monitor;
  142.     unsigned char  LSFAR * LSPTR  rmi3_video_resolution;
  143.     unsigned char  LSFAR * LSPTR  rmi3_nbns_ipaddress;
  144.     unsigned char  LSFAR * LSPTR  rmi3_nbdd_ipaddress;
  145.     unsigned char  LSFAR * LSPTR  rmi3_netbios_scope;
  146.     unsigned char  LSFAR * LSPTR  rmi3_reserved_2;
  147.     unsigned char                 rmi3_ip_DHCP;
  148.     unsigned char                 rmi3_pad_7[3];
  149.     unsigned char                 rmi3_ip_DDNS;
  150.     unsigned char                 rmi3_pad_8[3];
  151.     unsigned char                 rmi3_ip_ipaddress[IPALEN+1];
  152.     unsigned char                 rmi3_ip_subnetmask[IPALEN+1];
  153.     unsigned char                 rmi3_ip_router[IPALEN+1];
  154.     unsigned char                 rmi3_ip_nameserver[IPALEN+1];
  155.     unsigned char  LSFAR * LSPTR  rmi3_ip_domainname;
  156.     unsigned char  LSFAR * LSPTR  rmi3_ip_hostname;
  157.     unsigned char  LSFAR * LSPTR  rmi3_locally_administered_addr;
  158.     unsigned long                 rmi3_number_printer_structs;
  159.    };
  160.  
  161.  
  162. struct ripl_machine_info_4
  163.    {
  164.     unsigned char                 rmi4_name[CNLEN+1];
  165.     unsigned char  LSFAR * LSPTR  rmi4_DOS_srv_rec_ID;
  166.     unsigned char  LSFAR * LSPTR  rmi4_OS2_srv_rec_ID;
  167.     unsigned char  LSFAR * LSPTR  rmi4_NC_srv_rec_ID;
  168.    };
  169.  
  170.  
  171. struct ripl_machine_info_12
  172.    {
  173.     unsigned char                     rmi12_name[CNLEN + 1];
  174.     unsigned char LSFAR * LSPTR       rmi12_remark;
  175.     unsigned char                     rmi12_adapter_address[NNLEN + 1];
  176.     unsigned char                     rmi12_pad_1;
  177.     unsigned char                     rmi12_model_name[CNLEN + 1];
  178.    };
  179.  
  180.  
  181. struct ripl_machineclass_info_0
  182.    {
  183.     unsigned char                rmci0_name[MCNLEN+1];
  184.     unsigned char                rmci0_pad_1[3];
  185.    };
  186.  
  187. struct ripl_machineclass_info_1
  188.    {
  189.     unsigned char                rmci1_name[MCNLEN+1];
  190.     unsigned char                rmci1_pad_1[3];
  191.     unsigned char *              rmci1_remark;
  192.    };
  193.  
  194. struct ripl_machineclass_info_3
  195.    {
  196.     unsigned char                rmci3_name[MCNLEN+1];
  197.     unsigned char                rmci3_pad_1[3];
  198.     unsigned char *              rmci3_remark;
  199.     BYTE                         rmci3_bus_type;
  200.     unsigned char                rmci3_pad_2[3];
  201.     BYTE                         rmci3_diskette;
  202.     unsigned char                rmci3_pad_3[3];
  203.     BYTE                         rmci3_serial;
  204.     unsigned char                rmci3_pad_4[3];
  205.     BYTE                         rmci3_parallel;
  206.     unsigned char                rmci3_pad_5[3];
  207.     BYTE                         rmci3_hardfile_type;
  208.     unsigned char                rmci3_pad_6[3];
  209.     BYTE                         rmci3_boot_method;
  210.     unsigned char                rmci3_pad_7[3];
  211.     BYTE                         rmci3_PCMCIA_options;
  212.     unsigned char                rmci3_pad_8[3];
  213.     BYTE                         rmci3_keyboard_type;
  214.     unsigned char                rmci3_pad_9[3];
  215.     BYTE                         rmci3_keyboard_mode;
  216.     unsigned char                rmci3_pad_10[3];
  217.     unsigned long                rmci3_config_flags;
  218.     unsigned char *              rmci3_mouse;
  219.     unsigned char *              rmci3_network_adapter_type;
  220.     unsigned char *              rmci3_video_type;
  221.     unsigned char *              rmci3_video_monitor;
  222.     unsigned char *              rmci3_video_resolution;
  223.     unsigned char *              rmci3_country_code;
  224.     unsigned char *              rmci3_country_keyboard;
  225.     unsigned char *              rmci3_cdrom;
  226.     unsigned char *              rmci3_multimedia;
  227.     unsigned char *              rmci3_scsi_adapter;
  228.     unsigned char *              rmci3_PCMCIA;
  229.     unsigned char *              rmci3_user_config_sys;
  230.     unsigned long                rmci3_number_printer_structs;
  231.    };
  232.  
  233. struct ripl_machineclass_info_4
  234.    {
  235.     unsigned char                rmci4_name[MCNLEN+1];
  236.     unsigned char                rmci4_pad_1[3];
  237.     unsigned char *              rmci4_remark;
  238.     BYTE                         rmci4_edit_enabled;
  239.     BYTE                         rmci4_reserved_1[3];
  240.    };
  241.  
  242. struct ripl_listparm_osversion_info
  243.    {
  244.     unsigned char                rlposi_osname[CNLEN + 1];
  245.     unsigned char *              rlposi_remark;
  246.    };
  247.  
  248. struct ripl_listparm_ascii_info
  249.    {
  250.     unsigned char *              rlpai_stringpointer;
  251.    };
  252.  
  253. struct ripl_listparm_adapter_info
  254.    {
  255.     unsigned char *              rlpnai_adapter_title;
  256.     BYTE                         rlpnai_boot_methods;
  257.     BYTE                         rlpnai_laa_support;
  258.     BYTE                         rlpnai_reserved_1[2];
  259.    };
  260.  
  261. struct ripl_mclistparm_info
  262.    {
  263.     unsigned char *              rlpmci_description;
  264.     BYTE                         rlpmci_value;
  265.     BYTE                         rlpmci_reserved_1[3];
  266.    };
  267.  
  268. /****************************************************************
  269.  *                                                              *
  270.  *           Data structure templates - WorkSpace Level         *
  271.  *                                                              *
  272.  ****************************************************************/
  273. struct WSLevel_info_1
  274. {
  275.     ULONG  wsli_version_major;
  276.     ULONG  wsli_version_minor;
  277.     UCHAR  wsli_CSD_current[8];
  278.     UCHAR  wsli_CSD_previous[8];
  279.     UCHAR  wsli_country[1];
  280.     UCHAR  wsli_pad[3];
  281.     ULONG  wsli_reserved1;
  282.     ULONG  wsli_reserved2;
  283.     ULONG  wsli_reserved3;
  284. };
  285.  
  286. #ifdef PURE_32
  287.  
  288. /* Include NCPRINTER structures */
  289. #define INCL_NCPRINTER
  290. #include <ncapi.h>
  291.  
  292. /****************************************************************
  293.  *                                                              *
  294.  *   32-bit Function prototypes - NetxxxRIPLMachine             *
  295.  *                                NetxxxRIPLMachineInfo         *
  296.  *                                                              *
  297.  ****************************************************************/
  298.  
  299. extern API32_FUNCTION
  300.  Net32CreateRIPLMachine (const unsigned char *,       /* server               */
  301.                          unsigned long,               /* level (2, 12)        */
  302.                          unsigned char *,             /* buffer (send)        */
  303.                          unsigned long);              /* buffer length        */
  304.  
  305. extern API32_FUNCTION
  306.  Net32DeleteRIPLMachine (const unsigned char *,       /* server               */
  307.                          unsigned char *);            /* machine name(client) */
  308.  
  309. extern API32_FUNCTION
  310.  Net32GetRIPLMachineInfo (const unsigned char *,      /* server               */
  311.                           unsigned char       *,      /* machine name(client) */
  312.                           unsigned long,              /* level (0, 1, 2)      */
  313.                           unsigned char       *,      /* buffer (receive)     */
  314.                           unsigned long,              /* buffer length        */
  315.                           unsigned long       *);     /* bytes available      */
  316.  
  317. extern API32_FUNCTION
  318.  Net32SetRIPLMachineInfo (const unsigned char *,      /* server               */
  319.                           unsigned char       *,      /* machine name(client) */
  320.                           unsigned long,              /* level (1, 2)         */
  321.                           unsigned char       *,      /* buffer (send)        */
  322.                           unsigned long,              /* buffer length        */
  323.                           unsigned long);             /* parameter number     */
  324.  
  325. extern API32_FUNCTION
  326.  Net32EnumRIPLMachine (const unsigned char *,         /* server               */
  327.                        unsigned long,                 /* level (0, 1, 2)      */
  328.                        unsigned long,                 /* type                 */
  329.                        unsigned char        *,        /* buffer (receive)     */
  330.                        unsigned long,                 /* buffer length        */
  331.                        unsigned long        *,        /* entries returned     */
  332.                        unsigned long        *);       /* entries available    */
  333.  
  334. extern API32_FUNCTION
  335.  Net32RIPLMachineCreate (const char *,       /* server               */
  336.                          unsigned long,      /* level (2, 3, 12)     */
  337.                          char       *,       /* buffer (send)        */
  338.                          unsigned long);     /* buffer length        */
  339.  
  340. extern API32_FUNCTION
  341.  Net32RIPLMachineGetInfo (const char     *,      /* server               */
  342.                           char           *,      /* machine name(client) */
  343.                           unsigned long,         /* level (0, 1, 2, 3)   */
  344.                           char           *,      /* buffer (receive)     */
  345.                           unsigned long,         /* buffer length        */
  346.                           unsigned long  *);     /* bytes available      */
  347.  
  348. extern API32_FUNCTION
  349.  Net32RIPLMachineSetInfo (const char *,      /* server               */
  350.                           char       *,      /* machine name(client) */
  351.                           unsigned long,     /* level (1, 2, 3)      */
  352.                           char       *,      /* buffer (send)        */
  353.                           unsigned long,     /* buffer length        */
  354.                           unsigned long);    /* parameter number     */
  355.  
  356. extern API32_FUNCTION
  357.  Net32RIPLMachineEnum (const char     *,        /* server               */
  358.                        unsigned long,           /* level (0, 1, 2, 3, 4)*/
  359.                        unsigned long,           /* type                 */
  360.                        char           *,        /* buffer (receive)     */
  361.                        unsigned long,           /* buffer length        */
  362.                        unsigned long  *,        /* entries returned     */
  363.                        unsigned long  *);       /* entries available    */
  364.  
  365. extern API32_FUNCTION
  366.  Net32RIPLMachineListParmEnum (const char *,    /* server               */
  367.                        unsigned long,           /* parm Id              */
  368.                        char           *,        /* Machine name         */
  369.                        char           *,        /* Machine class        */
  370.                        char           *,        /* OS Version Id        */
  371.                        char           *,        /* Monitor Id           */
  372.                        char           *,        /* buffer (receive)     */
  373.                        unsigned long,           /* buffer length        */
  374.                        unsigned long  *,        /* entries returned     */
  375.                        unsigned long  *);       /* entries available    */
  376.  
  377. extern API32_FUNCTION
  378.  Net32RIPLMachineDelete(const char *,           /* server               */
  379.                         char *,                 /* machine name         */
  380.                         ULONG);                 /* reserved             */
  381.  
  382. extern API32_FUNCTION
  383.  Net32RIPLMachineClassEnum (const char *,       /* server               */
  384.                        char            *,       /* OS version id        */
  385.                        unsigned long,           /* level (0, 1, 3)      */
  386.                        char            *,       /* buffer (receive)     */
  387.                        unsigned long,           /* buffer length        */
  388.                        unsigned long   *,       /* entries returned     */
  389.                        unsigned long   *);      /* entries available    */
  390.  
  391. extern API32_FUNCTION
  392.  Net32RIPLMachineClassGetInfo (const char *,    /* server               */
  393.                        char           *,        /* OS version id        */
  394.                        char           *,        /* machine class name   */
  395.                        unsigned long,           /* level (0, 1,  3)     */
  396.                        char           *,        /* buffer (receive)     */
  397.                        unsigned long,           /* buffer length        */
  398.                        unsigned long  *);       /* bytes available      */
  399.  
  400. extern API32_FUNCTION
  401.  Net32RIPLMachineClassCreate (const char *,     /* server               */
  402.                        char           *,        /* OS version id        */
  403.                        unsigned long,           /* level (3)            */
  404.                        char           *,        /* buffer (send)        */
  405.                        unsigned long);          /* buffer length        */
  406.  
  407. extern API32_FUNCTION
  408.  Net32RIPLMachineClassSetInfo (const char *,    /* server               */
  409.                        char           *,        /* OS version id        */
  410.                        char           *,        /* machine class        */
  411.                        unsigned long,           /* level (3)            */
  412.                        char           *,        /* buffer (send)        */
  413.                        unsigned long,           /* buffer length        */
  414.                        unsigned long);          /* parameter number     */
  415.  
  416. extern API32_FUNCTION
  417.  Net32RIPLMachineClassDelete (const char *,     /* server               */
  418.                        char           *,        /* OS version id        */
  419.                        char           *);       /* machine class        */
  420.  
  421. extern API32_FUNCTION
  422.  Net32RIPLMachineClassListParmEnum (const char *,  /* server               */
  423.                        unsigned long,              /* parm Id              */
  424.                        char            *,          /* OS version id        */
  425.                        char            *,          /* VideoType            */
  426.                        char            *,          /* Monitor              */
  427.                        char            *,          /* buffer (receive)     */
  428.                        unsigned long,              /* buffer length        */
  429.                        unsigned long   *,          /* entries returned     */
  430.                        unsigned long   *);         /* entries available    */
  431.  
  432. /* typedef export entries */
  433.  
  434. typedef USHORT (* EXPENTRY pfnNet32CreateRIPLMachine)(const unsigned char *,
  435.                          unsigned long,
  436.                          unsigned char *,
  437.                          unsigned long);
  438.  
  439. typedef USHORT (* EXPENTRY pfnNet32DeleteRIPLMachine)(const unsigned char *,
  440.                          unsigned char *);
  441.  
  442. typedef USHORT (* EXPENTRY pfnNet32GetRIPLMachineInfo) (const unsigned char *,
  443.                           unsigned char       *,
  444.                           unsigned long,
  445.                           unsigned char       *,
  446.                           unsigned long,
  447.                           unsigned long       *);
  448.  
  449. typedef USHORT (* EXPENTRY pfnNet32SetRIPLMachineInfo) (const unsigned char *,
  450.                           unsigned char       *,
  451.                           unsigned long,
  452.                           unsigned char       *,
  453.                           unsigned long,
  454.                           unsigned long);
  455.  
  456. typedef USHORT (* EXPENTRY pfnNet32EnumRIPLMachine) (const unsigned char *,
  457.                        unsigned long,
  458.                        unsigned long,
  459.                        unsigned char        *,
  460.                        unsigned long,
  461.                        unsigned long        *,
  462.                        unsigned long        *);
  463.  
  464. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineCreate) (const char *,
  465.                          unsigned long,
  466.                          char       *,
  467.                          unsigned long);
  468.  
  469. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineGetInfo) (const char     *,
  470.                           char           *,
  471.                           unsigned long,
  472.                           char           *,
  473.                           unsigned long,
  474.                           unsigned long  *);
  475.  
  476. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineSetInfo) (const char *,
  477.                           char       *,
  478.                           unsigned long,
  479.                           char       *,
  480.                           unsigned long,
  481.                           unsigned long);
  482.  
  483. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineEnum) (const char     *,
  484.                        unsigned long,
  485.                        unsigned long,
  486.                        char           *,
  487.                        unsigned long,
  488.                        unsigned long  *,
  489.                        unsigned long  *);
  490.  
  491. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineListParmEnum) (const char *,
  492.                        unsigned long,
  493.                        char           *,
  494.                        char           *,
  495.                        char           *,
  496.                        char           *,
  497.                        char           *,
  498.                        unsigned long,
  499.                        unsigned long  *,
  500.                        unsigned long  *);
  501.  
  502. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineDelete) (const char *,
  503.                        char           *,
  504.                        ULONG);
  505.  
  506. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineClassEnum) (const char *,
  507.                        char            *,
  508.                        unsigned long,
  509.                        char            *,
  510.                        unsigned long,
  511.                        unsigned long   *,
  512.                        unsigned long   *);
  513.  
  514. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineClassGetInfo) (const char *,
  515.                        char           *,
  516.                        char           *,
  517.                        unsigned long,
  518.                        char           *,
  519.                        unsigned long,
  520.                        unsigned long  *);
  521.  
  522. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineClassCreate) (const char *,
  523.                        char           *,
  524.                        unsigned long,
  525.                        char           *,
  526.                        unsigned long);
  527.  
  528. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineClassSetInfo) (const char *,
  529.                        char           *,
  530.                        char           *,
  531.                        unsigned long,
  532.                        char           *,
  533.                        unsigned long,
  534.                        unsigned long);
  535.  
  536. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineClassDelete) (const char *,
  537.                        char           *,
  538.                        char           *);
  539.  
  540. typedef USHORT (* EXPENTRY pfnNet32RIPLMachineClassListParmEnum) (const char *,
  541.                        unsigned long,
  542.                        char            *,
  543.                        char            *,
  544.                        char            *,
  545.                        char            *,
  546.                        unsigned long,
  547.                        unsigned long   *,
  548.                        unsigned long   *);
  549.  
  550. /****************************************************************
  551.  *                                                              *
  552.  *   32-bit Function prototype - Net32WSLevelGetInfo            *
  553.  *                                                              *
  554.  ****************************************************************/
  555. extern API32_FUNCTION
  556.  Net32WSLevelGetInfo(const PUCHAR,              /* server               */
  557.                      ULONG,                     /* level                */
  558.                      PUCHAR,                    /* buffer               */
  559.                      ULONG,                     /* buflen               */
  560.                      PULONG,                    /* bytes available      */
  561.                      ULONG);                    /* reserved             */
  562.  
  563. /* typedef export entries */
  564. typedef USHORT (* EXPENTRY pfnNet32WSLevelGetInfo)(const PUCHAR,
  565.                                                    ULONG,
  566.                                                    PUCHAR,
  567.                                                    ULONG,
  568.                                                    PULONG,
  569.                                                    ULONG);
  570.  
  571. #endif /* PURE_32 */
  572.  
  573.  
  574. /****************************************************************
  575.  *                                                              *
  576.  *              Special values and constants - RIPL             *
  577.  *                                                              *
  578.  ****************************************************************/
  579.  
  580. /*
  581.  * values for rmi1_machine_type
  582.  */
  583. #define MTYPE_OS2_RIPL_REQ             0x0001
  584. #define MTYPE_DOS_RIPL_REQ             0x0002
  585.  
  586. /*
  587.  * values for rmi4_machine_type
  588.  */
  589. #define MTYPE_NC_RIPL_REQ              0x0004
  590. #define MTYPE_ALL_RIPL_REQ             0x00FF
  591.  
  592. /*
  593.  * values for Machine Parmnum (level 1 and 2)
  594.  */
  595. #define RIPL_MACH_REMARK_PARMNUM                 2
  596. #define RIPL_MACH_ADAPTER_PARMNUM                3
  597. #define RIPL_MACH_OS2_BOOTDRIVE_PARMNUM          5
  598. #define RIPL_MACH_DOS_IMAGEID_PARMNUM            7
  599. #define RIPL_MACH_DOS_SRVRECID_PARMNUM           9
  600. #define RIPL_MACH_OS2_SRVRECID_PARMNUM          10
  601.  
  602. /*
  603.  * values for Machine Parmnum (level 3)
  604. */
  605. #define RIPL_MACH_REMARK_PN               2
  606. #define RIPL_MACH_ADAPTER_PN              3
  607. #define RIPL_MACH_STATUS_PN               4
  608. #define RIPL_MACH_OS_VERSION_PN           5
  609. #define RIPL_MACH_OS_BOOT_DRIVE_PN        6
  610. #define RIPL_MACH_LOCAL_SWAPPER_PN        7
  611. #define RIPL_MACH_MCLASS_PN               8
  612. #define RIPL_MACH_BOOT_METHOD_PN          9
  613. #define RIPL_MACH_BOOT_PROTOCOL_PN        10
  614. #define RIPL_MACH_ADDL_PROTOCOL_PN        11
  615. #define RIPL_MACH_TCPBEUI_NODE_PN         12
  616. #define RIPL_MACH_NET_ADAPTER_ID_PN       13
  617. #define RIPL_MACH_VIDEO_MONITOR_PN        14
  618. #define RIPL_MACH_VIDEO_RESOLUTION_PN     15
  619. #define RIPL_MACH_NBNS_IPADDRESS_PN       16
  620. #define RIPL_MACH_NBDD_IPADDRESS_PN       17
  621. #define RIPL_MACH_NETBIOS_SCOPE_PN        18
  622. // Reserved_2                             19
  623. #define RIPL_MACH_IP_DHCP_PN              20
  624. #define RIPL_MACH_IP_DDNS_PN              21
  625. #define RIPL_MACH_IP_IPADDRESS_PN         22
  626. #define RIPL_MACH_IP_SUBNETMASK_PN        23
  627. #define RIPL_MACH_IP_ROUTER_PN            24
  628. #define RIPL_MACH_IP_NAMESERVER_PN        25
  629. #define RIPL_MACH_IP_DOMAINNAME_PN        26
  630. #define RIPL_MACH_IP_HOSTNAME_PN          27
  631. #define RIPL_MACH_LOCALLY_ADMIN_ADDR_PN   28
  632. #define RIPL_MACH_PRINTER_PN              29
  633. #define RIPL_MACH_OS_VERSION2_PN          101
  634. #define RIPL_MACH_NET_DHCP_8022_PN        102
  635.  
  636.  
  637. /*
  638.  * Parmnum limits for each machine level
  639.  */
  640. #define RI1_NUM_ELEMENTS            2
  641. #define RI2_NUM_ELEMENTS           10
  642. #define RI3_LAST_ELEMENT           29
  643. #define RI4_LAST_ELEMENT            4
  644.  
  645.  
  646. /*
  647.  * values for Machine Class Parmnum
  648.  */
  649. #define RIPL_MCLASS_NAME_PN                1
  650. #define RIPL_MCLASS_REMARK_PN              2
  651. #define RIPL_MCLASS_BUS_TYPE_PN            3
  652. #define RIPL_MCLASS_DISKETTE_PN            4
  653. #define RIPL_MCLASS_SERIAL_PN              5
  654. #define RIPL_MCLASS_PARALLEL_PN            6
  655. #define RIPL_MCLASS_HARDFILE_TYPE_PN       7
  656. #define RIPL_MCLASS_BOOT_METHOD_PN         8
  657. #define RIPL_MCLASS_PCMCIA_OPTIONS_PN      9
  658. #define RIPL_MCLASS_KEYBOARD_TYPE_PN      10
  659. #define RIPL_MCLASS_KEYBOARD_MODE_PN      11
  660. #define RIPL_MCLASS_CONFIG_FLAGS_PN       12
  661. #define RIPL_MCLASS_MOUSE_PN              16
  662. #define RIPL_MCLASS_NETWORK_ADAPTER_PN    17
  663. #define RIPL_MCLASS_VIDEO_TYPE_PN         18
  664. #define RIPL_MCLASS_VIDEO_MONITOR_PN      19
  665. #define RIPL_MCLASS_VIDEO_RESOLUTION_PN   20
  666. #define RIPL_MCLASS_COUNTRY_CODE_PN       21
  667. #define RIPL_MCLASS_COUNTRY_KEYBOARD_PN   22
  668. #define RIPL_MCLASS_CDROM_PN              23
  669. #define RIPL_MCLASS_MULTIMEDIA_PN         24
  670. #define RIPL_MCLASS_SCSI_PN               25
  671. #define RIPL_MCLASS_PCMCIA_PN             26
  672. #define RIPL_MCLASS_USER_CONFIG_SYS_PN    27
  673. #define RIPL_MCLASS_PRINTER_PN            28
  674.  
  675. /*
  676.  * Parmnum limits for each machine class level
  677.  */
  678. #define RMC1_LAST_ELEMENT                  2
  679. #define RMC3_LAST_ELEMENT                 28
  680.  
  681.  
  682. /*
  683.  * values for rmi2_OS2_config_flags
  684.  */
  685. #define OS2_SWAPPER_LOCAL          0x00000000L
  686. #define OS2_SWAPPER_SERVER         0x00000001L
  687. #define OS2_BUS_MCA                0x00000000L
  688. #define OS2_BUS_ISA                0x00000002L
  689. #define OS2_DISPLAY_IBMVGA32       0x00000000L
  690. #define OS2_DISPLAY_IBMXGA32       0x00000010L
  691. #define OS2_DISPLAY_IBM8514        0x00000020L
  692. #define OS2_DISPLAY_SVGA           0x00000040L
  693. #define OS2_DISPLAY_S3SVGA         0x00000080L
  694. #define OS2_DISPLAY_IBMEGA         0x00000100L
  695. #define OS2_DISPLAY_PS55_16        0x00008010L
  696. #define OS2_DISPLAY_PS55_256       0x00008020L
  697. #define OS2_DISPLAY_PS55_256P      0x00008040L
  698. #define OS2_KEYBOARD_101           0x00000000L
  699. #define OS2_KEYBOARD_DBCS_103      0x00001000L
  700. #define OS2_KEYBOARD_DBCS_106      0x00002000L
  701. #define OS2_KEYBOARD_DBCS_AX       0x00004000L
  702.  
  703. /*
  704.  * values for rmi3
  705. */
  706. #define RMI_MACHINE_STATUS_ENABLED  0x01
  707. #define RMI_MACHINE_STATUS_DISABLED 0x00
  708. #define RMI_LOCAL_SWAPPER_ENABLED   0x01
  709. #define RMI_LOCAL_SWAPPER_DISABLED  0x00
  710. #define RMI_IP_DHCP_DISABLED        0x00
  711. #define RMI_IP_DHCP_ENABLED         0x01
  712. #define RMI_IP_DDNS_DISABLED        0x00
  713. #define RMI_IP_DDNS_ENABLED         0x01
  714. #define RMI_NETBEUI                 0x01
  715. #define RMI_TCPBEUI                 0x02
  716. #define RMI_8022_BOOT               0x01
  717. #define RMI_DHCP_BOOT               0x02
  718. #define RMI_TCPBEUI_NODE_B          'B'       /* Brodcast node       */
  719. #define RMI_TCPBEUI_NODE_P          'P'       /* Point-to-point node */
  720. #define RMI_TCPBEUI_NODE_H          'H'       /* Hybrid node         */
  721.  
  722.  
  723. /*
  724.  * values for rmci3
  725. */
  726. #define RMC_BUS_MCA             0x00
  727. #define RMC_BUS_ISA             0x01    /* also used for EISA and PCI */
  728. #define RMC_DISKETTE_NO         0x00
  729. #define RMC_DISKETTE_YES        0x01
  730. #define RMC_SERIAL_NO           0x00
  731. #define RMC_SERIAL_YES          0x01
  732. #define RMC_PARALLEL_NO         0x00
  733. #define RMC_PARALLEL_YES        0x01
  734. #define RMC_HARDFILE_NONE       0x00
  735. #define RMC_HARDFILE_IDE        0x01
  736. #define RMC_HARDFILE_SCSI       0x02
  737. #define RMC_HARDFILE_IDE_SCSI   0x03
  738. #define RMC_KEYBOARD_TYPE_101   0x65
  739. #define RMC_KEYBOARD_TYPE_103   0x67
  740. #define RMC_KEYBOARD_TYPE_106   0x6A
  741. #define RMC_KEYBOARD_TYPE_AG    0x96
  742. #define RMC_KEYBOARD_MODE_2     0x02
  743. #define RMC_KEYBOARD_MODE_3     0x03
  744. #define RMC_8022_BOOT           0x01
  745. #define RMC_DHCP_BOOT           0x02
  746.  
  747. /*
  748.  * values for rmci3_PCMCIA_options
  749. */
  750. #define RMC_PCMCIA_MODEM        0x01
  751. #define RMC_PCMCIA_HARDFILE     0x02
  752. #define RMC_PCMCIA_FLASH        0x04
  753. /* remaining bits are reserved and must be set to 0 */
  754.  
  755. /*
  756.  * values for rmci3_config_flags
  757. */
  758. #define RMC_EDIT_ENABLED        0x00000001L
  759. #define RMC_ALT_CODEPAGE        0x00000002L
  760. /* remaining bits are reserved and must be set to 0 */
  761.  
  762. /*
  763.  * values for rlpnai_boot_methods
  764. */
  765. #define RMLP_8022_BOOT           0x01
  766. #define RMLP_DHCP_BOOT           0x02
  767. /* remaining bits are reserved and must be set to 0 */
  768.  
  769. /*
  770.  * values for rlpnai_laa_support_flag
  771. */
  772. #define RMLP_LAA_NOT_SUPPORTED   0x00
  773. #define RMLP_LAA_SUPPORTED       0x01
  774. /* remaining bits are reserved and must be set to 0 */
  775.  
  776. /*
  777.  * value for Net32RIPLMachineDelete() Reserved parameter
  778.  */
  779. #define RIPLMDEL_RESERVED       0x00000001
  780.  
  781. #ifdef ANY_32_BIT
  782. #pragma pack ()
  783. #endif
  784.  
  785. #endif
  786.