Introducing the BlackIceDEVMODE

The BlackIceDEVMODE data structure contains the Windows DEVMODE and additional members:

On Windows 11/10/8/7, the application that uses this structure should set the structure member alignment to 1 in the project settings and the following value should be defined in the project: UNICODE, _UNICODE, _WIN32_WINNT=0x0400. Without this, the size of the BlackIceDEVMODE structure will not be correct and some structure members will be shifted.

 

Also, on Windows 11/10/8/7, the string members of the BlackIceDEVMODE structure are UNICODE strings. When the application reads or writes these members it is very important to use UNICODE strings.

Example:

 

The InterfaceName member of the devmode can be accessed through the DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode) and DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR InterfaceName);

 

TCHAR InterfaceName[MAX_PATH]:

      A TCHAR string type member.

The InterfaceName member stores the name of the messaging interface. For Windows 8/7/Vista/XP is the name of the Windows Message broadcasted by the driver. 

 

Access functions:

LPCTSTR     DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode);

void        DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR InterfaceName);

 

 

BlackIceDEVMODE structure

Members of the BlackIceDEVMODE structure