@@ -19,18 +19,39 @@ void UninstallKernelMessagesDriver();
1919// this is the dbgv.sys interface
2020#define FILE_DEVICE_DBGV 0x8305
2121
22- #define DBGV_CAPTURE_KERNEL CTL_CODE (FILE_DEVICE_DBGV, DWORD(0 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x00 //enable capture kernel
23- #define DBGV_UNCAPTURE_KERNEL CTL_CODE (FILE_DEVICE_DBGV, DWORD(1 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x04 //
24- #define DBGV_CLEAR_DISPLAY CTL_CODE (FILE_DEVICE_DBGV, DWORD(2 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x08 //clear display
25- #define DBGV_READ_LOG CTL_CODE (FILE_DEVICE_DBGV, DWORD(3 ), METHOD_NEITHER, FILE_ANY_ACCESS) // 0x0f //read kernel log
26- #define DBGV_SET_PASSTHROUGH CTL_CODE (FILE_DEVICE_DBGV, DWORD(4 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x10 //enable passthrough
27- #define DBGV_UNSET_PASSTHROUGH CTL_CODE (FILE_DEVICE_DBGV, DWORD(5 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x14 //
28- #define DBGV_IS_DRIVER_AVAILABLE CTL_CODE (FILE_DEVICE_DBGV, DWORD(8 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x20 //test driver is valid or functional
29- #define DBGV_GET_DRIVER_VERSION CTL_CODE (FILE_DEVICE_DBGV, DWORD(9 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x24 //driver version, 4.70 = 0x800
30- #define DBGV_SET_CARRIAGE_RETURN CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x0d ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x34 //force carriage return
31- #define DBGV_UNSET_CARRIAGE_RETURN CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x0e ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x38 //
32- #define DBGV_ENABLE_FILTER_STATE CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x0f ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x3C //enable log verbose
33- #define DBGV_SET_FILTER_STATE CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x10 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x40 //reset log verbose
22+ #define DBGV_CAPTURE_KERNEL CTL_CODE (FILE_DEVICE_DBGV, DWORD(0 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x00 //enable capture kernel
23+ #define DBGV_UNCAPTURE_KERNEL CTL_CODE (FILE_DEVICE_DBGV, DWORD(1 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x04 //
24+ #define DBGV_CLEAR_DISPLAY CTL_CODE (FILE_DEVICE_DBGV, DWORD(2 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x08 //clear display
25+ #define DBGV_READ_LOG CTL_CODE (FILE_DEVICE_DBGV, DWORD(3 ), METHOD_NEITHER, FILE_ANY_ACCESS) // 0x0f //read kernel log
26+ #define DBGV_SET_PASSTHROUGH CTL_CODE (FILE_DEVICE_DBGV, DWORD(4 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x10 //enable passthrough
27+ #define DBGV_UNSET_PASSTHROUGH CTL_CODE (FILE_DEVICE_DBGV, DWORD(5 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x14 //
28+ #define DBGV_IS_DRIVER_AVAILABLE CTL_CODE (FILE_DEVICE_DBGV, DWORD(8 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x20 //test driver is valid or functional
29+ #define DBGV_GET_DRIVER_VERSION CTL_CODE (FILE_DEVICE_DBGV, DWORD(9 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x24 //driver version, 4.70 = 0x800
30+ #define DBGV_SET_CARRIAGE_RETURN CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x0d ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x34 //force carriage return
31+ #define DBGV_UNSET_CARRIAGE_RETURN CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x0e ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x38 //
32+ #define DBGV_SET_VERBOSE_MESSAGES CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x0f ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x3C //enable log verbose
33+ #define DBGV_UNSET_VERBOSE_MESSAGES CTL_CODE (FILE_DEVICE_DBGV, DWORD(0x10 ), METHOD_BUFFERED, FILE_ANY_ACCESS) // 0x40 //reset log verbose
34+
35+ inline std::string feature_to_string(DWORD value)
36+ {
37+ switch (value)
38+ {
39+ case DBGV_CAPTURE_KERNEL: return " DBGV_CAPTURE_KERNEL" ;
40+ case DBGV_UNCAPTURE_KERNEL: return " DBGV_UNCAPTURE_KERNEL" ;
41+ case DBGV_CLEAR_DISPLAY: return " DBGV_CLEAR_DISPLAY" ;
42+ case DBGV_READ_LOG: return " DBGV_READ_LOG" ;
43+ case DBGV_SET_PASSTHROUGH: return " DBGV_SET_PASSTHROUGH" ;
44+ case DBGV_UNSET_PASSTHROUGH: return " DBGV_UNSET_PASSTHROUGH" ;
45+ case DBGV_IS_DRIVER_AVAILABLE: return " DBGV_IS_DRIVER_AVAILABLE" ;
46+ case DBGV_GET_DRIVER_VERSION: return " DBGV_GET_DRIVER_VERSION" ;
47+ case DBGV_SET_CARRIAGE_RETURN: return " DBGV_SET_CARRIAGE_RETURN" ;
48+ case DBGV_UNSET_CARRIAGE_RETURN: return " DBGV_UNSET_CARRIAGE_RETURN" ;
49+ case DBGV_SET_VERBOSE_MESSAGES: return " DBGV_SET_VERBOSE_MESSAGES" ;
50+ case DBGV_UNSET_VERBOSE_MESSAGES: return " DBGV_UNSET_VERBOSE_MESSAGES" ;
51+ default : break ;
52+ }
53+ return std::to_string (value);
54+ }
3455
3556// suppress the non-standard use of zero-sized array in struct/union
3657#pragma warning(disable:4200)
0 commit comments