Pointers

      _pvddepHead points to the head of a chain of VDDEP structres. One is allocated for each VDD the registers an either or both a VDD/VDD or VDD/OS2 entry point. There entry points are used respectively when either a VDHRequestVDD/VDHOpenVDD or DosRequestVDD/DosOpenVDD call is made.

      VDDEP field vddep_vddp points to the associated chain of VDDPROC structures. One is allocated for each VDD the registers entry points under the same name.

      _phdlVddHead points to the head of a chain of HDLVDD structures. One is allocated for each open VDD. The handle returned is the address of the associated HDLVDD.

      _ppddephead points to the head of a chain of PDDEP structures. One is allocated for each Physical Device Driver that registers an entry point for VDD/PDD communication. The entry point is registered using DevHlp_RegisterPDD, and accessed using VDHRequestPDD.

    Locations
      VDDEPs, VDDPROCs, HDLVDDs and PDDEPs are allocated dynamically from the kernel resident heap.
    VM Owner
      VDDEP owner id: vddep (0xffd2).

      VDDPROC owner id: vddproc (0xffdb).

      HDLVDD owner id: vddlr (0xffd7).

      PDDEP owner id: vddpddep (0xffda).

    Format

    VDDEP

    ┌────────────────┬──────┬──────┬────┬────────────────────────────────────────┐│Field Name      │Offset│Length│Type│Description                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │vddep_szVDD     │+0    │9     │A   │VDD Name                                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │vddep_vddp      │+9    │4     │D   │VDD entry points (pointer to VDDPROC)   │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │vddep_hmte      │+d    │4     │D   │VDD hmte for deregistering if VDD fails │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │vddep_pvddep    │+11   │4     │D   │Next VDD (pointer to next VDDEP)        │
    └────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
    

    VDDPROC

    ┌────────────────┬──────┬──────┬────┬────────────────────────────────────────┐
    │Field Name      │Offset│Length│Type│Description                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │vddproc_pfnvdd  │+0    │4     │D   │Entry point for VDD/VDD comm.           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │vddproc_pfnos2  │+4    │4     │D   │Entry point for OS2/VDD comm.           │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │pvddproc        │+4    │4     │D   │Entry points registered with same name  │
    └────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
    

    HDLVDD

    ┌────────────────┬──────┬──────┬────┬────────────────────────────────────────┐
    │Field Name      │Offset│Length│Type│Description                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │hdlvdd_pvddproc │+0    │4     │D   │VDD routine to be called (pointer to    │
    │                │      │      │    │VDDPROC)                                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │hdlvdd          │+4    │4     │D   │Pointer to next VDD handle;NULL if no   │
    │                │      │      │    │more                                    │
    └────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
    

    PDDEP

    ┌────────────────┬──────┬──────┬────┬────────────────────────────────────────┐
    │Field Name      │Offset│Length│Type│Description                             │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │pddep_szPDD     │+0    │9     │A   │PDD name                                │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │pddep_fpfn      │+9    │4     │D   │Entry point routine                     │
    ├────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
    │pddep_ppddep    │+d    │4     │D   │Next entry point (PDDEP)                │
    └────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
    


    [Back] [Next]