home *** CD-ROM | disk | FTP | other *** search
- [ 9. Kernel Addressing Functions]
- EMBEDDED DOS ADDRESSABILITY FUNCTIONS
- ════════════════════════════════════════════════════════════════════════
- The kernel provides functions through its interface that allow access to
- the various components of the DOS kernel and executive. This section
- describes those functions.
-
- 1. GetFsHelpAddress
-
- Installable device drivers or even application programs may
- obtain the Embedded DOS file system helper API function address
- by calling this kernel function. This allows non-system code to
- interact with the file system helpers to register file system
- support and interact with the base block drivers, SDTEs, and
- SHTEs in the system that are associated with drives supported by
- those drivers.
-
- The file system helper address is returned as a 16:16 address in
- the (DX:AX) register pair, and is typically stored in the calling
- FSD's header. This storing process is not provided by this
- function.
-
- Upon return, the macro instruction call clears the carry flag if
- the operation was successful, and sets it if the operation was
- not performed.
-
- Assembly Language Format:
-
- mov dl, SYS_GET_FSHELP_ADDRESS
- int 2dh ; (DX:AX) = FWA, FsHelp dispatcher.
-
- Macro Instruction Format:
-
- none.
-
- Portable Request Format:
-
- STATUS GetFsHelpAddress(
- OUT PVOID * FsHelpRtnPtr
- );
-
- Parameters:
-
- FsHelpRtnPtr - Specifies a pointer to a 32-bit storage
- location where the 32-bit pointer to the FSHELP
- dispatcher will be returned by this function. The
- caller can then use this value as a function pointer to
- indirectly call to the FSHELP dispatcher.
-
- 2. GetIoHelpAddress
-
- Installable device drivers, file system drivers, and application
- programs may submit requests directly to the Embedded DOS I/O
- helper API, thereby bypassing the DOS process handling associated
- with the "current PSP". The address of the I/O helper API
- function dispatcher is returned by this function.
-
- The I/O system helper address is returned as a 16:16 address in
- the (DX:AX) register pair, and may be stored anywhere by the
- calling program.
-
- Upon return, the macro instruction call clears the carry flag if
- the operation was successful, and sets it if the operation was
- not performed.
-
- Assembly Language Format:
-
- mov dl, SYS_GET_IOHELP_ADDRESS
- int 2dh ; (DX:AX) = FWA, IoHelp dispatcher.
-
- Macro Instruction Format:
-
- none.
-
- Portable Request Format:
-
- STATUS GetIoHelpAddress(
- OUT PVOID * IoHelpRtnPtr
- );
-
- Parameters:
-
- IoHelpRtnPtr - Specifies a pointer to a 32-bit storage
- location where the 32-bit pointer to the IOHELP
- dispatcher will be returned by this function. The
- caller can then use this value as a function pointer to
- indirectly call to the IOHELP dispatcher.
-
- 3. GetDosDataDs
-
- Any system component may retrieve the DOSDATA segment value with
- the GetDosDataDs kernel function. This allows quick access to
- central data structures and pool objects.
-
- In the assembly language and macro instruction forms, the DS
- register is initialized with the DOSDATA segment value.
-
- Assembly Language Format:
-
- mov dl, SYS_USEDOSDATA_DS
- int 2dh ; (DS) = DOSDATA segment.
-
- Macro Instruction Format:
-
- USEDOSDATA ds
-
- Portable Request Format:
-
- none.
-
- Parameters:
-
- none.