Annotation of ntddk/inc/isvbop.h, revision 1.1.1.1

1.1       root        1: /*++ BUILD Version: 0001
                      2: 
                      3: Copyright (c) 1990  Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     ISVBOP.H
                      8: 
                      9: Abstract:
                     10: 
                     11:     This is the header file supporting third party bops.
                     12:     isvbop.inc is the inc file for this h file.
                     13: 
                     14: Note:
                     15:     Following include file uses 'DB' to define assembly macros. Some
                     16:     assemblers use 'emit' instead. If you are using such a compiler,
                     17:     you will have to change db's to emit's.
                     18: 
                     19: --*/
                     20: 
                     21: 
                     22: #define BOP_3RDPARTY 0x58
                     23: #define BOP_UNSIMULATE 0xFE
                     24: 
                     25: /* XLATOFF */
                     26: 
                     27: /** RegisterModule - This Bop call is made from the 16 bit module
                     28:  *                  to register a third party DLL with the bop
                     29:  *                  manager. This call returns a handle to the
                     30:  *                  16bit caller which is to be used later to
                     31:  *                  dispatch a call to the DLL.
                     32:  *
                     33:  *  INPUT:
                     34:  *     Client DS:SI - asciiz string of DLL name.
                     35:  *      Client ES:DI - asciiz string of Init Routine in the DLL. (Optional)
                     36:  *     Client DS:BX - asciiz string to Dispatch routine in the DLL.
                     37:  *
                     38:  *  OUTPUT:
                     39:  *     SUCCESS:
                     40:  *         Client Carry Clear
                     41:  *         Client AX = Handle (non Zero)
                     42:  *     FAILURE:
                     43:  *         Client Carry Set
                     44:  *         Client AX = Error Code
                     45:  *                 AX = 1 - DLL not found
                     46:  *                 AX = 2 - Dispacth routine not found.
                     47:  *                 AX = 3 - Init Routine Not Found
                     48:  *                 AX = 4 - Insufficient Memory
                     49:  *
                     50:  *  NOTES:
                     51:  *     RegisterModule results in loading the DLL (specified in DS:SI).
                     52:  *      Its Init routine (specified in ES:DI) is called. Its Dispatch
                     53:  *     routine (specified in DS:BX) is stored away and all the calls
                     54:  *      made from DispatchCall are dispacthed to this routine.
                     55:  *      If ES and DI both are null than the caller did'nt supply the init
                     56:  *      routine.
                     57:  */
                     58: 
                     59: #define RegisterModule() _asm db 0xC4, 0xC4, BOP_3RDPARTY, 0x0
                     60: 
                     61: /** UnRegisterModule - This Bop call is made from the 16 bit module
                     62:  *                    to unregister a third party DLL with the bop
                     63:  *                    manager.
                     64:  *
                     65:  *  INPUT:
                     66:  *     Client AX - Handle returned by RegisterModule Call.
                     67:  *
                     68:  *  OUTPUT:
                     69:  *     None (VDM Is terminated with a debug message if Handle is invalid)
                     70:  *
                     71:  *  NOTES:
                     72:  *     Use it if initialization of 16bit app fails after registering the
                     73:  *     Bop.
                     74:  */
                     75: 
                     76: #define UnRegisterModule() _asm db 0xC4, 0xC4, BOP_3RDPARTY, 0x1
                     77: 
                     78: /** DispacthCall - This Bop call is made from the 16 bit module
                     79:  *                to pass a request to its DLL.
                     80:  *
                     81:  *  INPUT:
                     82:  *     Client AX - Handle returned by RegisterModule Call.
                     83:  *
                     84:  *  OUTPUT:
                     85:  *     None (DLL should set the proper output registers etc.)
                     86:  *     (VDM Is terminated with a debug message if Handle is invalid)
                     87:  *
                     88:  *  NOTES:
                     89:  *     Use it to pass a request to 32bit DLL. The request index and the
                     90:  *     parameters are passed in different registers. These register settings
                     91:  *     are private to the 16bit module and its associated VDD. Bop manager
                     92:  *     does'nt know anything about these registers.
                     93:  */
                     94: #define DispatchCall()  _asm db 0xC4, 0xC4, BOP_3RDPARTY, 0x2
                     95: 
                     96: /*** VDDUnSimulate16
                     97:  *
                     98:  *   This service causes the simulation of intel instructions to stop and
                     99:  *   control to return to VDD.
                    100:  *
                    101:  *   INPUT
                    102:  *      None
                    103:  *
                    104:  *   OUTPUT
                    105:  *      None
                    106:  *
                    107:  *   NOTES
                    108:  *      This service is a macro intended for 16bit stub-drivers. At the
                    109:  *      end of worker routine stub-driver should use it.
                    110:  */
                    111: 
                    112: #define VDDUnSimulate16() _asm db 0xC4, 0xC4, BOP_UNSIMULATE
                    113: 
                    114: /* XLATON */
                    115: 
                    116: 
                    117: /* ASM
                    118: RegisterModule macro
                    119:     db 0C4h, 0C4h, BOP_3RDPARTY, 0
                    120:         endm
                    121: 
                    122: UnRegisterModule macro
                    123:     db 0C4h, 0C4h, BOP_3RDPARTY, 1
                    124:        endm
                    125: 
                    126: DispatchCall macro
                    127:     db 0C4h, 0C4h, BOP_3RDPARTY, 2
                    128:        endm
                    129: 
                    130: VDDtUnSimulate16 macro
                    131:     db 0C4h, 0C4h, BOP_UNSIMULATE
                    132:        endm
                    133: 
                    134:  */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.