ReactOS  0.4.15-dev-5496-g599ba9c
icif.h
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS Kernel
3  * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4  * PURPOSE: Internal header for information classes info interface
5  * COPYRIGHT: Copyright 2020-2022 George BiČ™oc <george.bisoc@reactos.org>
6  */
7 
8 #pragma once
9 
10 /*
11  * Implement generic information class probing code in a
12  * separate header within the NT kernel header internals.
13  * This makes it accessible to other sources by including
14  * the header.
15  */
16 
17 #define ICIF_NONE 0x0
18 #define ICIF_QUERY 0x1
19 #define ICIF_SET 0x2
20 #define ICIF_QUERY_SIZE_VARIABLE 0x4
21 #define ICIF_SET_SIZE_VARIABLE 0x8
22 #define ICIF_SIZE_VARIABLE (ICIF_QUERY_SIZE_VARIABLE | ICIF_SET_SIZE_VARIABLE)
23 
24 #define ICIF_PROBE_READ_WRITE 0x0
25 #define ICIF_PROBE_READ 0x1
26 #define ICIF_FORCE_RETURN_LENGTH_PROBE 0x2
27 
29 {
36 
37 #define IQS_SAME(Type, Alignment, Flags) \
38  { sizeof(Type), sizeof(Alignment), sizeof(Type), sizeof(Alignment), Flags }
39 
40 #define IQS(TypeQuery, AlignmentQuery, TypeSet, AlignmentSet, Flags) \
41  { sizeof(TypeQuery), sizeof(AlignmentQuery), sizeof(TypeSet), sizeof(AlignmentSet), Flags }
42 
43 #define IQS_NO_TYPE_LENGTH(Alignment, Flags) \
44  { 0, sizeof(Alignment), 0, sizeof(Alignment), Flags }
45 
46 #define IQS_NONE \
47  { 0, sizeof(CHAR), 0, sizeof(CHAR), ICIF_NONE }
USHORT RequiredSizeQUERY
Definition: icif.h:30
UCHAR AlignmentQUERY
Definition: icif.h:31
struct _INFORMATION_CLASS_INFO INFORMATION_CLASS_INFO
unsigned char UCHAR
Definition: xmlstorage.h:181
USHORT RequiredSizeSET
Definition: icif.h:32
struct _INFORMATION_CLASS_INFO * PINFORMATION_CLASS_INFO
unsigned short USHORT
Definition: pedump.c:61