]> git.proxmox.com Git - rustc.git/blob - vendor/ntapi/src/subprocesstag.rs
New upstream version 1.63.0+dfsg1
[rustc.git] / vendor / ntapi / src / subprocesstag.rs
1 use winapi::shared::minwindef::DWORD;
2 use winapi::shared::ntdef::{LPCWSTR, LPWSTR, PVOID};
3 ENUM!{enum TAG_INFO_LEVEL {
4 eTagInfoLevelNameFromTag = 1,
5 eTagInfoLevelNamesReferencingModule = 2,
6 eTagInfoLevelNameTagMapping = 3,
7 eTagInfoLevelMax = 4,
8 }}
9 ENUM!{enum TAG_TYPE {
10 eTagTypeService = 1,
11 eTagTypeMax = 2,
12 }}
13 STRUCT!{struct TAG_INFO_NAME_FROM_TAG_IN_PARAMS {
14 dwPid: DWORD,
15 dwTag: DWORD,
16 }}
17 pub type PTAG_INFO_NAME_FROM_TAG_IN_PARAMS = *mut TAG_INFO_NAME_FROM_TAG_IN_PARAMS;
18 STRUCT!{struct TAG_INFO_NAME_FROM_TAG_OUT_PARAMS {
19 eTagType: DWORD,
20 pszName: LPWSTR,
21 }}
22 pub type PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS = *mut TAG_INFO_NAME_FROM_TAG_OUT_PARAMS;
23 STRUCT!{struct TAG_INFO_NAME_FROM_TAG {
24 InParams: TAG_INFO_NAME_FROM_TAG_IN_PARAMS,
25 OutParams: TAG_INFO_NAME_FROM_TAG_OUT_PARAMS,
26 }}
27 pub type PTAG_INFO_NAME_FROM_TAG = *mut TAG_INFO_NAME_FROM_TAG;
28 STRUCT!{struct TAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS {
29 dwPid: DWORD,
30 pszModule: LPWSTR,
31 }}
32 pub type PTAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS =
33 *mut TAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS;
34 STRUCT!{struct TAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS {
35 eTagType: DWORD,
36 pmszNames: LPWSTR,
37 }}
38 pub type PTAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS =
39 *mut TAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS;
40 STRUCT!{struct TAG_INFO_NAMES_REFERENCING_MODULE {
41 InParams: TAG_INFO_NAMES_REFERENCING_MODULE_IN_PARAMS,
42 OutParams: TAG_INFO_NAMES_REFERENCING_MODULE_OUT_PARAMS,
43 }}
44 pub type PTAG_INFO_NAMES_REFERENCING_MODULE = *mut TAG_INFO_NAMES_REFERENCING_MODULE;
45 STRUCT!{struct TAG_INFO_NAME_TAG_MAPPING_IN_PARAMS {
46 dwPid: DWORD,
47 }}
48 pub type PTAG_INFO_NAME_TAG_MAPPING_IN_PARAMS = *mut TAG_INFO_NAME_TAG_MAPPING_IN_PARAMS;
49 STRUCT!{struct TAG_INFO_NAME_TAG_MAPPING_ELEMENT {
50 eTagType: DWORD,
51 dwTag: DWORD,
52 pszName: LPWSTR,
53 pszGroupName: LPWSTR,
54 }}
55 pub type PTAG_INFO_NAME_TAG_MAPPING_ELEMENT = *mut TAG_INFO_NAME_TAG_MAPPING_ELEMENT;
56 STRUCT!{struct TAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS {
57 cElements: DWORD,
58 pNameTagMappingElements: PTAG_INFO_NAME_TAG_MAPPING_ELEMENT,
59 }}
60 pub type PTAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS = *mut TAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS;
61 STRUCT!{struct TAG_INFO_NAME_TAG_MAPPING {
62 InParams: TAG_INFO_NAME_TAG_MAPPING_IN_PARAMS,
63 pOutParams: PTAG_INFO_NAME_TAG_MAPPING_OUT_PARAMS,
64 }}
65 pub type PTAG_INFO_NAME_TAG_MAPPING = *mut TAG_INFO_NAME_TAG_MAPPING;
66 EXTERN!{extern "system" {
67 fn I_QueryTagInformation(
68 pszMachineName: LPCWSTR,
69 eInfoLevel: TAG_INFO_LEVEL,
70 pTagInfo: PVOID,
71 ) -> DWORD;
72 }}
73 FN!{stdcall PQUERY_TAG_INFORMATION(
74 pszMachineName: LPCWSTR,
75 eInfoLevel: TAG_INFO_LEVEL,
76 pTagInfo: PVOID,
77 ) -> DWORD}