1 /* 2 * PROJECT: ReactOS SM Helper Library 3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) 4 * PURPOSE: ReactOS-specific SM Debug Utility Function: 5 * Querying subsystem information. 6 * COPYRIGHT: Copyright 2005 Emanuele Aliberti <ea@reactos.com> 7 * Copyright 2022 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org> 8 */ 9 10 #ifndef _SMROSDBG_H_ 11 #define _SMROSDBG_H_ 12 13 #pragma once 14 15 /* Note: this is not in NT */ 16 /* Ask SM to send back some data */ 17 #define SM_API_QUERY_INFORMATION SmpMaxApiNumber 18 19 #define SM_QRYINFO_MAX_SS_COUNT 8 20 #define SM_QRYINFO_MAX_ROOT_NODE 30 21 22 typedef enum { 23 SmBasicInformation = 0, 24 SmSubSystemInformation 25 } SM_INFORMATION_CLASS; 26 27 typedef struct _SM_BASIC_INFORMATION 28 { 29 USHORT SubSystemCount; 30 USHORT Unused; 31 struct 32 { 33 USHORT Id; 34 USHORT Flags; 35 ULONG ProcessId; 36 } SubSystem[SM_QRYINFO_MAX_SS_COUNT]; 37 } SM_BASIC_INFORMATION, *PSM_BASIC_INFORMATION; 38 39 typedef struct _SM_SUBSYSTEM_INFORMATION 40 { 41 USHORT SubSystemId; 42 USHORT Flags; 43 ULONG ProcessId; 44 WCHAR NameSpaceRootNode[SM_QRYINFO_MAX_ROOT_NODE]; 45 } SM_SUBSYSTEM_INFORMATION, *PSM_SUBSYSTEM_INFORMATION; 46 47 typedef struct _SM_QUERYINFO_MSG 48 { 49 SM_INFORMATION_CLASS SmInformationClass; 50 ULONG DataLength; 51 union 52 { 53 SM_BASIC_INFORMATION BasicInformation; 54 SM_SUBSYSTEM_INFORMATION SubSystemInformation; 55 }; 56 } SM_QUERYINFO_MSG, *PSM_QUERYINFO_MSG; 57 58 #endif // _SMROSDBG_H_ 59