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);
Members of the BlackIceDEVMODE structure