Pointers

      DPB field dpb_driver_addr points to the associated Physical Device Driver Header.

      SFT field sf_devptr points to the associated Physical Device Driver Header.

    Locations
      Built at the beginning of the first module segment of the device driver.
    VM Owner
      dd1 (0xff50) to dd16 (0xff5f).

    Format

    ┌────────────────┬──────┬──────┬────┬────────────────────────────────────────┐│Field Name      │Offset│Length│Type│Description                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevNext        │+0    │4     │D   │Pointer to next device header           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevAtt         │+4    │2     │W   │Attributes of the device                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevStrat       │+6    │2     │W   │Strategy entry point                    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevInt         │+8    │2     │W   │IDC entry point                         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevName        │+a    │8     │A   │name (block uses only 1st byte)         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevProtCS      │+12   │2     │W   │Protect-mode CS of strategy entry pt    │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevProtDS      │+14   │2     │W   │Protect-mode DS                         │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevRealCS      │+16   │2     │W   │Real-mode CS of strategy entry pt       │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevRealDS      │+18   │2     │W   │Real-mode DS                            │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │SDevCaps        │+20   │4     │D   │bit map of DD /MM restrictions          │
    └────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
    

    SDevCaps flag definitions

    ┌────────────────┬────────┬───────────────────────────────────┐
    │Name            │Bit Mask│Description                        │
    ├────────────────┼────────┼───────────────────────────────────┤
    │DEV_IOCTL2      │0x0001  │DD can handle dev ioctl2           │
    ├────────────────┼────────┼───────────────────────────────────┤
    │DEV_16MB        │0x0002  │DD can handle phys.addresses >16MB │
    ├────────────────┼────────┼───────────────────────────────────┤
    │DEV_PARALLEL    │0x0004  │DD handles parallel port           │
    ├────────────────┼────────┼───────────────────────────────────┤
    │DEV_ADAPTER_DD  │0x0008  │DD supports Adapter Dev Driver Intf│
    ├────────────────┼────────┼───────────────────────────────────┤
    │DEV_INITCOMPLETE│0x0010  │DD can handle CMDInitComplete      │
    └────────────────┴────────┴───────────────────────────────────┘
    

    Device Driver Type defininitions

    ┌────────────┬────────┬────────────────────────────────────────┐
    │Name        │Bit Mask│Description                             │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_CIN     │0x0001  │0 2 5 Device is console in              │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_COUT    │0x0002  │1 2 5 Device is console out             │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_NULL    │0x0004  │2 2 5 Device is the Null device         │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_CLOCK   │0x0008  │3 2 5 Device is the clock device        │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_SPEC    │0x0010  │4 2 Devices can support INT 29h         │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_ADD_ON  │0x0020  │5 Device is add-on driver (BWS)         │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_GIOCTL  │0x0040  │6 3 Device supports generic ioctl       │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_FCNLEV  │0x0380  │9-7 5 Device function level             │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_30      │0x0800  │11 2 5 Accepts Open/Close/Removable     │
    │            │        │Media                                   │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_SHARE   │0x1000  │12 Device wants FS sharing checking     │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_NON_IBM │0x2000  │13 2 5 Device is a non IBM device.      │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_IOCTL   │0x4000  │14 2 Device accepts IOCTL request       │
    ├────────────┼────────┼────────────────────────────────────────┤
    │DEV_CHAR_DEV│0x8000  │15 2 5 Device is a character device     │
    └────────────┴────────┴────────────────────────────────────────┘
    

    Level definitions for devices

    ┌────────┬────────┬────────────────────────────────────────┐
    │Name    │Bit Mask│Description                             │
    ├────────┼────────┼────────────────────────────────────────┤
    │DEVLEV_0│0x0000  │DOS 3.0 and before                      │
    ├────────┼────────┼────────────────────────────────────────┤
    │DEVLEV_1│0x0080  │DOS 5.0                                 │
    ├────────┼────────┼────────────────────────────────────────┤
    │DEVLEV_2│0x0100  │OS/2 v1.2 (new gen ioctl iface)         │
    ├────────┼────────┼────────────────────────────────────────┤
    │DEVLEV_3│0x0180  │OS/2 v2.0 (support of memory above 16MB)│
    └────────┴────────┴────────────────────────────────────────┘
    


    [Back] [Next]