97 lines
2.6 KiB
C
97 lines
2.6 KiB
C
#ifndef _SUBPROCESSTAG_H
|
|
#define _SUBPROCESSTAG_H
|
|
|
|
// Subprocess tag information
|
|
|
|
typedef enum _TAG_INFO_LEVEL
|
|
{
|
|
eTagInfoLevelNameFromTag = 1, // TAG_INFO_NAME_FROM_TAG
|
|
eTagInfoLevelNamesReferencingModule, // TAG_INFO_NAMES_REFERENCING_MODULE
|
|
eTagInfoLevelNameTagMapping, // TAG_INFO_NAME_TAG_MAPPING
|
|
eTagInfoLevelMax
|
|
} TAG_INFO_LEVEL;
|
|
|
|
typedef enum _TAG_TYPE
|
|
{
|
|
eTagTypeService = 1,
|
|
eTagTypeMax
|
|
} TAG_TYPE;
|
|
|
|
typedef struct _TAG_INFO_NAME_FROM_TAG_IN_PARAMS
|
|
{
|
|
DWORD dwPid;
|
|
DWORD dwTag;
|
|
} TAG_INFO_NAME_FROM_TAG_IN_PARAMS, *PTAG_INFO_NAME_FROM_TAG_IN_PARAMS;
|
|
|
|
typedef struct _TAG_INFO_NAME_FROM_TAG_OUT_PARAMS
|
|
{
|
|
DWORD eTagType;
|
|
LPWSTR pszName;
|
|
} TAG_INFO_NAME_FROM_TAG_OUT_PARAMS, *PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS;
|
|
|
|
typedef struct _TAG_INFO_NAME_FROM_TAG
|
|
{
|
|
TAG_INFO_NAME_FROM_TAG_IN_PARAMS InParams;
|
|
TAG_INFO_NAME_FROM_TAG_OUT_PARAMS OutParams;
|
|
} TAG_INFO_NAME_FROM_TAG, *PTAG_INFO_NAME_FROM_TAG;
|
|
|
|
typedef struct _TAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS
|
|
{
|
|
DWORD dwPid;
|
|
LPWSTR pszModule;
|
|
} TAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS, *PTAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS;
|
|
|
|
typedef struct _TAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS
|
|
{
|
|
DWORD eTagType;
|
|
LPWSTR pmszNames;
|
|
} TAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS, *PTAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS;
|
|
|
|
typedef struct _TAG_INFO_NAMES_REFERENCING_MODULE
|
|
{
|
|
TAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS InParams;
|
|
TAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS OutParams;
|
|
} TAG_INFO_NAMES_REFERENCING_MODULE, *PTAG_INFO_NAMES_REFERENCING_MODULE;
|
|
|
|
typedef struct _TAG_INFO_NAME_TAG_MAPPING_IN_PARAMS
|
|
{
|
|
DWORD dwPid;
|
|
} TAG_INFO_NAME_TAG_MAPPING_IN_PARAMS, *PTAG_INFO_NAME_TAG_MAPPING_IN_PARAMS;
|
|
|
|
typedef struct _TAG_INFO_NAME_TAG_MAPPING_ELEMENT
|
|
{
|
|
DWORD eTagType;
|
|
DWORD dwTag;
|
|
LPWSTR pszName;
|
|
LPWSTR pszGroupName;
|
|
} TAG_INFO_NAME_TAG_MAPPING_ELEMENT, *PTAG_INFO_NAME_TAG_MAPPING_ELEMENT;
|
|
|
|
typedef struct _TAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS
|
|
{
|
|
DWORD cElements;
|
|
PTAG_INFO_NAME_TAG_MAPPING_ELEMENT pNameTagMappingElements;
|
|
} TAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS, *PTAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS;
|
|
|
|
typedef struct _TAG_INFO_NAME_TAG_MAPPING
|
|
{
|
|
TAG_INFO_NAME_TAG_MAPPING_IN_PARAMS InParams;
|
|
PTAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS pOutParams;
|
|
} TAG_INFO_NAME_TAG_MAPPING, *PTAG_INFO_NAME_TAG_MAPPING;
|
|
|
|
_Must_inspect_result_
|
|
DWORD
|
|
WINAPI
|
|
I_QueryTagInformation(
|
|
_In_opt_ LPCWSTR pszMachineName,
|
|
_In_ TAG_INFO_LEVEL eInfoLevel,
|
|
_Inout_ PVOID pTagInfo
|
|
);
|
|
|
|
typedef DWORD (WINAPI *PQUERY_TAG_INFORMATION)(
|
|
_In_opt_ LPCWSTR pszMachineName,
|
|
_In_ TAG_INFO_LEVEL eInfoLevel,
|
|
_Inout_ PVOID pTagInfo
|
|
);
|
|
|
|
#endif
|