Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Remote Initial Program Load Enabler/Disabler for OS/2

IP.com Disclosure Number: IPCOM000112892D
Original Publication Date: 1994-Jun-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 6 page(s) / 118K

Publishing Venue

IBM

Related People

Cheung, ST: AUTHOR [+3]

Abstract

Disclosed is a method for using the Application Programming Interface (API) of OS/2* to enable or disable the Remote Initial Program Load feature from any OS/2 command prompt. Without this feature, the Remote Initial Program Load Enabler/Disabler (RIPLED) only executes under DOS, so that an error occurs when a user attempts to execute RIPLED in an OS/2 DOS box.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 31% of the total text.

Remote Initial Program Load Enabler/Disabler for OS/2

      Disclosed is a method for using the Application Programming
Interface (API) of OS/2* to enable or disable the Remote Initial
Program Load feature from any OS/2 command prompt.  Without this
feature, the Remote Initial Program Load Enabler/Disabler (RIPLED)
only executes under DOS, so that an error occurs when a user attempts
to execute RIPLED in an OS/2 DOS box.

      Specifically, without this feature, DOS must first be booted to
enable or disable RIPL for a workstation.  When the user attempts to
perform DOS RIPLED from an OS/2 DOS box, the error message "SRP006:
An absolute disk write has failed," is returned.  This error is
caused by protection mechanisms within OS/2, which do not allow the
user to write directly to the hard disk without the aid of the
operating system.  In this case, an attempt is made to change the
Master Boot Record with an absolute disk write.  Thus, the operating
system can be prevented from booting by means of the hard disk.

      This problem is solved through the use of the OS/2 RIPLED
program operating as shown in the Figure.  The definition and
declaration statements of this program are as follows:

      typedefunsigned long Ulong;
         typedefvoid *Pvoid
         typedefUlong *PUlong

        #define       LSECTOR_SIZE       512

        #define       CAT_DISK           0x09

        #define       HEAD               0

        #define       CYLN               0

        #define       FIRST_SECT         0

        #define       TRACKLAYOUT_ONE    1

        #define       INFO_GETIOCTLHANDLE2

        #define       READ_SECT          0x64

        #define       WRITE_SECT         0x44

        char drive_string [3];

        Ulong diskHandle;

        PUlong targetHandle;

        /*  Track Layout Table has the following format:

    Field                            Length
       Sector Number for Sector 1       WORD
       Sector Size for Sector 1         WORD
       Sector Number for Sector 2       WORD
       Sector Size for Sector 2         WORD
       Sector Number for Sector 3       WORD
       Sector Size for Sector 3         WORD
                .
                .
       Sector Number for Sector n       WORD
       Sector Size for Sector n         WORD
                                                */

        struct a_track_table  {
                 unsigned short SecNum;
                 unsigned short SecSiz;
                 };

   ...