ReactOS  0.4.15-dev-3440-g915569a
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 ???
6  * Copyright 2020-2021 George BiČ™oc <george.bisoc@reactos.org>
7  */
8 
9 #pragma once
10 
11 /*
12  * Implement generic information class probing code in a
13  * separate header within the NT kernel header internals.
14  * This makes it accessible to other sources by including
15  * the header.
16  */
17 
18 #define ICIF_NONE 0x0
19 #define ICIF_QUERY 0x1
20 #define ICIF_SET 0x2
21 #define ICIF_QUERY_SIZE_VARIABLE 0x4
22 #define ICIF_SET_SIZE_VARIABLE 0x8
23 #define ICIF_SIZE_VARIABLE (ICIF_QUERY_SIZE_VARIABLE | ICIF_SET_SIZE_VARIABLE)
24 
26 {
33 
34 #define IQS_SAME(Type, Alignment, Flags) \
35  { sizeof(Type), sizeof(Alignment), sizeof(Type), sizeof(Alignment), Flags }
36 
37 #define IQS(TypeQuery, AlignmentQuery, TypeSet, AlignmentSet, Flags) \
38  { sizeof(TypeQuery), sizeof(AlignmentQuery), sizeof(TypeSet), sizeof(AlignmentSet), Flags }
39 
40 #define IQS_NO_TYPE_LENGTH(Alignment, Flags) \
41  { 0, sizeof(Alignment), 0, sizeof(Alignment), Flags }
42 
43 #define IQS_NONE \
44  { 0, sizeof(CHAR), 0, sizeof(CHAR), ICIF_NONE }
USHORT RequiredSizeQUERY
Definition: icif.h:27
UCHAR AlignmentQUERY
Definition: icif.h:28
struct _INFORMATION_CLASS_INFO INFORMATION_CLASS_INFO
unsigned char UCHAR
Definition: xmlstorage.h:181
USHORT RequiredSizeSET
Definition: icif.h:29
struct _INFORMATION_CLASS_INFO * PINFORMATION_CLASS_INFO
unsigned short USHORT
Definition: pedump.c:61