#define FILE_ATTRIBUTE_OFFLINE 0x00001000
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
+#define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000
#define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7
#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
#define FILE_NOTIFY_VALID_MASK 0x00000fff
-#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
-#define FILE_CASE_PRESERVED_NAMES 0x00000002
-#define FILE_UNICODE_ON_DISK 0x00000004
-#define FILE_PERSISTENT_ACLS 0x00000008
-#define FILE_FILE_COMPRESSION 0x00000010
-#define FILE_VOLUME_QUOTAS 0x00000020
-#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
-#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
-#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
-#define FS_LFN_APIS 0x00004000
-#define FILE_VOLUME_IS_COMPRESSED 0x00008000
-#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
-#define FILE_SUPPORTS_ENCRYPTION 0x00020000
-#define FILE_NAMED_STREAMS 0x00040000
+#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
+#define FILE_CASE_PRESERVED_NAMES 0x00000002
+#define FILE_UNICODE_ON_DISK 0x00000004
+#define FILE_PERSISTENT_ACLS 0x00000008
+#define FILE_FILE_COMPRESSION 0x00000010
+#define FILE_VOLUME_QUOTAS 0x00000020
+#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
+#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
+#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
+#define FS_LFN_APIS 0x00004000
+#define FILE_VOLUME_IS_COMPRESSED 0x00008000
+#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
+#define FILE_SUPPORTS_ENCRYPTION 0x00020000
+#define FILE_NAMED_STREAMS 0x00040000
+#define FILE_READ_ONLY_VOLUME 0x00080000
+#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
+#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
+#define FILE_SUPPORTS_HARD_LINKS 0x00400000
+#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
+#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
+#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
+#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000
+#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000
+#define FILE_SUPPORTS_SPARSE_VDL 0x10000000
+#define FILE_DAX_VOLUME 0x20000000
#define IO_COMPLETION_QUERY_STATE 0x0001
#define IO_COMPLETION_MODIFY_STATE 0x0002
#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 128
#define IS_TEXT_UNICODE_ILLEGAL_CHARS 256
#define IS_TEXT_UNICODE_ODD_LENGTH 512
+#define IS_TEXT_UNICODE_DBCS_LEADBYTE 1024
#define IS_TEXT_UNICODE_NULL_BYTES 4096
#define IS_TEXT_UNICODE_UNICODE_MASK 15
#define IS_TEXT_UNICODE_REVERSE_MASK 240
struct _EXCEPTION_POINTERS *ExceptionInfo
);
+
+#define EVENTLOG_SEQUENTIAL_READ 1
+#define EVENTLOG_SEEK_READ 2
+#define EVENTLOG_FORWARDS_READ 4
+#define EVENTLOG_BACKWARDS_READ 8
+
+#define EVENTLOG_SUCCESS 0
+#define EVENTLOG_ERROR_TYPE 1
+#define EVENTLOG_WARNING_TYPE 2
+#define EVENTLOG_INFORMATION_TYPE 4
+#define EVENTLOG_AUDIT_SUCCESS 8
+#define EVENTLOG_AUDIT_FAILURE 16
+
typedef struct _EVENTLOGRECORD {
- DWORD Length;
+ DWORD Length; /* Length of full record, including the data portion */
DWORD Reserved;
DWORD RecordNumber;
DWORD TimeGenerated;
DWORD TimeWritten;
DWORD EventID;
WORD EventType;
- WORD NumStrings;
+ WORD NumStrings; /* Number of strings in the 'Strings' array */
WORD EventCategory;
WORD ReservedFlags;
DWORD ClosingRecordNumber;
DWORD StringOffset;
DWORD UserSidLength;
DWORD UserSidOffset;
- DWORD DataLength;
- DWORD DataOffset;
+ DWORD DataLength; /* Length of the data portion */
+ DWORD DataOffset; /* Offset from beginning of record */
+/*
+ * Length-varying data:
+ *
+ * WCHAR SourceName[];
+ * WCHAR ComputerName[];
+ * SID UserSid; // Must be aligned on a DWORD boundary
+ * WCHAR Strings[];
+ * BYTE Data[];
+ * CHAR Pad[]; // Padding for DWORD boundary
+ * DWORD Length; // Same as the first 'Length' member at the beginning
+ */
} EVENTLOGRECORD, *PEVENTLOGRECORD;
+
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
PowerInformationLevelMaximum
} POWER_INFORMATION_LEVEL;
-#if 1 /* (WIN32_WINNT >= 0x0500) */
+#if 1 /* (_WIN32_WINNT >= 0x0500) */
typedef struct _SYSTEM_POWER_INFORMATION {
ULONG MaxIdlenessAllowed;
ULONG Idleness;
} ASSEMBLY_FILE_DETAILED_INFORMATION,*PASSEMBLY_FILE_DETAILED_INFORMATION;
typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION;
+typedef enum {
+ ACTCTX_RUN_LEVEL_UNSPECIFIED = 0,
+ ACTCTX_RUN_LEVEL_AS_INVOKER,
+ ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE,
+ ACTCTX_RUN_LEVEL_REQUIRE_ADMIN,
+ ACTCTX_RUN_LEVEL_NUMBERS
+} ACTCTX_REQUESTED_RUN_LEVEL;
+
+typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
+ DWORD ulFlags;
+ ACTCTX_REQUESTED_RUN_LEVEL RunLevel;
+ DWORD UiAccess;
+} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, *PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
+
#define ACTIVATION_CONTEXT_PATH_TYPE_NONE 1
#define ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE 2
#define ACTIVATION_CONTEXT_PATH_TYPE_URL 3
#define ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE 8
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
-#endif /* (WIN32_WINNT >= 0x0501) */
+#endif /* (_WIN32_WINNT >= 0x0501) */
typedef struct _PROCESSOR_POWER_POLICY_INFO {
DWORD TimeCheck;