Share via


VJREGDRVINFO structure

The VJREGDRVINFO structure passes the new style registration information to VJoyD. All of the members of this structure must be filled in, although the version members can be set to zero for unknown, and the last four pointers can be set selectively to none.

Syntax

typedef struct {
  DWORD          dwSize;
  DWORD          dwFunction;
  DWORD          dwFlags;
  LPSTR          lpszOEMCallout;
  DWORD          dwFirmwareRevision;
  DWORD          dwHardwareRevision;
  DWORD          dwDriverVersion;
  LPVJDEVICEDESC lpDeviceDesc;
  LPVJPOLLREG    lpPollReg;
  LPVJFORCEREG   lpForceReg;
  LPVJGPEMULREG  lpGPEmulReg;
} VJREGDRVINFO, *LPVJREGDRVINFO;

Members

  • dwSize
    Specifies the size, in bytes, of the structure. This member must be initialized before the structure is used.

  • dwFunction
    Indicates the type of registration to be performed. This value can be one of the following:

    • VJRT_CHANGE
      Indicates that anything can change except the driver and initialization parameters. Reserved for future use.

    • VJRT_LOADED
      Indicates that the driver has been loaded.

    • VJRT_PLUG
      Indicates a new instance of a device. Reserved for future use.

    • VJRT_UNPLUG
      Indicates to VJoyD that a registered device is no longer available. Reserved for future use.

  • dwFlags
    Flags associated with this registration. One or more of the following:

    • VJDF_UNUSED
      Indicates the driver is not in use.

    The following flags are interface attributes (that is, the result is a combination of OEM flags and VJoyD):

    • VJDF_UNIT_ID
      Indicates the unit ID is valid.

    • VJDF_ISHID
      Indicates that this is an HID device, so refuse polls.

    • VJDF_SENDSNOTIFY
      Indicates the driver calls VJOYD_DeviceUpdateNotify_Service.

    • VJDF_NEWIF
      Indicates that use new interface may be changed on registration (is set by VJoyD).

    • VJDF_ATTR_MASK
      Indicates a combination of VJDF_NEWIF, VJDF_UNIT_ID, and VJDF_ISHID.

    • VJDF_UNIT_ID
      Indicates the unit ID is valid.

    • VJDF_ISHID
      Indicates that this is an HID device, so refuse polls.

    • VJDF_SENDSNOTIFY
      Indicates the driver calls VJOYD_DeviceUpdateNotify_Service.

    • VJDF_NEWIF
      Indicates that use new interface may be changed on registration (is set by VJoyD).

    • VJDF_ATTR_MASK
      Indicates a combination of VJDF_NEWIF, VJDF_UNIT_ID, and VJDF_ISHID.

    The following flags are interface requirements:

    • VJDF_AUTOLOAD
      Indicates that VxD must not be loaded by VJoyD.

    • VJDF_HOTPLUG
      Uses PLUG/UNPLUG.

    • VJDF_IF_REQ_MASK
      Indicates a combination of VJDF_AUTOLOAD and VJDF_HOTPLUG.

    • VJDF_AUTOLOAD
      Indicates that VxD must not be loaded by VJoyD.

    • VJDF_HOTPLUG
      Uses PLUG/UNPLUG.

    • VJDF_IF_REQ_MASK
      Indicates a combination of VJDF_AUTOLOAD and VJDF_HOTPLUG.

    The following are device node requirement flags:

    • VJDF_NODEVNODE
      Indicates that the device did not get its resources via CFG_MGR.

    • VJDF_ISANALOGPORTDRIVER
      Indicates that the device plugs into a standard game port.

    • VJDF_NOCHAINING
      Indicates a limit of one device node per device.

    • VJDF_DN_REQ_MASK
      Indicates a combination of the attributes signified by the VJDF_NODEVNODE, VJDF_ISANALOGPORTDRIVER, and VJDF_NOCHAINING flags.

    • VJDF_NODEVNODE
      Indicates that the device did not get its resources via CFG_MGR.

    • VJDF_ISANALOGPORTDRIVER
      Indicates that the device plugs into a standard game port.

    • VJDF_NOCHAINING
      Indicates a limit of one device node per device.

    • VJDF_DN_REQ_MASK
      Indicates a combination of the attributes signified by the VJDF_NODEVNODE, VJDF_ISANALOGPORTDRIVER, and VJDF_NOCHAINING flags.

  • lpszOEMCallout
    Points to a string, such as "Msanalog.vxd", that identifies the driver associated with this registration.

  • dwFirmwareRevision
    Specifies the firmware revision of the device. If the revision is unknown, a value of zero should be used.

  • dwHardwareRevision
    Specifies the hardware revision of the device. If the revision is unknown, a value of zero should be used.

  • dwDriverVersion
    Specifies the version number of the device driver. If the revision is unknown, a value of zero should be used.

  • lpDeviceDesc
    Points to a VJDEVICEDESC structure that describes the configuration properties of the device. This allows drivers to supply the description of the device rather than use the registry for this purpose. If no description is available, this member should be set to NULL.

  • lpPollReg
    Points to a VJPOLLREG structure that contains the most common driver callbacks. In the very rare case that a driver does need to register any of these callbacks, this member should be set to NULL.

  • lpForceReg
    Points to a VJFORCEREG structure that contains all of the force feedback specific callbacks. If the ring 0 (kernel mode) driver does not support force feedback, this member should be set to NULL.

  • lpGPEmulReg
    Reserved. This member must be set to NULL.

 

 

Send comments about this topic to Microsoft