Used by the IDirectInputDevice8::Escape and IDirectInputEffect::Escape methods to pass hardware-specific data directly to the device driver.


typedef struct DIEFFESCAPE {
    DWORD dwSize;
    DWORD dwCommand;
    LPVOID lpvInBuffer;
    DWORD cbInBuffer;
    LPVOID lpvOutBuffer;
    DWORD cbOutBuffer;


  • dwSize
    Size of the structure in bytes. This member must be initialized before the structure is used.
  • dwCommand
    Driver-specific command number. Consult the driver documentation for a list of valid commands.
  • lpvInBuffer
    Buffer containing the data required to perform the operation.
  • cbInBuffer
    Size, in bytes, of the lpvInBuffer buffer.
  • lpvOutBuffer
    Buffer in which the operation's output data is returned.
  • cbOutBuffer
    On entry, the size in bytes of the lpvOutBuffer buffer. On exit, the number of bytes actually produced by the command.


Because each driver implements different escapes, it is the application's responsibility to ensure that it is talking to the correct driver by comparing the guidFFDriver member in the DIDEVICEINSTANCE structure against the value the application is expecting.