Skip to content

Instantly share code, notes, and snippets.

@TheLeftExit
Created March 16, 2024 20:56
Show Gist options
  • Save TheLeftExit/9e385473d9d3cf3944161016705c4341 to your computer and use it in GitHub Desktop.
Save TheLeftExit/9e385473d9d3cf3944161016705c4341 to your computer and use it in GitHub Desktop.
framework.h evaluation results
This file has been truncated, but you can view the full file.
__inner_fallthrough_dec
__ANNOTATION(SAL_analysisMode(__AuToQuOtE __In_impl_ char *mode);)
__ANNOTATION(SAL_functionClassNew(__In_impl_ char*);)
__PRIMOP(int, _In_function_class_(__In_impl_ char*);)
typedef unsigned int uintptr_t;
typedef char* va_list;
_CRT_BEGIN_C_HEADER
typedef unsigned int size_t;
typedef int ptrdiff_t;
typedef int intptr_t;
typedef _Bool __vcrt_bool;
typedef unsigned short wchar_t;
void __cdecl __security_init_cookie(void);
void __cdecl __security_check_cookie(_In_ uintptr_t _StackCookie);
__declspec(noreturn) void __cdecl __report_gsfailure(_In_ uintptr_t _StackCookie);
extern uintptr_t __security_cookie;
_CRT_END_C_HEADER
_CRT_BEGIN_C_HEADER
typedef enum _EXCEPTION_DISPOSITION
{
ExceptionContinueExecution,
ExceptionContinueSearch,
ExceptionNestedException,
ExceptionCollidedUnwind
} EXCEPTION_DISPOSITION;
unsigned long __cdecl _exception_code(void);
void * __cdecl _exception_info(void);
int __cdecl _abnormal_termination(void);
_CRT_END_C_HEADER
_CRT_BEGIN_C_HEADER
_CRT_END_C_HEADER
__inner_assume_validated_dec
__inner_assume_bound_dec
__ANNOTATION(SAL_acquire(__In_impl_ char *);)
__ANNOTATION(SAL_release(__In_impl_ char *);)
__ANNOTATION(SAL_acquireGlobal(__In_impl_ char *, ...);)
__ANNOTATION(SAL_releaseGlobal(__In_impl_ char *, ...);)
__ANNOTATION(SAL_mustHold(__In_impl_ char *);)
__ANNOTATION(SAL_mustHoldGlobal(__In_impl_ char *, ...);)
__ANNOTATION(SAL_neverHold(__In_impl_ char *);)
__ANNOTATION(SAL_neverHoldGlobal(__In_impl_ char *, ...);)
__PRIMOP(int, _Holds_resource_(__In_impl_ __deferTypecheck char *,__In_impl_ char *);)
__PRIMOP(int, _Holds_resource_global_(__In_impl_ char *, ...);)
__ANNOTATION(SAL_clearDoInit(enum __SAL_YesNo);)
__ANNOTATION(SAL_IoGetDmaAdapter(void);)
__ANNOTATION(SAL_return(__In_impl_ __AuToQuOtE char *);)
__ANNOTATION(SAL_strictTypeMatch(__int64);)
__ANNOTATION(SAL_strictType(__In_impl_ __AuToQuOtE char *);)
__ANNOTATION(SAL_IsAliased(void);)
__ANNOTATION(SAL_NeedsRelease(enum __SAL_YesNo);)
__ANNOTATION(SAL_preferredFunction(__In_impl_ __AuToQuOtE char *,
__In_impl_ __AuToQuOtE char *);)
__ANNOTATION(SAL_preferredFunction3(__In_impl_ __AuToQuOtE char *,
__In_impl_ __AuToQuOtE char *, __In_impl_ __int64);)
__ANNOTATION(SAL_error(__In_impl_ __AuToQuOtE char *);)
__ANNOTATION(SAL_error2(__In_impl_ __AuToQuOtE char *, __In_impl_ __int64);)
__ANNOTATION(SAL_floatSaved(void);)
__ANNOTATION(SAL_floatRestored(void);)
__ANNOTATION(SAL_floatUsed(void);)
__ANNOTATION(SAL_IsFormatString(__In_impl_ char *);)
__ANNOTATION(SAL_completionType(__In_impl_ __AuToQuOtE char *);)
__ANNOTATION(SAL_callbackType(__In_impl_ __AuToQuOtE char *);)
__PRIMOP(int, _Is_kernel_(void);)
__PRIMOP(int, _Is_driver_(void);)
typedef unsigned long ULONG;
typedef ULONG *PULONG;
typedef unsigned short USHORT;
typedef USHORT *PUSHORT;
typedef unsigned char UCHAR;
typedef UCHAR *PUCHAR;
typedef _Null_terminated_ char *PSZ;
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL near *PBOOL;
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
typedef CONST void far *LPCVOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
typedef _Bool __crt_bool;
_ACRTIMP_ALT void __cdecl _invalid_parameter_noinfo(void);
_ACRTIMP __declspec(noreturn) void __cdecl _invalid_parameter_noinfo_noreturn(void);
__declspec(noreturn)
_ACRTIMP void __cdecl _invoke_watson(
_In_opt_z_ wchar_t const* _Expression,
_In_opt_z_ wchar_t const* _FunctionName,
_In_opt_z_ wchar_t const* _FileName,
_In_ unsigned int _LineNo,
_In_ uintptr_t _Reserved);
typedef int errno_t;
typedef unsigned short wint_t;
typedef unsigned short wctype_t;
typedef long __time32_t;
typedef __int64 __time64_t;
typedef struct __crt_locale_data_public
{
unsigned short const* _locale_pctype;
_Field_range_(1, 2) int _locale_mb_cur_max;
unsigned int _locale_lc_codepage;
} __crt_locale_data_public;
typedef struct __crt_locale_pointers
{
struct __crt_locale_data* locinfo;
struct __crt_multibyte_data* mbcinfo;
} __crt_locale_pointers;
typedef __crt_locale_pointers* _locale_t;
typedef struct _Mbstatet
{
unsigned long _Wchar;
unsigned short _Byte, _State;
} _Mbstatet;
typedef _Mbstatet mbstate_t;
typedef __time64_t time_t;
typedef size_t rsize_t;
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_ACRTIMP const unsigned short* __cdecl __pctype_func(void);
_ACRTIMP const wctype_t* __cdecl __pwctype_func(void);
_Check_return_ _ACRTIMP int __cdecl iswalnum (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswalpha (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswascii (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswblank (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswcntrl (_In_ wint_t _C);
_When_(_Param_(1) == 0, _Post_equal_to_(0))
_Check_return_ _ACRTIMP int __cdecl iswdigit (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswgraph (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswlower (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswprint (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswpunct (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswspace (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswupper (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswxdigit (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl __iswcsymf(_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl __iswcsym (_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl _iswalnum_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswalpha_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswblank_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswcntrl_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswdigit_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswgraph_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswlower_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswprint_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswpunct_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswspace_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswupper_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswxdigit_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswcsymf_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswcsym_l (_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP wint_t __cdecl towupper(_In_ wint_t _C);
_Check_return_ _ACRTIMP wint_t __cdecl towlower(_In_ wint_t _C);
_Check_return_ _ACRTIMP int __cdecl iswctype(_In_ wint_t _C, _In_ wctype_t _Type);
_Check_return_ _ACRTIMP wint_t __cdecl _towupper_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP wint_t __cdecl _towlower_l(_In_ wint_t _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _iswctype_l(_In_ wint_t _C, _In_ wctype_t _Type, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl isleadbyte(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isleadbyte_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_CRT_OBSOLETE(iswctype) _DCRTIMP int __cdecl is_wctype(_In_ wint_t _C, _In_ wctype_t _Type);
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_Check_return_ _ACRTIMP int __cdecl _isctype(_In_ int _C, _In_ int _Type);
_Check_return_ _ACRTIMP int __cdecl _isctype_l(_In_ int _C, _In_ int _Type, _In_opt_ _locale_t _Locale);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl isalpha(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isalpha_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl isupper(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isupper_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl islower(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _islower_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_When_(_Param_(1) == 0, _Post_equal_to_(0))
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl isdigit(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isdigit_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl isxdigit(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isxdigit_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_When_(_Param_(1) == 0, _Post_equal_to_(0))
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl isspace(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isspace_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl ispunct(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _ispunct_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl isblank(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isblank_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl isalnum(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isalnum_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl isprint(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isprint_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl isgraph(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _isgraph_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl iscntrl(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _iscntrl_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_When_(_Param_(1) == 0, _Post_equal_to_(0))
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl toupper(_In_ int _C);
_When_(_Param_(1) == 0, _Post_equal_to_(0))
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl tolower(_In_ int _C);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl _tolower(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _tolower_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl _toupper(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl _toupper_l(_In_ int _C, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl __isascii(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl __toascii(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl __iscsymf(_In_ int _C);
_Check_return_ _ACRTIMP int __cdecl __iscsym(_In_ int _C);
__inline int __CRTDECL __acrt_locale_get_ctype_array_value(
_In_reads_(_Char_value + 1) unsigned short const * const _Locale_pctype_array,
_In_range_(-1, 255) int const _Char_value,
_In_ int const _Mask
)
{
if (_Char_value >= -1 && _Char_value <= 255)
{
return _Locale_pctype_array[_Char_value] & _Mask;
}
return 0;
}
_Post_satisfies_(return > 0 && return < 5)
_ACRTIMP int __cdecl ___mb_cur_max_func(void);
_Post_satisfies_(return > 0 && return < 5)
_ACRTIMP int __cdecl ___mb_cur_max_l_func(_locale_t _Locale);
__forceinline int __CRTDECL __ascii_tolower(int const _C)
{
if (_C >= 'A' && _C <= 'Z')
{
return _C - ('A' - 'a');
}
return _C;
}
__forceinline int __CRTDECL __ascii_toupper(int const _C)
{
if (_C >= 'a' && _C <= 'z')
{
return _C - ('a' - 'A');
}
return _C;
}
__forceinline int __CRTDECL __ascii_iswalpha(int const _C)
{
return (_C >= 'A' && _C <= 'Z') || (_C >= 'a' && _C <= 'z');
}
__forceinline int __CRTDECL __ascii_iswdigit(int const _C)
{
return _C >= '0' && _C <= '9';
}
__forceinline int __CRTDECL __ascii_towlower(int const _C)
{
return __ascii_tolower(_C);
}
__forceinline int __CRTDECL __ascii_towupper(int const _C)
{
return __ascii_toupper(_C);
}
__inline __crt_locale_data_public* __CRTDECL __acrt_get_locale_data_prefix(void const volatile* const _LocalePointers)
{
_locale_t const _TypedLocalePointers = (_locale_t)_LocalePointers;
return (__crt_locale_data_public*)_TypedLocalePointers->locinfo;
}
__inline int __CRTDECL _chvalidchk_l(
_In_ int const _C,
_In_ int const _Mask,
_In_opt_ _locale_t const _Locale
)
{
if (!_Locale)
{
return __chvalidchk(_C, _Mask);
}
return __acrt_locale_get_ctype_array_value(__acrt_get_locale_data_prefix(_Locale)->_locale_pctype, _C, _Mask);
}
__inline int __CRTDECL _ischartype_l(
_In_ int const _C,
_In_ int const _Mask,
_In_opt_ _locale_t const _Locale
)
{
if (!_Locale)
{
return _chvalidchk_l(_C, _Mask, 0);
}
if (_C >= -1 && _C <= 255)
{
return __acrt_get_locale_data_prefix(_Locale)->_locale_pctype[_C] & _Mask;
}
if (__acrt_get_locale_data_prefix(_Locale)->_locale_mb_cur_max > 1)
{
return _isctype_l(_C, _Mask, _Locale);
}
return 0;
}
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
__ANNOTATION(SAL_IRQL(__int64);)
__ANNOTATION(SAL_raiseIRQL(__int64);)
__ANNOTATION(SAL_IRQL(__int64);)
__ANNOTATION(SAL_maxIRQL(__int64);)
__ANNOTATION(SAL_minIRQL(__int64);)
__ANNOTATION(SAL_saveIRQL(void);)
__ANNOTATION(SAL_saveIRQLGlobal(__In_impl_ char *, ...);)
__ANNOTATION(SAL_restoreIRQL(void);)
__ANNOTATION(SAL_restoreIRQLGlobal(__In_impl_ char *, ...);)
__ANNOTATION(SAL_minFunctionIrql(__int64);)
__ANNOTATION(SAL_maxFunctionIrql(__int64);)
__ANNOTATION(SAL_sameIRQL(void);)
__ANNOTATION(SAL_UseCancelIrql(void);)
typedef unsigned long POINTER_64_INT;
typedef signed char INT8, *PINT8;
typedef signed short INT16, *PINT16;
typedef signed int INT32, *PINT32;
typedef signed __int64 INT64, *PINT64;
typedef unsigned char UINT8, *PUINT8;
typedef unsigned short UINT16, *PUINT16;
typedef unsigned int UINT32, *PUINT32;
typedef unsigned __int64 UINT64, *PUINT64;
typedef signed int LONG32, *PLONG32;
typedef unsigned int ULONG32, *PULONG32;
typedef unsigned int DWORD32, *PDWORD32;
typedef _W64 int INT_PTR, *PINT_PTR;
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
typedef _W64 long LONG_PTR, *PLONG_PTR;
typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
typedef void* POINTER_64 HANDLE64;
typedef HANDLE64 *PHANDLE64;
typedef unsigned short UHALF_PTR, *PUHALF_PTR;
typedef short HALF_PTR, *PHALF_PTR;
typedef _W64 long SHANDLE_PTR;
typedef _W64 unsigned long HANDLE_PTR;
__inline
void * POINTER_64
PtrToPtr64(
const void *p
)
{
return((void * POINTER_64) (unsigned __int64) (ULONG_PTR) p );
}
__inline
void *
Ptr64ToPtr(
const void * POINTER_64 p
)
{
return((void *) (ULONG_PTR) (unsigned __int64) p);
}
__inline
HANDLE64
HandleToHandle64(
const void * h
)
{
return((HANDLE64) (__int64) (LONG_PTR) h );
}
__inline
void *
Handle64ToHandle(
const HANDLE64 h
)
{
return((void *) (ULONG_PTR) (unsigned __int64) h );
}
typedef ULONG_PTR SIZE_T, *PSIZE_T;
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
typedef __int64 LONG64, *PLONG64;
typedef unsigned __int64 ULONG64, *PULONG64;
typedef unsigned __int64 DWORD64, *PDWORD64;
typedef ULONG_PTR KAFFINITY;
typedef KAFFINITY *PKAFFINITY;
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
typedef int INT;
typedef wchar_t WCHAR;
typedef WCHAR *PWCHAR, *LPWCH, *PWCH;
typedef CONST WCHAR *LPCWCH, *PCWCH;
typedef _Null_terminated_ WCHAR *NWPSTR, *LPWSTR, *PWSTR;
typedef _Null_terminated_ PWSTR *PZPWSTR;
typedef _Null_terminated_ CONST PWSTR *PCZPWSTR;
typedef _Null_terminated_ WCHAR UNALIGNED *LPUWSTR, *PUWSTR;
typedef _Null_terminated_ CONST WCHAR *LPCWSTR, *PCWSTR;
typedef _Null_terminated_ PCWSTR *PZPCWSTR;
typedef _Null_terminated_ CONST PCWSTR *PCZPCWSTR;
typedef _Null_terminated_ CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
typedef _NullNull_terminated_ WCHAR *PZZWSTR;
typedef _NullNull_terminated_ CONST WCHAR *PCZZWSTR;
typedef _NullNull_terminated_ WCHAR UNALIGNED *PUZZWSTR;
typedef _NullNull_terminated_ CONST WCHAR UNALIGNED *PCUZZWSTR;
typedef WCHAR *PNZWCH;
typedef CONST WCHAR *PCNZWCH;
typedef WCHAR UNALIGNED *PUNZWCH;
typedef CONST WCHAR UNALIGNED *PCUNZWCH;
typedef CONST WCHAR *LPCWCHAR, *PCWCHAR;
typedef CONST WCHAR UNALIGNED *LPCUWCHAR, *PCUWCHAR;
typedef unsigned long UCSCHAR;
typedef UCSCHAR *PUCSCHAR;
typedef const UCSCHAR *PCUCSCHAR;
typedef UCSCHAR *PUCSSTR;
typedef UCSCHAR UNALIGNED *PUUCSSTR;
typedef const UCSCHAR *PCUCSSTR;
typedef const UCSCHAR UNALIGNED *PCUUCSSTR;
typedef UCSCHAR UNALIGNED *PUUCSCHAR;
typedef const UCSCHAR UNALIGNED *PCUUCSCHAR;
typedef CHAR *PCHAR, *LPCH, *PCH;
typedef CONST CHAR *LPCCH, *PCCH;
typedef _Null_terminated_ CHAR *NPSTR, *LPSTR, *PSTR;
typedef _Null_terminated_ PSTR *PZPSTR;
typedef _Null_terminated_ CONST PSTR *PCZPSTR;
typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR;
typedef _Null_terminated_ PCSTR *PZPCSTR;
typedef _Null_terminated_ CONST PCSTR *PCZPCSTR;
typedef _NullNull_terminated_ CHAR *PZZSTR;
typedef _NullNull_terminated_ CONST CHAR *PCZZSTR;
typedef CHAR *PNZCH;
typedef CONST CHAR *PCNZCH;
typedef char TCHAR, *PTCHAR;
typedef unsigned char TBYTE , *PTBYTE ;
typedef LPCH LPTCH, PTCH;
typedef LPCCH LPCTCH, PCTCH;
typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;
typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
typedef PZZSTR PZZTSTR, PUZZTSTR;
typedef PCZZSTR PCZZTSTR, PCUZZTSTR;
typedef PZPSTR PZPTSTR;
typedef PNZCH PNZTCH, PUNZTCH;
typedef PCNZCH PCNZTCH, PCUNZTCH;
typedef SHORT *PSHORT;
typedef LONG *PLONG;
typedef struct _PROCESSOR_NUMBER {
WORD Group;
BYTE Number;
BYTE Reserved;
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
typedef struct _GROUP_AFFINITY {
KAFFINITY Mask;
WORD Group;
WORD Reserved[3];
} GROUP_AFFINITY, *PGROUP_AFFINITY;
typedef void *HANDLE;
typedef HANDLE *PHANDLE;
typedef BYTE FCHAR;
typedef WORD FSHORT;
typedef DWORD FLONG;
typedef _Return_type_success_(return >= 0) long HRESULT;
typedef char CCHAR;
typedef DWORD LCID;
typedef PDWORD PLCID;
typedef WORD LANGID;
typedef enum {
UNSPECIFIED_COMPARTMENT_ID = 0,
DEFAULT_COMPARTMENT_ID
} COMPARTMENT_ID, *PCOMPARTMENT_ID;
typedef struct _FLOAT128 {
__int64 LowPart;
__int64 HighPart;
} FLOAT128;
typedef FLOAT128 *PFLOAT128;
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
typedef LONGLONG *PLONGLONG;
typedef ULONGLONG *PULONGLONG;
typedef LONGLONG USN;
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
typedef LARGE_INTEGER *PLARGE_INTEGER;
typedef union _ULARGE_INTEGER {
struct {
DWORD LowPart;
DWORD HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
DWORD HighPart;
} u;
ULONGLONG QuadPart;
} ULARGE_INTEGER;
typedef ULARGE_INTEGER *PULARGE_INTEGER;
typedef LONG_PTR RTL_REFERENCE_COUNT, *PRTL_REFERENCE_COUNT;
typedef LONG RTL_REFERENCE_COUNT32, *PRTL_REFERENCE_COUNT32;
typedef struct _LUID {
DWORD LowPart;
LONG HighPart;
} LUID, *PLUID;
typedef ULONGLONG DWORDLONG;
typedef DWORDLONG *PDWORDLONG;
unsigned int
__cdecl
_rotl (
_In_ unsigned int Value,
_In_ int Shift
);
unsigned __int64
__cdecl
_rotl64 (
_In_ unsigned __int64 Value,
_In_ int Shift
);
unsigned int
__cdecl
_rotr (
_In_ unsigned int Value,
_In_ int Shift
);
unsigned __int64
__cdecl
_rotr64 (
_In_ unsigned __int64 Value,
_In_ int Shift
);
typedef BYTE BOOLEAN;
typedef BOOLEAN *PBOOLEAN;
typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
typedef struct _SINGLE_LIST_ENTRY {
struct _SINGLE_LIST_ENTRY *Next;
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
typedef struct LIST_ENTRY32 {
DWORD Flink;
DWORD Blink;
} LIST_ENTRY32;
typedef LIST_ENTRY32 *PLIST_ENTRY32;
typedef struct LIST_ENTRY64 {
ULONGLONG Flink;
ULONGLONG Blink;
} LIST_ENTRY64;
typedef LIST_ENTRY64 *PLIST_ENTRY64;
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];
} GUID;
typedef GUID *LPGUID;
typedef const GUID *LPCGUID;
typedef GUID IID;
typedef IID *LPIID;
typedef GUID CLSID;
typedef CLSID *LPCLSID;
typedef GUID FMTID;
typedef FMTID *LPFMTID;
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_ACRTIMP int* __cdecl _errno(void);
_ACRTIMP errno_t __cdecl _set_errno(_In_ int _Value);
_ACRTIMP errno_t __cdecl _get_errno(_Out_ int* _Value);
_ACRTIMP unsigned long* __cdecl __doserrno(void);
_ACRTIMP errno_t __cdecl _set_doserrno(_In_ unsigned long _Value);
_ACRTIMP errno_t __cdecl _get_doserrno(_Out_ unsigned long * _Value);
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_NODISCARD _Check_return_
_VCRTIMP void _CONST_RETURN* __cdecl memchr(
_In_reads_bytes_opt_(_MaxCount) void const* _Buf,
_In_ int _Val,
_In_ size_t _MaxCount
);
_NODISCARD _Check_return_
int __cdecl memcmp(
_In_reads_bytes_(_Size) void const* _Buf1,
_In_reads_bytes_(_Size) void const* _Buf2,
_In_ size_t _Size
);
_CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s)
_Post_equal_to_(_Dst)
_At_buffer_(
(unsigned char*)_Dst,
_Iter_,
_Size,
_Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == ((unsigned char*)_Src)[_Iter_])
)
void* __cdecl memcpy(
_Out_writes_bytes_all_(_Size) void* _Dst,
_In_reads_bytes_(_Size) void const* _Src,
_In_ size_t _Size
);
_CRT_INSECURE_DEPRECATE_MEMORY(memmove_s)
_VCRTIMP void* __cdecl memmove(
_Out_writes_bytes_all_opt_(_Size) void* _Dst,
_In_reads_bytes_opt_(_Size) void const* _Src,
_In_ size_t _Size
);
_Post_equal_to_(_Dst)
_At_buffer_(
(unsigned char*)_Dst,
_Iter_,
_Size,
_Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == _Val)
)
void* __cdecl memset(
_Out_writes_bytes_all_(_Size) void* _Dst,
_In_ int _Val,
_In_ size_t _Size
);
_NODISCARD _Check_return_
_VCRTIMP char _CONST_RETURN* __cdecl strchr(
_In_z_ char const* _Str,
_In_ int _Val
);
_NODISCARD _Check_return_
_VCRTIMP char _CONST_RETURN* __cdecl strrchr(
_In_z_ char const* _Str,
_In_ int _Ch
);
_NODISCARD _Check_return_ _Ret_maybenull_
_VCRTIMP char _CONST_RETURN* __cdecl strstr(
_In_z_ char const* _Str,
_In_z_ char const* _SubStr
);
_NODISCARD _Check_return_
_When_(return != NULL, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1))
_VCRTIMP wchar_t _CONST_RETURN* __cdecl wcschr(
_In_z_ wchar_t const* _Str,
_In_ wchar_t _Ch
);
_NODISCARD _Check_return_
_VCRTIMP wchar_t _CONST_RETURN* __cdecl wcsrchr(
_In_z_ wchar_t const* _Str,
_In_ wchar_t _Ch
);
_NODISCARD _Check_return_ _Ret_maybenull_
_When_(return != NULL, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1))
_VCRTIMP wchar_t _CONST_RETURN* __cdecl wcsstr(
_In_z_ wchar_t const* _Str,
_In_z_ wchar_t const* _SubStr
);
_CRT_END_C_HEADER
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_Success_(return == 0)
_Check_return_opt_
_CRT_MEMCPY_S_INLINE errno_t __CRTDECL memcpy_s(
_Out_writes_bytes_to_opt_(_DestinationSize, _SourceSize) void* const _Destination,
_In_ rsize_t const _DestinationSize,
_In_reads_bytes_opt_(_SourceSize) void const* const _Source,
_In_ rsize_t const _SourceSize
)
{
if (_SourceSize == 0)
{
return 0;
}
_CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Destination != NULL, EINVAL);
if (_Source == NULL || _DestinationSize < _SourceSize)
{
memset(_Destination, 0, _DestinationSize);
_CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Source != NULL, EINVAL);
_CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_DestinationSize >= _SourceSize, ERANGE);
return EINVAL;
}
memcpy(_Destination, _Source, _SourceSize);
return 0;
}
_Check_return_wat_
_CRT_MEMCPY_S_INLINE errno_t __CRTDECL memmove_s(
_Out_writes_bytes_to_opt_(_DestinationSize, _SourceSize) void* const _Destination,
_In_ rsize_t const _DestinationSize,
_In_reads_bytes_opt_(_SourceSize) void const* const _Source,
_In_ rsize_t const _SourceSize
)
{
if (_SourceSize == 0)
{
return 0;
}
_CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Destination != NULL, EINVAL);
_CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Source != NULL, EINVAL);
_CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_DestinationSize >= _SourceSize, ERANGE);
memmove(_Destination, _Source, _SourceSize);
return 0;
}
_UCRT_RESTORE_CLANG_WARNINGS
_CRT_END_C_HEADER
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_Check_return_
_ACRTIMP int __cdecl _memicmp(
_In_reads_bytes_opt_(_Size) void const* _Buf1,
_In_reads_bytes_opt_(_Size) void const* _Buf2,
_In_ size_t _Size
);
_Check_return_
_ACRTIMP int __cdecl _memicmp_l(
_In_reads_bytes_opt_(_Size) void const* _Buf1,
_In_reads_bytes_opt_(_Size) void const* _Buf2,
_In_ size_t _Size,
_In_opt_ _locale_t _Locale
);
_CRT_NONSTDC_DEPRECATE(_memccpy)
_ACRTIMP void* __cdecl memccpy(
_Out_writes_bytes_opt_(_Size) void* _Dst,
_In_reads_bytes_opt_(_Size) void const* _Src,
_In_ int _Val,
_In_ size_t _Size
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_memicmp)
_ACRTIMP int __cdecl memicmp(
_In_reads_bytes_opt_(_Size) void const* _Buf1,
_In_reads_bytes_opt_(_Size) void const* _Buf2,
_In_ size_t _Size
);
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_Check_return_wat_
_ACRTIMP errno_t __cdecl wcscat_s(
_Inout_updates_z_(_SizeInWords) wchar_t* _Destination,
_In_ rsize_t _SizeInWords,
_In_z_ wchar_t const* _Source
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl wcscpy_s(
_Out_writes_z_(_SizeInWords) wchar_t* _Destination,
_In_ rsize_t _SizeInWords,
_In_z_ wchar_t const* _Source
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl wcsncat_s(
_Inout_updates_z_(_SizeInWords) wchar_t* _Destination,
_In_ rsize_t _SizeInWords,
_In_reads_or_z_(_MaxCount) wchar_t const* _Source,
_In_ rsize_t _MaxCount
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl wcsncpy_s(
_Out_writes_z_(_SizeInWords) wchar_t* _Destination,
_In_ rsize_t _SizeInWords,
_In_reads_or_z_(_MaxCount) wchar_t const* _Source,
_In_ rsize_t _MaxCount
);
_Check_return_
_ACRTIMP wchar_t* __cdecl wcstok_s(
_Inout_opt_z_ wchar_t* _String,
_In_z_ wchar_t const* _Delimiter,
_Inout_ _Deref_prepost_opt_z_ wchar_t** _Context
);
_Check_return_
_ACRTIMP _CRTALLOCATOR wchar_t* __cdecl _wcsdup(
_In_z_ wchar_t const* _String
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, wcscat_s,
wchar_t, _Destination,
_In_z_ wchar_t const*, _Source
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcscat,
_Inout_updates_z_(_String_length_(_Destination) + _String_length_(_Source) + 1), wchar_t, _Destination,
_In_z_ wchar_t const*, _Source
)
_Check_return_
_ACRTIMP int __cdecl wcscmp(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, wcscpy_s,
wchar_t, _Destination,
_In_z_ wchar_t const*, _Source
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcscpy,
_Out_writes_z_(_String_length_(_Source) + 1), wchar_t, _Destination,
_In_z_ wchar_t const*, _Source
)
_Check_return_
_ACRTIMP size_t __cdecl wcscspn(
_In_z_ wchar_t const* _String,
_In_z_ wchar_t const* _Control
);
_Check_return_
_ACRTIMP size_t __cdecl wcslen(
_In_z_ wchar_t const* _String
);
_Check_return_
_When_(
_MaxCount > _String_length_(_Source),
_Post_satisfies_(return == _String_length_(_Source))
)
_When_(
_MaxCount <= _String_length_(_Source),
_Post_satisfies_(return == _MaxCount)
)
_ACRTIMP size_t __cdecl wcsnlen(
_In_reads_or_z_(_MaxCount) wchar_t const* _Source,
_In_ size_t _MaxCount
);
_Check_return_
_When_(
_MaxCount > _String_length_(_Source),
_Post_satisfies_(return == _String_length_(_Source))
)
_When_(
_MaxCount <= _String_length_(_Source),
_Post_satisfies_(return == _MaxCount)
)
static __inline size_t __CRTDECL wcsnlen_s(
_In_reads_or_z_(_MaxCount) wchar_t const* _Source,
_In_ size_t _MaxCount
)
{
return (_Source == 0) ? 0 : wcsnlen(_Source, _MaxCount);
}
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
errno_t, wcsncat_s,
_Prepost_z_ wchar_t, _Destination,
_In_reads_or_z_(_Count) wchar_t const*, _Source,
_In_ size_t, _Count
)
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcsncat, wcsncat_s,
_Inout_updates_z_(_Size) wchar_t,
_Inout_updates_z_(_Count), wchar_t, _Destination,
_In_reads_or_z_(_Count) wchar_t const*, _Source,
_In_ size_t, _Count
)
_Check_return_
_ACRTIMP int __cdecl wcsncmp(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
errno_t, wcsncpy_s,
wchar_t, _Destination,
_In_reads_or_z_(_Count) wchar_t const*, _Source,
_In_ size_t, _Count
)
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcsncpy, wcsncpy_s,
_Pre_notnull_ _Post_maybez_ wchar_t,
_Out_writes_(_Count) _Post_maybez_, wchar_t, _Destination,
_In_reads_or_z_(_Count) wchar_t const*, _Source,
_In_ size_t, _Count
)
_Check_return_
_ACRTIMP wchar_t _CONST_RETURN* __cdecl wcspbrk(
_In_z_ wchar_t const* _String,
_In_z_ wchar_t const* _Control
);
_Check_return_
_ACRTIMP size_t __cdecl wcsspn(
_In_z_ wchar_t const* _String,
_In_z_ wchar_t const* _Control
);
_Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s)
_ACRTIMP wchar_t* __cdecl wcstok(
_Inout_opt_z_ wchar_t* _String,
_In_z_ wchar_t const* _Delimiter,
_Inout_opt_ _Deref_prepost_opt_z_ wchar_t** _Context
);
_Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s)
static __inline wchar_t* __CRTDECL _wcstok(
_Inout_opt_z_ wchar_t* const _String,
_In_z_ wchar_t const* const _Delimiter
)
{
return wcstok(_String, _Delimiter, 0);
}
_Ret_z_
_Check_return_ _CRT_INSECURE_DEPRECATE(_wcserror_s)
_ACRTIMP wchar_t* __cdecl _wcserror(
_In_ int _ErrorNumber
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl _wcserror_s(
_Out_writes_opt_z_(_SizeInWords) wchar_t* _Buffer,
_In_ size_t _SizeInWords,
_In_ int _ErrorNumber
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _wcserror_s,
wchar_t, _Buffer,
_In_ int, _Error
)
_Ret_z_
_Success_(return != 0)
_Check_return_ _CRT_INSECURE_DEPRECATE(__wcserror_s)
_ACRTIMP wchar_t* __cdecl __wcserror(
_In_opt_z_ wchar_t const* _String
);
_Check_return_wat_ _ACRTIMP_ALT errno_t __cdecl __wcserror_s(
_Out_writes_opt_z_(_SizeInWords) wchar_t* _Buffer,
_In_ size_t _SizeInWords,
_In_z_ wchar_t const* _ErrorMessage
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, __wcserror_s,
wchar_t, _Buffer,
_In_z_ wchar_t const*, _ErrorMessage
)
_Check_return_ _ACRTIMP int __cdecl _wcsicmp(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2
);
_Check_return_ _ACRTIMP int __cdecl _wcsicmp_l(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2,
_In_opt_ _locale_t _Locale
);
_Check_return_ _ACRTIMP int __cdecl _wcsnicmp(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount
);
_Check_return_ _ACRTIMP int __cdecl _wcsnicmp_l(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsnset_s(
_Inout_updates_z_(_SizeInWords) wchar_t* _Destination,
_In_ size_t _SizeInWords,
_In_ wchar_t _Value,
_In_ size_t _MaxCount
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
errno_t, _wcsnset_s,
_Prepost_z_ wchar_t, _Destination,
_In_ wchar_t, _Value,
_In_ size_t, _MaxCount
)
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsnset, _wcsnset_s,
_Inout_updates_z_(_Size) wchar_t,
_Inout_updates_z_(_MaxCount), wchar_t, _String,
_In_ wchar_t, _Value,
_In_ size_t, _MaxCount
)
_ACRTIMP wchar_t* __cdecl _wcsrev(
_Inout_z_ wchar_t* _String
);
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsset_s(
_Inout_updates_z_(_SizeInWords) wchar_t* _Destination,
_In_ size_t _SizeInWords,
_In_ wchar_t _Value
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _wcsset_s,
_Prepost_z_ wchar_t, _String,
_In_ wchar_t, _Value
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsset, _wcsset_s,
_Inout_updates_z_(_Size) wchar_t,
_Inout_z_, wchar_t, _String,
_In_ wchar_t, _Value
)
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcslwr_s(
_Inout_updates_z_(_SizeInWords) wchar_t* _String,
_In_ size_t _SizeInWords
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
errno_t, _wcslwr_s,
_Prepost_z_ wchar_t, _String
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcslwr,
_Inout_z_, wchar_t, _String
)
_Check_return_wat_
_ACRTIMP errno_t __cdecl _wcslwr_s_l(
_Inout_updates_z_(_SizeInWords) wchar_t* _String,
_In_ size_t _SizeInWords,
_In_opt_ _locale_t _Locale
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _wcslwr_s_l,
_Prepost_z_ wchar_t, _String,
_In_opt_ _locale_t, _Locale
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcslwr_l, _wcslwr_s_l,
_Inout_updates_z_(_Size) wchar_t,
_Inout_z_, wchar_t, _String,
_In_opt_ _locale_t, _Locale
)
_Check_return_wat_
_ACRTIMP errno_t __cdecl _wcsupr_s(
_Inout_updates_z_(_Size) wchar_t* _String,
_In_ size_t _Size
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
errno_t, _wcsupr_s,
_Prepost_z_ wchar_t, _String
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsupr,
_Inout_z_, wchar_t, _String
)
_Check_return_wat_
_ACRTIMP errno_t __cdecl _wcsupr_s_l(
_Inout_updates_z_(_Size) wchar_t* _String,
_In_ size_t _Size,
_In_opt_ _locale_t _Locale
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _wcsupr_s_l,
_Prepost_z_ wchar_t, _String,
_In_opt_ _locale_t, _Locale
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(
wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsupr_l, _wcsupr_s_l,
_Inout_updates_z_(_Size) wchar_t,
_Inout_z_, wchar_t, _String,
_In_opt_ _locale_t, _Locale
)
_Success_(return < _MaxCount)
_Check_return_opt_
_ACRTIMP size_t __cdecl wcsxfrm(
_Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t* _Destination,
_In_z_ wchar_t const* _Source,
_In_ _In_range_(<= ,_CRT_INT_MAX) size_t _MaxCount
);
_Success_(return < _MaxCount)
_Check_return_opt_
_ACRTIMP size_t __cdecl _wcsxfrm_l(
_Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t* _Destination,
_In_z_ wchar_t const* _Source,
_In_ _In_range_(<= ,_CRT_INT_MAX) size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl wcscoll(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2
);
_Check_return_
_ACRTIMP int __cdecl _wcscoll_l(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl _wcsicoll(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2
);
_Check_return_
_ACRTIMP int __cdecl _wcsicoll_l(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl _wcsncoll(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount
);
_Check_return_
_ACRTIMP int __cdecl _wcsncoll_l(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl _wcsnicoll(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount
);
_Check_return_
_ACRTIMP int __cdecl _wcsnicoll_l(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsdup)
_ACRTIMP wchar_t* __cdecl wcsdup(
_In_z_ wchar_t const* _String
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicmp)
_ACRTIMP int __cdecl wcsicmp(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsnicmp)
_ACRTIMP int __cdecl wcsnicmp(
_In_reads_or_z_(_MaxCount) wchar_t const* _String1,
_In_reads_or_z_(_MaxCount) wchar_t const* _String2,
_In_ size_t _MaxCount
);
_CRT_NONSTDC_DEPRECATE(_wcsnset)
_Ret_z_
_ACRTIMP wchar_t* __cdecl wcsnset(
_Inout_updates_z_(_MaxCount) wchar_t* _String,
_In_ wchar_t _Value,
_In_ size_t _MaxCount
);
_CRT_NONSTDC_DEPRECATE(_wcsrev)
_Ret_z_
_ACRTIMP wchar_t* __cdecl wcsrev(
_Inout_z_ wchar_t* _String
);
_CRT_NONSTDC_DEPRECATE(_wcsset)
_Ret_z_
_ACRTIMP wchar_t* __cdecl wcsset(
_Inout_z_ wchar_t* _String,
_In_ wchar_t _Value
);
_CRT_NONSTDC_DEPRECATE(_wcslwr)
_Ret_z_
_ACRTIMP wchar_t* __cdecl wcslwr(
_Inout_z_ wchar_t* _String
);
_CRT_NONSTDC_DEPRECATE(_wcsupr)
_Ret_z_
_ACRTIMP wchar_t* __cdecl wcsupr(
_Inout_z_ wchar_t* _String
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicoll)
_ACRTIMP int __cdecl wcsicoll(
_In_z_ wchar_t const* _String1,
_In_z_ wchar_t const* _String2
);
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
_Check_return_wat_
_ACRTIMP errno_t __cdecl strcpy_s(
_Out_writes_z_(_SizeInBytes) char* _Destination,
_In_ rsize_t _SizeInBytes,
_In_z_ char const* _Source
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl strcat_s(
_Inout_updates_z_(_SizeInBytes) char* _Destination,
_In_ rsize_t _SizeInBytes,
_In_z_ char const* _Source
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl strerror_s(
_Out_writes_z_(_SizeInBytes) char* _Buffer,
_In_ size_t _SizeInBytes,
_In_ int _ErrorNumber);
_Check_return_wat_
_ACRTIMP errno_t __cdecl strncat_s(
_Inout_updates_z_(_SizeInBytes) char* _Destination,
_In_ rsize_t _SizeInBytes,
_In_reads_or_z_(_MaxCount) char const* _Source,
_In_ rsize_t _MaxCount
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl strncpy_s(
_Out_writes_z_(_SizeInBytes) char* _Destination,
_In_ rsize_t _SizeInBytes,
_In_reads_or_z_(_MaxCount) char const* _Source,
_In_ rsize_t _MaxCount
);
_Check_return_
_ACRTIMP char* __cdecl strtok_s(
_Inout_opt_z_ char* _String,
_In_z_ char const* _Delimiter,
_Inout_ _Deref_prepost_opt_z_ char** _Context
);
_ACRTIMP void* __cdecl _memccpy(
_Out_writes_bytes_opt_(_MaxCount) void* _Dst,
_In_ void const* _Src,
_In_ int _Val,
_In_ size_t _MaxCount
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, strcat_s,
char, _Destination,
_In_z_ char const*, _Source
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(
char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcat,
_Inout_updates_z_(_String_length_(_Destination) + _String_length_(_Source) + 1), char, _Destination,
_In_z_ char const*, _Source
)
_Check_return_
int __cdecl strcmp(
_In_z_ char const* _Str1,
_In_z_ char const* _Str2
);
_Check_return_
_ACRTIMP int __cdecl _strcmpi(
_In_z_ char const* _String1,
_In_z_ char const* _String2
);
_Check_return_
_ACRTIMP int __cdecl strcoll(
_In_z_ char const* _String1,
_In_z_ char const* _String2
);
_Check_return_
_ACRTIMP int __cdecl _strcoll_l(
_In_z_ char const* _String1,
_In_z_ char const* _String2,
_In_opt_ _locale_t _Locale
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, strcpy_s,
_Post_z_ char, _Destination,
_In_z_ char const*, _Source
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(
char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcpy,
_Out_writes_z_(_String_length_(_Source) + 1), char, _Destination,
_In_z_ char const*, _Source
)
_Check_return_
_ACRTIMP size_t __cdecl strcspn(
_In_z_ char const* _Str,
_In_z_ char const* _Control
);
_Check_return_
_ACRTIMP _CRTALLOCATOR char* __cdecl _strdup(
_In_opt_z_ char const* _Source
);
_Ret_z_
_Success_(return != 0)
_Check_return_ _CRT_INSECURE_DEPRECATE(_strerror_s)
_ACRTIMP char* __cdecl _strerror(
_In_opt_z_ char const* _ErrorMessage
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strerror_s(
_Out_writes_z_(_SizeInBytes) char* _Buffer,
_In_ size_t _SizeInBytes,
_In_opt_z_ char const* _ErrorMessage
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _strerror_s,
char, _Buffer,
_In_opt_z_ char const*, _ErrorMessage
)
_Ret_z_
_Check_return_ _CRT_INSECURE_DEPRECATE(strerror_s)
_ACRTIMP char* __cdecl strerror(
_In_ int _ErrorMessage
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, strerror_s,
char, _Buffer,
_In_ int, _ErrorMessage
)
_Check_return_
_ACRTIMP int __cdecl _stricmp(
_In_z_ char const* _String1,
_In_z_ char const* _String2
);
_Check_return_
_ACRTIMP int __cdecl _stricoll(
_In_z_ char const* _String1,
_In_z_ char const* _String2
);
_Check_return_
_ACRTIMP int __cdecl _stricoll_l(
_In_z_ char const* _String1,
_In_z_ char const* _String2,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl _stricmp_l(
_In_z_ char const* _String1,
_In_z_ char const* _String2,
_In_opt_ _locale_t _Locale
);
_Check_return_
size_t __cdecl strlen(
_In_z_ char const* _Str
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strlwr_s(
_Inout_updates_z_(_Size) char* _String,
_In_ size_t _Size
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
errno_t, _strlwr_s,
_Prepost_z_ char, _String
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
char*, __RETURN_POLICY_DST, _ACRTIMP, _strlwr,
_Inout_z_, char, _String
)
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strlwr_s_l(
_Inout_updates_z_(_Size) char* _String,
_In_ size_t _Size,
_In_opt_ _locale_t _Locale
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _strlwr_s_l,
_Prepost_z_ char, _String,
_In_opt_ _locale_t, _Locale
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(
char*, __RETURN_POLICY_DST, _ACRTIMP, _strlwr_l, _strlwr_s_l,
_Inout_updates_z_(_Size) char,
_Inout_z_, char, _String,
_In_opt_ _locale_t, _Locale
)
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
errno_t, strncat_s,
_Prepost_z_ char, _Destination,
_In_reads_or_z_(_Count) char const*, _Source,
_In_ size_t, _Count
)
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
char*, __RETURN_POLICY_DST, _ACRTIMP, strncat, strncat_s,
_Inout_updates_z_(_Size) char,
_Inout_updates_z_(_Count), char, _Destination,
_In_reads_or_z_(_Count) char const*, _Source,
_In_ size_t, _Count
)
_Check_return_
_ACRTIMP int __cdecl strncmp(
_In_reads_or_z_(_MaxCount) char const* _Str1,
_In_reads_or_z_(_MaxCount) char const* _Str2,
_In_ size_t _MaxCount
);
_Check_return_
_ACRTIMP int __cdecl _strnicmp(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount
);
_Check_return_
_ACRTIMP int __cdecl _strnicmp_l(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl _strnicoll(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount
);
_Check_return_
_ACRTIMP int __cdecl _strnicoll_l(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_
_ACRTIMP int __cdecl _strncoll(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount
);
_Check_return_
_ACRTIMP int __cdecl _strncoll_l(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_ACRTIMP size_t __cdecl __strncnt(
_In_reads_or_z_(_Count) char const* _String,
_In_ size_t _Count
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
errno_t, strncpy_s,
char, _Destination,
_In_reads_or_z_(_Count) char const*, _Source,
_In_ size_t, _Count
)
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
char*, __RETURN_POLICY_DST, _ACRTIMP, strncpy, strncpy_s,
_Out_writes_z_(_Size) char,
_Out_writes_(_Count) _Post_maybez_, char, _Destination,
_In_reads_or_z_(_Count) char const*, _Source,
_In_ size_t, _Count
)
_Check_return_
_When_(
_MaxCount > _String_length_(_String),
_Post_satisfies_(return == _String_length_(_String))
)
_When_(
_MaxCount <= _String_length_(_String),
_Post_satisfies_(return == _MaxCount)
)
_ACRTIMP size_t __cdecl strnlen(
_In_reads_or_z_(_MaxCount) char const* _String,
_In_ size_t _MaxCount
);
_Check_return_
_When_(
_MaxCount > _String_length_(_String),
_Post_satisfies_(return == _String_length_(_String))
)
_When_(
_MaxCount <= _String_length_(_String),
_Post_satisfies_(return == _MaxCount)
)
static __inline size_t __CRTDECL strnlen_s(
_In_reads_or_z_(_MaxCount) char const* _String,
_In_ size_t _MaxCount
)
{
return _String == 0 ? 0 : strnlen(_String, _MaxCount);
}
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strnset_s(
_Inout_updates_z_(_SizeInBytes) char* _String,
_In_ size_t _SizeInBytes,
_In_ int _Value,
_In_ size_t _MaxCount
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
errno_t, _strnset_s,
_Prepost_z_ char, _Destination,
_In_ int, _Value,
_In_ size_t, _Count
)
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
char*, __RETURN_POLICY_DST, _ACRTIMP, _strnset, _strnset_s,
_Inout_updates_z_(_Size) char,
_Inout_updates_z_(_Count), char, _Destination,
_In_ int, _Value,
_In_ size_t, _Count
)
_Check_return_
_ACRTIMP char _CONST_RETURN* __cdecl strpbrk(
_In_z_ char const* _Str,
_In_z_ char const* _Control
);
_ACRTIMP char* __cdecl _strrev(
_Inout_z_ char* _Str
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strset_s(
_Inout_updates_z_(_DestinationSize) char* _Destination,
_In_ size_t _DestinationSize,
_In_ int _Value
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _strset_s,
_Prepost_z_ char, _Destination,
_In_ int, _Value
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(
char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, _strset,
_Inout_z_, char, _Destination,
_In_ int, _Value
)
_Check_return_
_ACRTIMP size_t __cdecl strspn(
_In_z_ char const* _Str,
_In_z_ char const* _Control
);
_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s)
_ACRTIMP char* __cdecl strtok(
_Inout_opt_z_ char* _String,
_In_z_ char const* _Delimiter
);
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strupr_s(
_Inout_updates_z_(_Size) char* _String,
_In_ size_t _Size
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
errno_t, _strupr_s,
_Prepost_z_ char, _String
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
char*, __RETURN_POLICY_DST, _ACRTIMP, _strupr,
_Inout_z_, char, _String
)
_Check_return_wat_
_ACRTIMP errno_t __cdecl _strupr_s_l(
_Inout_updates_z_(_Size) char* _String,
_In_ size_t _Size,
_In_opt_ _locale_t _Locale
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _strupr_s_l,
_Prepost_z_ char, _String,
_In_opt_ _locale_t, _Locale
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(
char*, __RETURN_POLICY_DST, _ACRTIMP, _strupr_l, _strupr_s_l,
_Inout_updates_z_(_Size) char,
_Inout_z_, char, _String,
_In_opt_ _locale_t, _Locale
)
_Success_(return < _MaxCount)
_Check_return_opt_
_ACRTIMP size_t __cdecl strxfrm(
_Out_writes_opt_(_MaxCount) _Post_maybez_ char* _Destination,
_In_z_ char const* _Source,
_In_ _In_range_(<=,_CRT_INT_MAX) size_t _MaxCount
);
_Success_(return < _MaxCount)
_Check_return_opt_
_ACRTIMP size_t __cdecl _strxfrm_l(
_Out_writes_opt_(_MaxCount) _Post_maybez_ char* _Destination,
_In_z_ char const* _Source,
_In_ _In_range_(<=,_CRT_INT_MAX) size_t _MaxCount,
_In_opt_ _locale_t _Locale
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strdup)
_ACRTIMP char* __cdecl strdup(
_In_opt_z_ char const* _String
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strcmpi)
_ACRTIMP int __cdecl strcmpi(
_In_z_ char const* _String1,
_In_z_ char const* _String2
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_stricmp)
_ACRTIMP int __cdecl stricmp(
_In_z_ char const* _String1,
_In_z_ char const* _String2
);
_CRT_NONSTDC_DEPRECATE(_strlwr)
_ACRTIMP char* __cdecl strlwr(
_Inout_z_ char* _String
);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strnicmp)
_ACRTIMP int __cdecl strnicmp(
_In_reads_or_z_(_MaxCount) char const* _String1,
_In_reads_or_z_(_MaxCount) char const* _String2,
_In_ size_t _MaxCount
);
_CRT_NONSTDC_DEPRECATE(_strnset)
_ACRTIMP char* __cdecl strnset(
_Inout_updates_z_(_MaxCount) char* _String,
_In_ int _Value,
_In_ size_t _MaxCount
);
_CRT_NONSTDC_DEPRECATE(_strrev)
_ACRTIMP char* __cdecl strrev(
_Inout_z_ char* _String
);
_CRT_NONSTDC_DEPRECATE(_strset)
char* __cdecl strset(
_Inout_z_ char* _String,
_In_ int _Value);
_CRT_NONSTDC_DEPRECATE(_strupr)
_ACRTIMP char* __cdecl strupr(
_Inout_z_ char* _String
);
_CRT_END_C_HEADER
_UCRT_RESTORE_CLANG_WARNINGS
typedef struct _OBJECTID {
GUID Lineage;
DWORD Uniquifier;
} OBJECTID;
typedef
_IRQL_requires_same_
_Function_class_(EXCEPTION_ROUTINE)
EXCEPTION_DISPOSITION
NTAPI
EXCEPTION_ROUTINE (
_Inout_ struct _EXCEPTION_RECORD *ExceptionRecord,
_In_ PVOID EstablisherFrame,
_Inout_ struct _CONTEXT *ContextRecord,
_In_ PVOID DispatcherContext
);
typedef EXCEPTION_ROUTINE *PEXCEPTION_ROUTINE;
C_ASSERT(TYPE_ALIGNMENT(LARGE_INTEGER) == 8);
typedef ULONG_PTR KSPIN_LOCK;
typedef KSPIN_LOCK *PKSPIN_LOCK;
typedef struct DECLSPEC_ALIGN(16) _M128A {
ULONGLONG Low;
LONGLONG High;
} M128A, *PM128A;
typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
WORD ControlWord;
WORD StatusWord;
BYTE TagWord;
BYTE Reserved1;
WORD ErrorOpcode;
DWORD ErrorOffset;
WORD ErrorSelector;
WORD Reserved2;
DWORD DataOffset;
WORD DataSelector;
WORD Reserved3;
DWORD MxCsr;
DWORD MxCsr_Mask;
M128A FloatRegisters[8];
M128A XmmRegisters[8];
BYTE Reserved4[224];
} XSAVE_FORMAT, *PXSAVE_FORMAT;
typedef struct _XSAVE_CET_U_FORMAT {
DWORD64 Ia32CetUMsr;
DWORD64 Ia32Pl3SspMsr;
} XSAVE_CET_U_FORMAT, *PXSAVE_CET_U_FORMAT;
typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
DWORD64 Mask;
DWORD64 CompactionMask;
DWORD64 Reserved2[6];
} XSAVE_AREA_HEADER, *PXSAVE_AREA_HEADER;
typedef struct DECLSPEC_ALIGN(16) _XSAVE_AREA {
XSAVE_FORMAT LegacyState;
XSAVE_AREA_HEADER Header;
} XSAVE_AREA, *PXSAVE_AREA;
typedef struct _XSTATE_CONTEXT {
DWORD64 Mask;
DWORD Length;
DWORD Reserved1;
_Field_size_bytes_opt_(Length) PXSAVE_AREA Area;
PVOID Buffer;
} XSTATE_CONTEXT, *PXSTATE_CONTEXT;
typedef struct _KERNEL_CET_CONTEXT {
DWORD64 Ssp;
DWORD64 Rip;
WORD SegCs;
union {
WORD AllFlags;
struct {
WORD UseWrss : 1;
WORD PopShadowStackOne : 1;
WORD Unused : 14;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
WORD Fill[2];
} KERNEL_CET_CONTEXT, *PKERNEL_CET_CONTEXT;
C_ASSERT(sizeof(KERNEL_CET_CONTEXT) == (3 * sizeof(DWORD64)));
typedef struct _SCOPE_TABLE_AMD64 {
DWORD Count;
struct {
DWORD BeginAddress;
DWORD EndAddress;
DWORD HandlerAddress;
DWORD JumpTarget;
} ScopeRecord[1];
} SCOPE_TABLE_AMD64, *PSCOPE_TABLE_AMD64;
typedef struct _SCOPE_TABLE_ARM {
DWORD Count;
struct
{
DWORD BeginAddress;
DWORD EndAddress;
DWORD HandlerAddress;
DWORD JumpTarget;
} ScopeRecord[1];
} SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM;
typedef struct _SCOPE_TABLE_ARM64 {
DWORD Count;
struct
{
DWORD BeginAddress;
DWORD EndAddress;
DWORD HandlerAddress;
DWORD JumpTarget;
} ScopeRecord[1];
} SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64;
typedef union _ARM64_NT_NEON128 {
struct {
ULONGLONG Low;
LONGLONG High;
} DUMMYSTRUCTNAME;
double D[2];
float S[4];
WORD H[8];
BYTE B[16];
} ARM64_NT_NEON128, *PARM64_NT_NEON128;
typedef struct DECLSPEC_ALIGN(16) DECLSPEC_NOINITALL _ARM64_NT_CONTEXT {
DWORD ContextFlags;
DWORD Cpsr;
union {
struct {
DWORD64 X0;
DWORD64 X1;
DWORD64 X2;
DWORD64 X3;
DWORD64 X4;
DWORD64 X5;
DWORD64 X6;
DWORD64 X7;
DWORD64 X8;
DWORD64 X9;
DWORD64 X10;
DWORD64 X11;
DWORD64 X12;
DWORD64 X13;
DWORD64 X14;
DWORD64 X15;
DWORD64 X16;
DWORD64 X17;
DWORD64 X18;
DWORD64 X19;
DWORD64 X20;
DWORD64 X21;
DWORD64 X22;
DWORD64 X23;
DWORD64 X24;
DWORD64 X25;
DWORD64 X26;
DWORD64 X27;
DWORD64 X28;
DWORD64 Fp;
DWORD64 Lr;
} DUMMYSTRUCTNAME;
DWORD64 X[31];
} DUMMYUNIONNAME;
DWORD64 Sp;
DWORD64 Pc;
ARM64_NT_NEON128 V[32];
DWORD Fpcr;
DWORD Fpsr;
DWORD Bcr[ARM64_MAX_BREAKPOINTS];
DWORD64 Bvr[ARM64_MAX_BREAKPOINTS];
DWORD Wcr[ARM64_MAX_WATCHPOINTS];
DWORD64 Wvr[ARM64_MAX_WATCHPOINTS];
} ARM64_NT_CONTEXT, *PARM64_NT_CONTEXT;
typedef struct DECLSPEC_ALIGN(16) DECLSPEC_NOINITALL _ARM64EC_NT_CONTEXT {
union {
struct {
DWORD64 AMD64_P1Home;
DWORD64 AMD64_P2Home;
DWORD64 AMD64_P3Home;
DWORD64 AMD64_P4Home;
DWORD64 AMD64_P5Home;
DWORD64 AMD64_P6Home;
DWORD ContextFlags;
DWORD AMD64_MxCsr_copy;
WORD AMD64_SegCs;
WORD AMD64_SegDs;
WORD AMD64_SegEs;
WORD AMD64_SegFs;
WORD AMD64_SegGs;
WORD AMD64_SegSs;
DWORD AMD64_EFlags;
DWORD64 AMD64_Dr0;
DWORD64 AMD64_Dr1;
DWORD64 AMD64_Dr2;
DWORD64 AMD64_Dr3;
DWORD64 AMD64_Dr6;
DWORD64 AMD64_Dr7;
DWORD64 X8;
DWORD64 X0;
DWORD64 X1;
DWORD64 X27;
DWORD64 Sp;
DWORD64 Fp;
DWORD64 X25;
DWORD64 X26;
DWORD64 X2;
DWORD64 X3;
DWORD64 X4;
DWORD64 X5;
DWORD64 X19;
DWORD64 X20;
DWORD64 X21;
DWORD64 X22;
DWORD64 Pc;
struct {
WORD AMD64_ControlWord;
WORD AMD64_StatusWord;
BYTE AMD64_TagWord;
BYTE AMD64_Reserved1;
WORD AMD64_ErrorOpcode;
DWORD AMD64_ErrorOffset;
WORD AMD64_ErrorSelector;
WORD AMD64_Reserved2;
DWORD AMD64_DataOffset;
WORD AMD64_DataSelector;
WORD AMD64_Reserved3;
DWORD AMD64_MxCsr;
DWORD AMD64_MxCsr_Mask;
DWORD64 Lr;
WORD X16_0;
WORD AMD64_St0_Reserved1;
DWORD AMD64_St0_Reserved2;
DWORD64 X6;
WORD X16_1;
WORD AMD64_St1_Reserved1;
DWORD AMD64_St1_Reserved2;
DWORD64 X7;
WORD X16_2;
WORD AMD64_St2_Reserved1;
DWORD AMD64_St2_Reserved2;
DWORD64 X9;
WORD X16_3;
WORD AMD64_St3_Reserved1;
DWORD AMD64_St3_Reserved2;
DWORD64 X10;
WORD X17_0;
WORD AMD64_St4_Reserved1;
DWORD AMD64_St4_Reserved2;
DWORD64 X11;
WORD X17_1;
WORD AMD64_St5_Reserved1;
DWORD AMD64_St5_Reserved2;
DWORD64 X12;
WORD X17_2;
WORD AMD64_St6_Reserved1;
DWORD AMD64_St6_Reserved2;
DWORD64 X15;
WORD X17_3;
WORD AMD64_St7_Reserved1;
DWORD AMD64_St7_Reserved2;
ARM64_NT_NEON128 V[16];
BYTE AMD64_XSAVE_FORMAT_Reserved4[96];
} DUMMYSTRUCTNAME;
ARM64_NT_NEON128 AMD64_VectorRegister[26];
DWORD64 AMD64_VectorControl;
DWORD64 AMD64_DebugControl;
DWORD64 AMD64_LastBranchToRip;
DWORD64 AMD64_LastBranchFromRip;
DWORD64 AMD64_LastExceptionToRip;
DWORD64 AMD64_LastExceptionFromRip;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} ARM64EC_NT_CONTEXT, *PARM64EC_NT_CONTEXT;
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY ARM64_RUNTIME_FUNCTION, *PARM64_RUNTIME_FUNCTION;
typedef union _DISPATCHER_CONTEXT_NONVOLREG_ARM64 {
BYTE Buffer[NONVOL_INT_SIZE_ARM64 + NONVOL_FP_SIZE_ARM64];
struct {
DWORD64 GpNvRegs[NONVOL_INT_NUMREG_ARM64];
double FpNvRegs [NONVOL_FP_NUMREG_ARM64];
} DUMMYSTRUCTNAME;
} DISPATCHER_CONTEXT_NONVOLREG_ARM64;
C_ASSERT(sizeof(DISPATCHER_CONTEXT_NONVOLREG_ARM64) == (NONVOL_INT_SIZE_ARM64 + NONVOL_FP_SIZE_ARM64));
typedef struct _DISPATCHER_CONTEXT_ARM64 {
ULONG_PTR ControlPc;
ULONG_PTR ImageBase;
PARM64_RUNTIME_FUNCTION FunctionEntry;
ULONG_PTR EstablisherFrame;
ULONG_PTR TargetPc;
PARM64_NT_CONTEXT ContextRecord;
PEXCEPTION_ROUTINE LanguageHandler;
PVOID HandlerData;
struct _UNWIND_HISTORY_TABLE *HistoryTable;
DWORD ScopeIndex;
BOOLEAN ControlPcIsUnwound;
PBYTE NonVolatileRegisters;
} DISPATCHER_CONTEXT_ARM64, *PDISPATCHER_CONTEXT_ARM64;
typedef struct _KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
PDWORD64 X19;
PDWORD64 X20;
PDWORD64 X21;
PDWORD64 X22;
PDWORD64 X23;
PDWORD64 X24;
PDWORD64 X25;
PDWORD64 X26;
PDWORD64 X27;
PDWORD64 X28;
PDWORD64 Fp;
PDWORD64 Lr;
PDWORD64 D8;
PDWORD64 D9;
PDWORD64 D10;
PDWORD64 D11;
PDWORD64 D12;
PDWORD64 D13;
PDWORD64 D14;
PDWORD64 D15;
} KNONVOLATILE_CONTEXT_POINTERS_ARM64, *PKNONVOLATILE_CONTEXT_POINTERS_ARM64;
typedef struct _LDT_ENTRY {
WORD LimitLow;
WORD BaseLow;
union {
struct {
BYTE BaseMid;
BYTE Flags1;
BYTE Flags2;
BYTE BaseHi;
} Bytes;
struct {
DWORD BaseMid : 8;
DWORD Type : 5;
DWORD Dpl : 2;
DWORD Pres : 1;
DWORD LimitHi : 4;
DWORD Sys : 1;
DWORD Reserved_0 : 1;
DWORD Default_Big : 1;
DWORD Granularity : 1;
DWORD BaseHi : 8;
} Bits;
} HighWord;
} LDT_ENTRY, *PLDT_ENTRY;
FORCEINLINE
CHAR
ReadRaw8 (
_In_ _Interlocked_operand_ CHAR const volatile *Source
)
{
CHAR Value;
Value = *(CHAR *)Source;
return Value;
}
FORCEINLINE
VOID
WriteRaw8 (
_Out_ _Interlocked_operand_ CHAR volatile *Destination,
_In_ CHAR Value
)
{
*(CHAR *)Destination = Value;
return;
}
FORCEINLINE
SHORT
ReadRaw16 (
_In_ _Interlocked_operand_ SHORT const volatile *Source
)
{
SHORT Value;
Value = *(SHORT *)Source;
return Value;
}
FORCEINLINE
VOID
WriteRaw16 (
_Out_ _Interlocked_operand_ SHORT volatile *Destination,
_In_ SHORT Value
)
{
*(SHORT *)Destination = Value;
return;
}
FORCEINLINE
LONG
ReadRaw (
_In_ _Interlocked_operand_ LONG const volatile *Source
)
{
LONG Value;
Value = *(LONG *)Source;
return Value;
}
CFORCEINLINE
VOID
WriteRaw (
_Out_ _Interlocked_operand_ LONG volatile *Destination,
_In_ LONG Value
)
{
*(LONG *)Destination = Value;
return;
}
FORCEINLINE
LONG64
ReadRaw64 (
_In_ _Interlocked_operand_ LONG64 const volatile *Source
)
{
LONG64 Value;
Value = *(LONG64 *)Source;
return Value;
}
FORCEINLINE
VOID
WriteRaw64 (
_Out_ _Interlocked_operand_ LONG64 volatile *Destination,
_In_ LONG64 Value
)
{
*(LONG64 *)Destination = Value;
return;
}
FORCEINLINE
BYTE
ReadUCharAcquire (
_In_ _Interlocked_operand_ BYTE const volatile *Source
)
{
return (BYTE )ReadAcquire8((PCHAR)Source);
}
FORCEINLINE
BYTE
ReadUCharNoFence (
_In_ _Interlocked_operand_ BYTE const volatile *Source
)
{
return (BYTE )ReadNoFence8((PCHAR)Source);
}
FORCEINLINE
BYTE
ReadBooleanAcquire (
_In_ _Interlocked_operand_ BOOLEAN const volatile *Source
)
{
return (BOOLEAN)ReadAcquire8((PCHAR)Source);
}
FORCEINLINE
BYTE
ReadBooleanNoFence (
_In_ _Interlocked_operand_ BOOLEAN const volatile *Source
)
{
return (BOOLEAN)ReadNoFence8((PCHAR)Source);
}
FORCEINLINE
BYTE
ReadBooleanRaw (
_In_ _Interlocked_operand_ BOOLEAN const volatile *Source
)
{
return (BOOLEAN)ReadRaw8((PCHAR)Source);
}
FORCEINLINE
BYTE
ReadUCharRaw (
_In_ _Interlocked_operand_ BYTE const volatile *Source
)
{
return (BYTE )ReadRaw8((PCHAR)Source);
}
FORCEINLINE
VOID
WriteUCharRelease (
_Out_ _Interlocked_operand_ BYTE volatile *Destination,
_In_ BYTE Value
)
{
WriteRelease8((PCHAR)Destination, (CHAR)Value);
return;
}
FORCEINLINE
VOID
WriteUCharNoFence (
_Out_ _Interlocked_operand_ BYTE volatile *Destination,
_In_ BYTE Value
)
{
WriteNoFence8((PCHAR)Destination, (CHAR)Value);
return;
}
FORCEINLINE
VOID
WriteBooleanRelease (
_Out_ _Interlocked_operand_ BOOLEAN volatile *Destination,
_In_ BOOLEAN Value
)
{
WriteRelease8((PCHAR)Destination, (CHAR)Value);
return;
}
FORCEINLINE
VOID
WriteBooleanNoFence (
_Out_ _Interlocked_operand_ BOOLEAN volatile *Destination,
_In_ BOOLEAN Value
)
{
WriteNoFence8((PCHAR)Destination, (CHAR)Value);
return;
}
FORCEINLINE
VOID
WriteUCharRaw (
_Out_ _Interlocked_operand_ BYTE volatile *Destination,
_In_ BYTE Value
)
{
WriteRaw8((PCHAR)Destination, (CHAR)Value);
return;
}
FORCEINLINE
WORD
ReadUShortAcquire (
_In_ _Interlocked_operand_ WORD const volatile *Source
)
{
return (WORD )ReadAcquire16((PSHORT)Source);
}
FORCEINLINE
WORD
ReadUShortNoFence (
_In_ _Interlocked_operand_ WORD const volatile *Source
)
{
return (WORD )ReadNoFence16((PSHORT)Source);
}
FORCEINLINE
WORD
ReadUShortRaw (
_In_ _Interlocked_operand_ WORD const volatile *Source
)
{
return (WORD )ReadRaw16((PSHORT)Source);
}
FORCEINLINE
VOID
WriteUShortRelease (
_Out_ _Interlocked_operand_ WORD volatile *Destination,
_In_ WORD Value
)
{
WriteRelease16((PSHORT)Destination, (SHORT)Value);
return;
}
FORCEINLINE
VOID
WriteUShortNoFence (
_Out_ _Interlocked_operand_ WORD volatile *Destination,
_In_ WORD Value
)
{
WriteNoFence16((PSHORT)Destination, (SHORT)Value);
return;
}
FORCEINLINE
VOID
WriteUShortRaw (
_Out_ _Interlocked_operand_ WORD volatile *Destination,
_In_ WORD Value
)
{
WriteRaw16((PSHORT)Destination, (SHORT)Value);
return;
}
FORCEINLINE
DWORD
ReadULongAcquire (
_In_ _Interlocked_operand_ DWORD const volatile *Source
)
{
return (DWORD)ReadAcquire((PLONG)Source);
}
FORCEINLINE
DWORD
ReadULongNoFence (
_In_ _Interlocked_operand_ DWORD const volatile *Source
)
{
return (DWORD)ReadNoFence((PLONG)Source);
}
FORCEINLINE
DWORD
ReadULongRaw (
_In_ _Interlocked_operand_ DWORD const volatile *Source
)
{
return (DWORD)ReadRaw((PLONG)Source);
}
CFORCEINLINE
VOID
WriteULongRelease (
_Out_ _Interlocked_operand_ DWORD volatile *Destination,
_In_ DWORD Value
)
{
WriteRelease((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WriteULongNoFence (
_Out_ _Interlocked_operand_ DWORD volatile *Destination,
_In_ DWORD Value
)
{
WriteNoFence((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WriteULongRaw (
_Out_ _Interlocked_operand_ DWORD volatile *Destination,
_In_ DWORD Value
)
{
WriteRaw((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
INT32
ReadInt32Acquire (
_In_ _Interlocked_operand_ INT32 const volatile *Source
)
{
return (INT32)ReadAcquire((PLONG)Source);
}
FORCEINLINE
INT32
ReadInt32NoFence (
_In_ _Interlocked_operand_ INT32 const volatile *Source
)
{
return (INT32)ReadNoFence((PLONG)Source);
}
FORCEINLINE
INT32
ReadInt32Raw (
_In_ _Interlocked_operand_ INT32 const volatile *Source
)
{
return (INT32)ReadRaw((PLONG)Source);
}
CFORCEINLINE
VOID
WriteInt32Release (
_Out_ _Interlocked_operand_ INT32 volatile *Destination,
_In_ INT32 Value
)
{
WriteRelease((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WriteInt32NoFence (
_Out_ _Interlocked_operand_ INT32 volatile *Destination,
_In_ INT32 Value
)
{
WriteNoFence((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WriteInt32Raw (
_Out_ _Interlocked_operand_ INT32 volatile *Destination,
_In_ INT32 Value
)
{
WriteRaw((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
UINT32
ReadUInt32Acquire (
_In_ _Interlocked_operand_ UINT32 const volatile *Source
)
{
return (UINT32)ReadAcquire((PLONG)Source);
}
FORCEINLINE
UINT32
ReadUInt32NoFence (
_In_ _Interlocked_operand_ UINT32 const volatile *Source
)
{
return (UINT32)ReadNoFence((PLONG)Source);
}
FORCEINLINE
UINT32
ReadUInt32Raw (
_In_ _Interlocked_operand_ UINT32 const volatile *Source
)
{
return (UINT32)ReadRaw((PLONG)Source);
}
CFORCEINLINE
VOID
WriteUInt32Release (
_Out_ _Interlocked_operand_ UINT32 volatile *Destination,
_In_ UINT32 Value
)
{
WriteRelease((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WriteUInt32NoFence (
_Out_ _Interlocked_operand_ UINT32 volatile *Destination,
_In_ UINT32 Value
)
{
WriteNoFence((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WriteUInt32Raw (
_Out_ _Interlocked_operand_ UINT32 volatile *Destination,
_In_ UINT32 Value
)
{
WriteRaw((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
DWORD64
ReadULong64Acquire (
_In_ _Interlocked_operand_ DWORD64 const volatile *Source
)
{
return (DWORD64)ReadAcquire64((PLONG64)Source);
}
FORCEINLINE
DWORD64
ReadULong64NoFence (
_In_ _Interlocked_operand_ DWORD64 const volatile *Source
)
{
return (DWORD64)ReadNoFence64((PLONG64)Source);
}
FORCEINLINE
DWORD64
ReadULong64Raw (
_In_ _Interlocked_operand_ DWORD64 const volatile *Source
)
{
return (DWORD64)ReadRaw64((PLONG64)Source);
}
CFORCEINLINE
VOID
WriteULong64Release (
_Out_ _Interlocked_operand_ DWORD64 volatile *Destination,
_In_ DWORD64 Value
)
{
WriteRelease64((PLONG64)Destination, (LONG64)Value);
return;
}
FORCEINLINE
VOID
WriteULong64NoFence (
_Out_ _Interlocked_operand_ DWORD64 volatile *Destination,
_In_ DWORD64 Value
)
{
WriteNoFence64((PLONG64)Destination, (LONG64)Value);
return;
}
FORCEINLINE
VOID
WriteULong64Raw (
_Out_ _Interlocked_operand_ DWORD64 volatile *Destination,
_In_ DWORD64 Value
)
{
WriteRaw64((PLONG64)Destination, (LONG64)Value);
return;
}
FORCEINLINE
PVOID
ReadPointerAcquire (
_In_ _Interlocked_operand_ PVOID const volatile *Source
)
{
return (PVOID)ReadAcquire((PLONG)Source);
}
CFORCEINLINE
PVOID
ReadPointerNoFence (
_In_ _Interlocked_operand_ PVOID const volatile *Source
)
{
return (PVOID)ReadNoFence((PLONG)Source);
}
FORCEINLINE
PVOID
ReadPointerRaw (
_In_ _Interlocked_operand_ PVOID const volatile *Source
)
{
return (PVOID)ReadRaw((PLONG)Source);
}
CFORCEINLINE
VOID
WritePointerRelease (
_Out_ _Interlocked_operand_ PVOID volatile *Destination,
_In_ PVOID Value
)
{
WriteRelease((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WritePointerNoFence (
_Out_ _Interlocked_operand_ PVOID volatile *Destination,
_In_opt_ PVOID Value
)
{
WriteNoFence((PLONG)Destination, (LONG)Value);
return;
}
FORCEINLINE
VOID
WritePointerRaw (
_Out_ _Interlocked_operand_ PVOID volatile *Destination,
_In_opt_ PVOID Value
)
{
WriteRaw((PLONG)Destination, (LONG)Value);
return;
}
typedef struct _WOW64_FLOATING_SAVE_AREA {
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS];
DWORD Cr0NpxState;
} WOW64_FLOATING_SAVE_AREA;
typedef WOW64_FLOATING_SAVE_AREA *PWOW64_FLOATING_SAVE_AREA;
typedef struct _WOW64_CONTEXT {
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
WOW64_FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION];
} WOW64_CONTEXT;
typedef WOW64_CONTEXT *PWOW64_CONTEXT;
typedef struct _WOW64_LDT_ENTRY {
WORD LimitLow;
WORD BaseLow;
union {
struct {
BYTE BaseMid;
BYTE Flags1;
BYTE Flags2;
BYTE BaseHi;
} Bytes;
struct {
DWORD BaseMid : 8;
DWORD Type : 5;
DWORD Dpl : 2;
DWORD Pres : 1;
DWORD LimitHi : 4;
DWORD Sys : 1;
DWORD Reserved_0 : 1;
DWORD Default_Big : 1;
DWORD Granularity : 1;
DWORD BaseHi : 8;
} Bits;
} HighWord;
} WOW64_LDT_ENTRY, *PWOW64_LDT_ENTRY;
typedef struct _WOW64_DESCRIPTOR_TABLE_ENTRY {
DWORD Selector;
WOW64_LDT_ENTRY Descriptor;
} WOW64_DESCRIPTOR_TABLE_ENTRY, *PWOW64_DESCRIPTOR_TABLE_ENTRY;
typedef struct _EXCEPTION_RECORD {
DWORD ExceptionCode;
DWORD ExceptionFlags;
struct _EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD;
typedef EXCEPTION_RECORD *PEXCEPTION_RECORD;
typedef struct _EXCEPTION_RECORD32 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD ExceptionRecord;
DWORD ExceptionAddress;
DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
typedef struct _EXCEPTION_RECORD64 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD64 ExceptionRecord;
DWORD64 ExceptionAddress;
DWORD NumberParameters;
DWORD __unusedAlignment;
DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
typedef struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
typedef PVOID PACCESS_TOKEN;
typedef PVOID PSECURITY_DESCRIPTOR;
typedef PVOID PSID;
typedef PVOID PCLAIMS_BLOB;
typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK *PACCESS_MASK;
typedef struct _GENERIC_MAPPING {
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
} GENERIC_MAPPING;
typedef GENERIC_MAPPING *PGENERIC_MAPPING;
typedef struct _LUID_AND_ATTRIBUTES {
LUID Luid;
DWORD Attributes;
} LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES;
typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
typedef struct _SID_IDENTIFIER_AUTHORITY {
BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
typedef struct _SID {
BYTE Revision;
BYTE SubAuthorityCount;
SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
DWORD SubAuthority[ANYSIZE_ARRAY];
} SID, *PISID;
typedef union _SE_SID {
SID Sid;
BYTE Buffer[SECURITY_MAX_SID_SIZE];
} SE_SID, *PSE_SID;
typedef enum _SID_NAME_USE {
SidTypeUser = 1,
SidTypeGroup,
SidTypeDomain,
SidTypeAlias,
SidTypeWellKnownGroup,
SidTypeDeletedAccount,
SidTypeInvalid,
SidTypeUnknown,
SidTypeComputer,
SidTypeLabel,
SidTypeLogonSession
} SID_NAME_USE, *PSID_NAME_USE;
typedef struct _SID_AND_ATTRIBUTES {
PSID Sid;
DWORD Attributes;
} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES;
typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
typedef ULONG_PTR SID_HASH_ENTRY, *PSID_HASH_ENTRY;
typedef struct _SID_AND_ATTRIBUTES_HASH {
DWORD SidCount;
PSID_AND_ATTRIBUTES SidAttr;
SID_HASH_ENTRY Hash[SID_HASH_SIZE];
} SID_AND_ATTRIBUTES_HASH, *PSID_AND_ATTRIBUTES_HASH;
typedef enum {
WinNullSid = 0,
WinWorldSid = 1,
WinLocalSid = 2,
WinCreatorOwnerSid = 3,
WinCreatorGroupSid = 4,
WinCreatorOwnerServerSid = 5,
WinCreatorGroupServerSid = 6,
WinNtAuthoritySid = 7,
WinDialupSid = 8,
WinNetworkSid = 9,
WinBatchSid = 10,
WinInteractiveSid = 11,
WinServiceSid = 12,
WinAnonymousSid = 13,
WinProxySid = 14,
WinEnterpriseControllersSid = 15,
WinSelfSid = 16,
WinAuthenticatedUserSid = 17,
WinRestrictedCodeSid = 18,
WinTerminalServerSid = 19,
WinRemoteLogonIdSid = 20,
WinLogonIdsSid = 21,
WinLocalSystemSid = 22,
WinLocalServiceSid = 23,
WinNetworkServiceSid = 24,
WinBuiltinDomainSid = 25,
WinBuiltinAdministratorsSid = 26,
WinBuiltinUsersSid = 27,
WinBuiltinGuestsSid = 28,
WinBuiltinPowerUsersSid = 29,
WinBuiltinAccountOperatorsSid = 30,
WinBuiltinSystemOperatorsSid = 31,
WinBuiltinPrintOperatorsSid = 32,
WinBuiltinBackupOperatorsSid = 33,
WinBuiltinReplicatorSid = 34,
WinBuiltinPreWindows2000CompatibleAccessSid = 35,
WinBuiltinRemoteDesktopUsersSid = 36,
WinBuiltinNetworkConfigurationOperatorsSid = 37,
WinAccountAdministratorSid = 38,
WinAccountGuestSid = 39,
WinAccountKrbtgtSid = 40,
WinAccountDomainAdminsSid = 41,
WinAccountDomainUsersSid = 42,
WinAccountDomainGuestsSid = 43,
WinAccountComputersSid = 44,
WinAccountControllersSid = 45,
WinAccountCertAdminsSid = 46,
WinAccountSchemaAdminsSid = 47,
WinAccountEnterpriseAdminsSid = 48,
WinAccountPolicyAdminsSid = 49,
WinAccountRasAndIasServersSid = 50,
WinNTLMAuthenticationSid = 51,
WinDigestAuthenticationSid = 52,
WinSChannelAuthenticationSid = 53,
WinThisOrganizationSid = 54,
WinOtherOrganizationSid = 55,
WinBuiltinIncomingForestTrustBuildersSid = 56,
WinBuiltinPerfMonitoringUsersSid = 57,
WinBuiltinPerfLoggingUsersSid = 58,
WinBuiltinAuthorizationAccessSid = 59,
WinBuiltinTerminalServerLicenseServersSid = 60,
WinBuiltinDCOMUsersSid = 61,
WinBuiltinIUsersSid = 62,
WinIUserSid = 63,
WinBuiltinCryptoOperatorsSid = 64,
WinUntrustedLabelSid = 65,
WinLowLabelSid = 66,
WinMediumLabelSid = 67,
WinHighLabelSid = 68,
WinSystemLabelSid = 69,
WinWriteRestrictedCodeSid = 70,
WinCreatorOwnerRightsSid = 71,
WinCacheablePrincipalsGroupSid = 72,
WinNonCacheablePrincipalsGroupSid = 73,
WinEnterpriseReadonlyControllersSid = 74,
WinAccountReadonlyControllersSid = 75,
WinBuiltinEventLogReadersGroup = 76,
WinNewEnterpriseReadonlyControllersSid = 77,
WinBuiltinCertSvcDComAccessGroup = 78,
WinMediumPlusLabelSid = 79,
WinLocalLogonSid = 80,
WinConsoleLogonSid = 81,
WinThisOrganizationCertificateSid = 82,
WinApplicationPackageAuthoritySid = 83,
WinBuiltinAnyPackageSid = 84,
WinCapabilityInternetClientSid = 85,
WinCapabilityInternetClientServerSid = 86,
WinCapabilityPrivateNetworkClientServerSid = 87,
WinCapabilityPicturesLibrarySid = 88,
WinCapabilityVideosLibrarySid = 89,
WinCapabilityMusicLibrarySid = 90,
WinCapabilityDocumentsLibrarySid = 91,
WinCapabilitySharedUserCertificatesSid = 92,
WinCapabilityEnterpriseAuthenticationSid = 93,
WinCapabilityRemovableStorageSid = 94,
WinBuiltinRDSRemoteAccessServersSid = 95,
WinBuiltinRDSEndpointServersSid = 96,
WinBuiltinRDSManagementServersSid = 97,
WinUserModeDriversSid = 98,
WinBuiltinHyperVAdminsSid = 99,
WinAccountCloneableControllersSid = 100,
WinBuiltinAccessControlAssistanceOperatorsSid = 101,
WinBuiltinRemoteManagementUsersSid = 102,
WinAuthenticationAuthorityAssertedSid = 103,
WinAuthenticationServiceAssertedSid = 104,
WinLocalAccountSid = 105,
WinLocalAccountAndAdministratorSid = 106,
WinAccountProtectedUsersSid = 107,
WinCapabilityAppointmentsSid = 108,
WinCapabilityContactsSid = 109,
WinAccountDefaultSystemManagedSid = 110,
WinBuiltinDefaultSystemManagedGroupSid = 111,
WinBuiltinStorageReplicaAdminsSid = 112,
WinAccountKeyAdminsSid = 113,
WinAccountEnterpriseKeyAdminsSid = 114,
WinAuthenticationKeyTrustSid = 115,
WinAuthenticationKeyPropertyMFASid = 116,
WinAuthenticationKeyPropertyAttestationSid = 117,
WinAuthenticationFreshKeyAuthSid = 118,
WinBuiltinDeviceOwnersSid = 119,
} WELL_KNOWN_SID_TYPE;
typedef struct _ACL {
BYTE AclRevision;
BYTE Sbz1;
WORD AclSize;
WORD AceCount;
WORD Sbz2;
} ACL;
typedef ACL *PACL;
typedef struct _ACE_HEADER {
BYTE AceType;
BYTE AceFlags;
WORD AceSize;
} ACE_HEADER;
typedef ACE_HEADER *PACE_HEADER;
typedef struct _ACCESS_ALLOWED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} ACCESS_ALLOWED_ACE;
typedef ACCESS_ALLOWED_ACE *PACCESS_ALLOWED_ACE;
typedef struct _ACCESS_DENIED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} ACCESS_DENIED_ACE;
typedef ACCESS_DENIED_ACE *PACCESS_DENIED_ACE;
typedef struct _SYSTEM_AUDIT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_AUDIT_ACE;
typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
typedef struct _SYSTEM_ALARM_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_ALARM_ACE;
typedef SYSTEM_ALARM_ACE *PSYSTEM_ALARM_ACE;
typedef struct _SYSTEM_RESOURCE_ATTRIBUTE_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_RESOURCE_ATTRIBUTE_ACE, *PSYSTEM_RESOURCE_ATTRIBUTE_ACE;
typedef struct _SYSTEM_SCOPED_POLICY_ID_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_SCOPED_POLICY_ID_ACE, *PSYSTEM_SCOPED_POLICY_ID_ACE;
typedef struct _SYSTEM_MANDATORY_LABEL_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE;
typedef struct _SYSTEM_PROCESS_TRUST_LABEL_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_PROCESS_TRUST_LABEL_ACE, *PSYSTEM_PROCESS_TRUST_LABEL_ACE;
typedef struct _SYSTEM_ACCESS_FILTER_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_ACCESS_FILTER_ACE, *PSYSTEM_ACCESS_FILTER_ACE;
typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;
typedef struct _ACCESS_DENIED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;
typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE;
typedef struct _SYSTEM_ALARM_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} SYSTEM_ALARM_OBJECT_ACE, *PSYSTEM_ALARM_OBJECT_ACE;
typedef struct _ACCESS_ALLOWED_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE;
typedef struct _ACCESS_DENIED_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE;
typedef struct _SYSTEM_AUDIT_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE;
typedef struct _SYSTEM_ALARM_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
} SYSTEM_ALARM_CALLBACK_ACE, *PSYSTEM_ALARM_CALLBACK_ACE;
typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE;
typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;
typedef enum _ACL_INFORMATION_CLASS {
AclRevisionInformation = 1,
AclSizeInformation
} ACL_INFORMATION_CLASS;
typedef struct _ACL_REVISION_INFORMATION {
DWORD AclRevision;
} ACL_REVISION_INFORMATION;
typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION;
typedef struct _ACL_SIZE_INFORMATION {
DWORD AceCount;
DWORD AclBytesInUse;
DWORD AclBytesFree;
} ACL_SIZE_INFORMATION;
typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION;
typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _SECURITY_DESCRIPTOR_RELATIVE {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
DWORD Owner;
DWORD Group;
DWORD Sacl;
DWORD Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;
typedef struct _SECURITY_DESCRIPTOR {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
PSID Owner;
PSID Group;
PACL Sacl;
PACL Dacl;
} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;
typedef struct _SECURITY_OBJECT_AI_PARAMS {
DWORD Size;
DWORD ConstraintMask;
} SECURITY_OBJECT_AI_PARAMS, *PSECURITY_OBJECT_AI_PARAMS;
typedef struct _OBJECT_TYPE_LIST {
WORD Level;
WORD Sbz;
GUID *ObjectType;
} OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST;
typedef enum _AUDIT_EVENT_TYPE {
AuditEventObjectAccess,
AuditEventDirectoryServiceAccess
} AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE;
typedef struct _PRIVILEGE_SET {
DWORD PrivilegeCount;
DWORD Control;
LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
} PRIVILEGE_SET, * PPRIVILEGE_SET;
typedef enum _ACCESS_REASON_TYPE{
AccessReasonNone = 0x00000000,
AccessReasonAllowedAce = 0x00010000,
AccessReasonDeniedAce = 0x00020000,
AccessReasonAllowedParentAce = 0x00030000,
AccessReasonDeniedParentAce = 0x00040000,
AccessReasonNotGrantedByCape = 0x00050000,
AccessReasonNotGrantedByParentCape = 0x00060000,
AccessReasonNotGrantedToAppContainer = 0x00070000,
AccessReasonMissingPrivilege = 0x00100000,
AccessReasonFromPrivilege = 0x00200000,
AccessReasonIntegrityLevel = 0x00300000,
AccessReasonOwnership = 0x00400000,
AccessReasonNullDacl = 0x00500000,
AccessReasonEmptyDacl = 0x00600000,
AccessReasonNoSD = 0x00700000,
AccessReasonNoGrant = 0x00800000,
AccessReasonTrustLabel = 0x00900000,
AccessReasonFilterAce = 0x00a00000
}
ACCESS_REASON_TYPE;
typedef DWORD ACCESS_REASON;
typedef struct _ACCESS_REASONS{
ACCESS_REASON Data[32];
} ACCESS_REASONS, *PACCESS_REASONS;
typedef struct _SE_SECURITY_DESCRIPTOR
{
DWORD Size;
DWORD Flags;
PSECURITY_DESCRIPTOR SecurityDescriptor;
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
typedef struct _SE_ACCESS_REQUEST
{
DWORD Size;
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
ACCESS_MASK DesiredAccess;
ACCESS_MASK PreviouslyGrantedAccess;
PSID PrincipalSelfSid;
PGENERIC_MAPPING GenericMapping;
DWORD ObjectTypeListCount;
POBJECT_TYPE_LIST ObjectTypeList;
} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST;
typedef struct _SE_ACCESS_REPLY
{
DWORD Size;
DWORD ResultListCount;
PACCESS_MASK GrantedAccess;
PDWORD AccessStatus;
PACCESS_REASONS AccessReason;
PPRIVILEGE_SET* Privileges;
} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY;
typedef enum _SECURITY_IMPERSONATION_LEVEL {
SecurityAnonymous,
SecurityIdentification,
SecurityImpersonation,
SecurityDelegation
} SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL;
typedef enum _TOKEN_TYPE {
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE;
typedef TOKEN_TYPE *PTOKEN_TYPE;
typedef enum _TOKEN_ELEVATION_TYPE {
TokenElevationTypeDefault = 1,
TokenElevationTypeFull,
TokenElevationTypeLimited,
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
typedef enum _TOKEN_INFORMATION_CLASS {
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics,
TokenRestrictedSids,
TokenSessionId,
TokenGroupsAndPrivileges,
TokenSessionReference,
TokenSandBoxInert,
TokenAuditPolicy,
TokenOrigin,
TokenElevationType,
TokenLinkedToken,
TokenElevation,
TokenHasRestrictions,
TokenAccessInformation,
TokenVirtualizationAllowed,
TokenVirtualizationEnabled,
TokenIntegrityLevel,
TokenUIAccess,
TokenMandatoryPolicy,
TokenLogonSid,
TokenIsAppContainer,
TokenCapabilities,
TokenAppContainerSid,
TokenAppContainerNumber,
TokenUserClaimAttributes,
TokenDeviceClaimAttributes,
TokenRestrictedUserClaimAttributes,
TokenRestrictedDeviceClaimAttributes,
TokenDeviceGroups,
TokenRestrictedDeviceGroups,
TokenSecurityAttributes,
TokenIsRestricted,
TokenProcessTrustLevel,
TokenPrivateNameSpace,
TokenSingletonAttributes,
TokenBnoIsolation,
TokenChildProcessFlags,
TokenIsLessPrivilegedAppContainer,
TokenIsSandboxed,
TokenIsAppSilo,
MaxTokenInfoClass
} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;
typedef struct _TOKEN_USER {
SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER;
typedef struct _SE_TOKEN_USER {
union {
TOKEN_USER TokenUser;
SID_AND_ATTRIBUTES User;
} DUMMYUNIONNAME;
union {
SID Sid;
BYTE Buffer[SECURITY_MAX_SID_SIZE];
} DUMMYUNIONNAME2;
} SE_TOKEN_USER , PSE_TOKEN_USER;
typedef struct _TOKEN_GROUPS {
DWORD GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS, *PTOKEN_GROUPS;
typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
typedef struct _TOKEN_OWNER {
PSID Owner;
} TOKEN_OWNER, *PTOKEN_OWNER;
typedef struct _TOKEN_PRIMARY_GROUP {
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_DEFAULT_DACL {
PACL DefaultDacl;
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
typedef struct _TOKEN_USER_CLAIMS {
PCLAIMS_BLOB UserClaims;
} TOKEN_USER_CLAIMS, *PTOKEN_USER_CLAIMS;
typedef struct _TOKEN_DEVICE_CLAIMS {
PCLAIMS_BLOB DeviceClaims;
} TOKEN_DEVICE_CLAIMS, *PTOKEN_DEVICE_CLAIMS;
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
DWORD SidCount;
DWORD SidLength;
PSID_AND_ATTRIBUTES Sids;
DWORD RestrictedSidCount;
DWORD RestrictedSidLength;
PSID_AND_ATTRIBUTES RestrictedSids;
DWORD PrivilegeCount;
DWORD PrivilegeLength;
PLUID_AND_ATTRIBUTES Privileges;
LUID AuthenticationId;
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
typedef struct _TOKEN_LINKED_TOKEN {
HANDLE LinkedToken;
} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN;
typedef struct _TOKEN_ELEVATION {
DWORD TokenIsElevated;
} TOKEN_ELEVATION, *PTOKEN_ELEVATION;
typedef struct _TOKEN_MANDATORY_LABEL {
SID_AND_ATTRIBUTES Label;
} TOKEN_MANDATORY_LABEL, *PTOKEN_MANDATORY_LABEL;
typedef struct _TOKEN_MANDATORY_POLICY {
DWORD Policy;
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
typedef PVOID PSECURITY_ATTRIBUTES_OPAQUE;
typedef struct _TOKEN_ACCESS_INFORMATION {
PSID_AND_ATTRIBUTES_HASH SidHash;
PSID_AND_ATTRIBUTES_HASH RestrictedSidHash;
PTOKEN_PRIVILEGES Privileges;
LUID AuthenticationId;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
TOKEN_MANDATORY_POLICY MandatoryPolicy;
DWORD Flags;
DWORD AppContainerNumber;
PSID PackageSid;
PSID_AND_ATTRIBUTES_HASH CapabilitiesHash;
PSID TrustLevelSid;
PSECURITY_ATTRIBUTES_OPAQUE SecurityAttributes;
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
typedef struct _TOKEN_AUDIT_POLICY {
BYTE PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
} TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY;
typedef struct _TOKEN_SOURCE {
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;
typedef struct _TOKEN_STATISTICS {
LUID TokenId;
LUID AuthenticationId;
LARGE_INTEGER ExpirationTime;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
DWORD DynamicCharged;
DWORD DynamicAvailable;
DWORD GroupCount;
DWORD PrivilegeCount;
LUID ModifiedId;
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
typedef struct _TOKEN_CONTROL {
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
} TOKEN_CONTROL, *PTOKEN_CONTROL;
typedef struct _TOKEN_ORIGIN {
LUID OriginatingLogonSession ;
} TOKEN_ORIGIN, * PTOKEN_ORIGIN ;
typedef enum _MANDATORY_LEVEL {
MandatoryLevelUntrusted = 0,
MandatoryLevelLow,
MandatoryLevelMedium,
MandatoryLevelHigh,
MandatoryLevelSystem,
MandatoryLevelSecureProcess,
MandatoryLevelCount
} MANDATORY_LEVEL, *PMANDATORY_LEVEL;
typedef struct _TOKEN_APPCONTAINER_INFORMATION {
PSID TokenAppContainer;
} TOKEN_APPCONTAINER_INFORMATION, *PTOKEN_APPCONTAINER_INFORMATION;
typedef struct _TOKEN_SID_INFORMATION {
PSID Sid;
} TOKEN_SID_INFORMATION, *PTOKEN_SID_INFORMATION;
typedef struct _TOKEN_BNO_ISOLATION_INFORMATION {
PWSTR IsolationPrefix;
BOOLEAN IsolationEnabled;
} TOKEN_BNO_ISOLATION_INFORMATION, *PTOKEN_BNO_ISOLATION_INFORMATION;
typedef struct _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE {
DWORD64 Version;
PWSTR Name;
} CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE, *PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE;
typedef struct _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE {
PVOID pValue;
DWORD ValueLength;
} CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE,
*PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE;
typedef struct _CLAIM_SECURITY_ATTRIBUTE_V1 {
PWSTR Name;
WORD ValueType;
WORD Reserved;
DWORD Flags;
DWORD ValueCount;
union {
PLONG64 pInt64;
PDWORD64 pUint64;
PWSTR *ppString;
PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE pFqbn;
PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE pOctetString;
} Values;
} CLAIM_SECURITY_ATTRIBUTE_V1, *PCLAIM_SECURITY_ATTRIBUTE_V1;
typedef struct _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 {
DWORD Name;
WORD ValueType;
WORD Reserved;
DWORD Flags;
DWORD ValueCount;
union {
DWORD pInt64[ANYSIZE_ARRAY];
DWORD pUint64[ANYSIZE_ARRAY];
DWORD ppString[ANYSIZE_ARRAY];
DWORD pFqbn[ANYSIZE_ARRAY];
DWORD pOctetString[ANYSIZE_ARRAY];
} Values;
} CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1, *PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1;
typedef struct _CLAIM_SECURITY_ATTRIBUTES_INFORMATION {
WORD Version;
WORD Reserved;
DWORD AttributeCount;
union {
PCLAIM_SECURITY_ATTRIBUTE_V1 pAttributeV1;
} Attribute;
} CLAIM_SECURITY_ATTRIBUTES_INFORMATION, *PCLAIM_SECURITY_ATTRIBUTES_INFORMATION;
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,
* PSECURITY_CONTEXT_TRACKING_MODE;
typedef struct _SECURITY_QUALITY_OF_SERVICE {
DWORD Length;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
BOOLEAN EffectiveOnly;
} SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE;
typedef struct _SE_IMPERSONATION_STATE {
PACCESS_TOKEN Token;
BOOLEAN CopyOnOpen;
BOOLEAN EffectiveOnly;
SECURITY_IMPERSONATION_LEVEL Level;
} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
typedef BYTE SE_SIGNING_LEVEL, *PSE_SIGNING_LEVEL;
typedef enum _SE_IMAGE_SIGNATURE_TYPE
{
SeImageSignatureNone = 0,
SeImageSignatureEmbedded,
SeImageSignatureCache,
SeImageSignatureCatalogCached,
SeImageSignatureCatalogNotCached,
SeImageSignatureCatalogHint,
SeImageSignaturePackageCatalog,
SeImageSignaturePplMitigated
} SE_IMAGE_SIGNATURE_TYPE, *PSE_IMAGE_SIGNATURE_TYPE;
typedef struct _SECURITY_CAPABILITIES {
PSID AppContainerSid;
PSID_AND_ATTRIBUTES Capabilities;
DWORD CapabilityCount;
DWORD Reserved;
} SECURITY_CAPABILITIES, *PSECURITY_CAPABILITIES, *LPSECURITY_CAPABILITIES;
typedef struct _JOB_SET_ARRAY {
HANDLE JobHandle;
DWORD MemberLevel;
DWORD Flags;
} JOB_SET_ARRAY, *PJOB_SET_ARRAY;
typedef struct _EXCEPTION_REGISTRATION_RECORD {
struct _EXCEPTION_REGISTRATION_RECORD *Next;
PEXCEPTION_ROUTINE Handler;
} EXCEPTION_REGISTRATION_RECORD;
typedef EXCEPTION_REGISTRATION_RECORD *PEXCEPTION_REGISTRATION_RECORD;
typedef struct _NT_TIB {
struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
PVOID StackBase;
PVOID StackLimit;
PVOID SubSystemTib;
PVOID FiberData;
PVOID ArbitraryUserPointer;
struct _NT_TIB *Self;
} NT_TIB;
typedef NT_TIB *PNT_TIB;
typedef struct _NT_TIB32 {
DWORD ExceptionList;
DWORD StackBase;
DWORD StackLimit;
DWORD SubSystemTib;
DWORD FiberData;
DWORD ArbitraryUserPointer;
DWORD Self;
} NT_TIB32, *PNT_TIB32;
typedef struct _NT_TIB64 {
DWORD64 ExceptionList;
DWORD64 StackBase;
DWORD64 StackLimit;
DWORD64 SubSystemTib;
DWORD64 FiberData;
DWORD64 ArbitraryUserPointer;
DWORD64 Self;
} NT_TIB64, *PNT_TIB64;
typedef struct _UMS_CREATE_THREAD_ATTRIBUTES {
DWORD UmsVersion;
PVOID UmsContext;
PVOID UmsCompletionList;
} UMS_CREATE_THREAD_ATTRIBUTES, *PUMS_CREATE_THREAD_ATTRIBUTES;
typedef struct _COMPONENT_FILTER {
DWORD ComponentFlags;
} COMPONENT_FILTER, *PCOMPONENT_FILTER;
typedef struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGET {
ULONG_PTR TargetAddress;
ULONG_PTR Flags;
} PROCESS_DYNAMIC_EH_CONTINUATION_TARGET, *PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET;
typedef struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION {
WORD NumberOfTargets;
WORD Reserved;
DWORD Reserved2;
PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets;
} PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION, *PPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION;
typedef struct _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE {
ULONG_PTR BaseAddress;
SIZE_T Size;
DWORD Flags;
} PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE, *PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE;
typedef struct _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION {
WORD NumberOfRanges;
WORD Reserved;
DWORD Reserved2;
PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges;
} PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION, *PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION;
typedef struct _QUOTA_LIMITS {
SIZE_T PagedPoolLimit;
SIZE_T NonPagedPoolLimit;
SIZE_T MinimumWorkingSetSize;
SIZE_T MaximumWorkingSetSize;
SIZE_T PagefileLimit;
LARGE_INTEGER TimeLimit;
} QUOTA_LIMITS, *PQUOTA_LIMITS;
typedef union _RATE_QUOTA_LIMIT {
DWORD RateData;
struct {
DWORD RatePercent : 7;
DWORD Reserved0 : 25;
} DUMMYSTRUCTNAME;
} RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT;
typedef struct _QUOTA_LIMITS_EX {
SIZE_T PagedPoolLimit;
SIZE_T NonPagedPoolLimit;
SIZE_T MinimumWorkingSetSize;
SIZE_T MaximumWorkingSetSize;
SIZE_T PagefileLimit;
LARGE_INTEGER TimeLimit;
SIZE_T WorkingSetLimit;
SIZE_T Reserved2;
SIZE_T Reserved3;
SIZE_T Reserved4;
DWORD Flags;
RATE_QUOTA_LIMIT CpuRateLimit;
} QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX;
typedef struct _IO_COUNTERS {
ULONGLONG ReadOperationCount;
ULONGLONG WriteOperationCount;
ULONGLONG OtherOperationCount;
ULONGLONG ReadTransferCount;
ULONGLONG WriteTransferCount;
ULONGLONG OtherTransferCount;
} IO_COUNTERS;
typedef IO_COUNTERS *PIO_COUNTERS;
typedef enum _HARDWARE_COUNTER_TYPE {
PMCCounter,
MaxHardwareCounterType
} HARDWARE_COUNTER_TYPE, *PHARDWARE_COUNTER_TYPE;
typedef enum _PROCESS_MITIGATION_POLICY {
ProcessDEPPolicy,
ProcessASLRPolicy,
ProcessDynamicCodePolicy,
ProcessStrictHandleCheckPolicy,
ProcessSystemCallDisablePolicy,
ProcessMitigationOptionsMask,
ProcessExtensionPointDisablePolicy,
ProcessControlFlowGuardPolicy,
ProcessSignaturePolicy,
ProcessFontDisablePolicy,
ProcessImageLoadPolicy,
ProcessSystemCallFilterPolicy,
ProcessPayloadRestrictionPolicy,
ProcessChildProcessPolicy,
ProcessSideChannelIsolationPolicy,
ProcessUserShadowStackPolicy,
ProcessRedirectionTrustPolicy,
ProcessUserPointerAuthPolicy,
ProcessSEHOPPolicy,
ProcessActivationContextTrustPolicy,
MaxProcessMitigationPolicy
} PROCESS_MITIGATION_POLICY, *PPROCESS_MITIGATION_POLICY;
typedef struct _PROCESS_MITIGATION_ASLR_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableBottomUpRandomization : 1;
DWORD EnableForceRelocateImages : 1;
DWORD EnableHighEntropy : 1;
DWORD DisallowStrippedImages : 1;
DWORD ReservedFlags : 28;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_ASLR_POLICY, *PPROCESS_MITIGATION_ASLR_POLICY;
typedef struct _PROCESS_MITIGATION_DEP_POLICY {
union {
DWORD Flags;
struct {
DWORD Enable : 1;
DWORD DisableAtlThunkEmulation : 1;
DWORD ReservedFlags : 30;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
BOOLEAN Permanent;
} PROCESS_MITIGATION_DEP_POLICY, *PPROCESS_MITIGATION_DEP_POLICY;
typedef struct _PROCESS_MITIGATION_SEHOP_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableSehop : 1;
DWORD ReservedFlags : 31;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_SEHOP_POLICY, *PPROCESS_MITIGATION_SEHOP_POLICY;
typedef struct _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY {
union {
DWORD Flags;
struct {
DWORD RaiseExceptionOnInvalidHandleReference : 1;
DWORD HandleExceptionsPermanentlyEnabled : 1;
DWORD ReservedFlags : 30;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, *PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
typedef struct _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY {
union {
DWORD Flags;
struct {
DWORD DisallowWin32kSystemCalls : 1;
DWORD AuditDisallowWin32kSystemCalls : 1;
DWORD DisallowFsctlSystemCalls : 1;
DWORD AuditDisallowFsctlSystemCalls : 1;
DWORD ReservedFlags : 28;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, *PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY;
typedef struct _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY {
union {
DWORD Flags;
struct {
DWORD DisableExtensionPoints : 1;
DWORD ReservedFlags : 31;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, *PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY;
typedef struct _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY {
union {
DWORD Flags;
struct {
DWORD ProhibitDynamicCode : 1;
DWORD AllowThreadOptOut : 1;
DWORD AllowRemoteDowngrade : 1;
DWORD AuditProhibitDynamicCode : 1;
DWORD ReservedFlags : 28;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, *PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY;
typedef struct _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableControlFlowGuard : 1;
DWORD EnableExportSuppression : 1;
DWORD StrictMode : 1;
DWORD EnableXfg : 1;
DWORD EnableXfgAuditMode : 1;
DWORD ReservedFlags : 27;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY, *PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY;
typedef struct _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY {
union {
DWORD Flags;
struct {
DWORD MicrosoftSignedOnly : 1;
DWORD StoreSignedOnly : 1;
DWORD MitigationOptIn : 1;
DWORD AuditMicrosoftSignedOnly : 1;
DWORD AuditStoreSignedOnly : 1;
DWORD ReservedFlags : 27;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY, *PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY;
typedef struct _PROCESS_MITIGATION_FONT_DISABLE_POLICY {
union {
DWORD Flags;
struct {
DWORD DisableNonSystemFonts : 1;
DWORD AuditNonSystemFontLoading : 1;
DWORD ReservedFlags : 30;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_FONT_DISABLE_POLICY, *PPROCESS_MITIGATION_FONT_DISABLE_POLICY;
typedef struct _PROCESS_MITIGATION_IMAGE_LOAD_POLICY {
union {
DWORD Flags;
struct {
DWORD NoRemoteImages : 1;
DWORD NoLowMandatoryLabelImages : 1;
DWORD PreferSystem32Images : 1;
DWORD AuditNoRemoteImages : 1;
DWORD AuditNoLowMandatoryLabelImages : 1;
DWORD ReservedFlags : 27;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_IMAGE_LOAD_POLICY, *PPROCESS_MITIGATION_IMAGE_LOAD_POLICY;
typedef struct _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY {
union {
DWORD Flags;
struct {
DWORD FilterId: 4;
DWORD ReservedFlags : 28;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY, *PPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY;
typedef struct _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableExportAddressFilter : 1;
DWORD AuditExportAddressFilter : 1;
DWORD EnableExportAddressFilterPlus : 1;
DWORD AuditExportAddressFilterPlus : 1;
DWORD EnableImportAddressFilter : 1;
DWORD AuditImportAddressFilter : 1;
DWORD EnableRopStackPivot : 1;
DWORD AuditRopStackPivot : 1;
DWORD EnableRopCallerCheck : 1;
DWORD AuditRopCallerCheck : 1;
DWORD EnableRopSimExec : 1;
DWORD AuditRopSimExec : 1;
DWORD ReservedFlags : 20;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY, *PPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY;
typedef struct _PROCESS_MITIGATION_CHILD_PROCESS_POLICY {
union {
DWORD Flags;
struct {
DWORD NoChildProcessCreation : 1;
DWORD AuditNoChildProcessCreation : 1;
DWORD AllowSecureProcessCreation : 1;
DWORD ReservedFlags : 29;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_CHILD_PROCESS_POLICY, *PPROCESS_MITIGATION_CHILD_PROCESS_POLICY;
typedef struct _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY {
union {
DWORD Flags;
struct {
DWORD SmtBranchTargetIsolation : 1;
DWORD IsolateSecurityDomain : 1;
DWORD DisablePageCombine : 1;
DWORD SpeculativeStoreBypassDisable : 1;
DWORD RestrictCoreSharing : 1;
DWORD ReservedFlags : 27;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY, *PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY;
typedef struct _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableUserShadowStack : 1;
DWORD AuditUserShadowStack : 1;
DWORD SetContextIpValidation : 1;
DWORD AuditSetContextIpValidation : 1;
DWORD EnableUserShadowStackStrictMode : 1;
DWORD BlockNonCetBinaries : 1;
DWORD BlockNonCetBinariesNonEhcont : 1;
DWORD AuditBlockNonCetBinaries : 1;
DWORD CetDynamicApisOutOfProcOnly : 1;
DWORD SetContextIpValidationRelaxedMode : 1;
DWORD ReservedFlags : 22;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY, *PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY;
typedef struct _PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY {
union {
DWORD Flags;
struct {
DWORD EnablePointerAuthUserIp : 1;
DWORD ReservedFlags : 31;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_USER_POINTER_AUTH_POLICY, *PPROCESS_MITIGATION_USER_POINTER_AUTH_POLICY;
typedef struct _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY {
union {
DWORD Flags;
struct {
DWORD EnforceRedirectionTrust : 1;
DWORD AuditRedirectionTrust : 1;
DWORD ReservedFlags : 30;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY, *PPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY;
typedef struct _PROCESS_MITIGATION_ACTIVATION_CONTEXT_TRUST_POLICY {
union {
DWORD Flags;
struct {
DWORD AssemblyManifestRedirectionTrust : 1;
DWORD ReservedFlags : 31;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_ACTIVATION_CONTEXT_TRUST_POLICY, *PPROCESS_MITIGATION_ACTIVATION_CONTEXT_TRUST_POLICY;
typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
LARGE_INTEGER TotalUserTime;
LARGE_INTEGER TotalKernelTime;
LARGE_INTEGER ThisPeriodTotalUserTime;
LARGE_INTEGER ThisPeriodTotalKernelTime;
DWORD TotalPageFaultCount;
DWORD TotalProcesses;
DWORD ActiveProcesses;
DWORD TotalTerminatedProcesses;
} JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {
LARGE_INTEGER PerProcessUserTimeLimit;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD LimitFlags;
SIZE_T MinimumWorkingSetSize;
SIZE_T MaximumWorkingSetSize;
DWORD ActiveProcessLimit;
ULONG_PTR Affinity;
DWORD PriorityClass;
DWORD SchedulingClass;
} JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION;
typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;
IO_COUNTERS IoInfo;
SIZE_T ProcessMemoryLimit;
SIZE_T JobMemoryLimit;
SIZE_T PeakProcessMemoryUsed;
SIZE_T PeakJobMemoryUsed;
} JOBOBJECT_EXTENDED_LIMIT_INFORMATION, *PJOBOBJECT_EXTENDED_LIMIT_INFORMATION;
typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST {
DWORD NumberOfAssignedProcesses;
DWORD NumberOfProcessIdsInList;
ULONG_PTR ProcessIdList[1];
} JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST;
typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS {
DWORD UIRestrictionsClass;
} JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS;
typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {
DWORD SecurityLimitFlags ;
HANDLE JobToken ;
PTOKEN_GROUPS SidsToDisable ;
PTOKEN_PRIVILEGES PrivilegesToDelete ;
PTOKEN_GROUPS RestrictedSids ;
} JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION ;
typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
DWORD EndOfJobTimeAction;
} JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION;
typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
PVOID CompletionKey;
HANDLE CompletionPort;
} JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT;
typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo;
IO_COUNTERS IoInfo;
} JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
typedef struct _JOBOBJECT_JOBSET_INFORMATION {
DWORD MemberLevel;
} JOBOBJECT_JOBSET_INFORMATION, *PJOBOBJECT_JOBSET_INFORMATION;
typedef enum _JOBOBJECT_RATE_CONTROL_TOLERANCE {
ToleranceLow = 1,
ToleranceMedium,
ToleranceHigh
} JOBOBJECT_RATE_CONTROL_TOLERANCE, *PJOBOBJECT_RATE_CONTROL_TOLERANCE;
typedef enum _JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL {
ToleranceIntervalShort = 1,
ToleranceIntervalMedium,
ToleranceIntervalLong
} JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
*PJOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL;
typedef struct _JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
DWORD LimitFlags;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION, *PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
typedef struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTimeLimit;
union {
DWORD64 JobHighMemoryLimit;
DWORD64 JobMemoryLimit;
} DUMMYUNIONNAME;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
} DUMMYUNIONNAME2;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL
CpuRateControlToleranceInterval;
} DUMMYUNIONNAME3;
DWORD LimitFlags;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance;
DWORD64 JobLowMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL IoRateControlToleranceInterval;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL NetRateControlToleranceInterval;
} JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2;
typedef struct _JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
DWORD LimitFlags;
DWORD ViolationLimitFlags;
DWORD64 IoReadBytes;
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytes;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTime;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemory;
DWORD64 JobMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION, *PJOBOBJECT_LIMIT_VIOLATION_INFORMATION;
typedef struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
DWORD LimitFlags;
DWORD ViolationLimitFlags;
DWORD64 IoReadBytes;
DWORD64 IoReadBytesLimit;
DWORD64 IoWriteBytes;
DWORD64 IoWriteBytesLimit;
LARGE_INTEGER PerJobUserTime;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD64 JobMemory;
union {
DWORD64 JobHighMemoryLimit;
DWORD64 JobMemoryLimit;
} DUMMYUNIONNAME;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance;
} DUMMYUNIONNAME2;
union {
JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlToleranceLimit;
} DUMMYUNIONNAME3;
DWORD64 JobLowMemoryLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE IoRateControlToleranceLimit;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlTolerance;
JOBOBJECT_RATE_CONTROL_TOLERANCE NetRateControlToleranceLimit;
} JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2;
typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
DWORD ControlFlags;
union {
DWORD CpuRate;
DWORD Weight;
struct {
WORD MinRate;
WORD MaxRate;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
typedef enum JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
JOB_OBJECT_NET_RATE_CONTROL_ENABLE = 0x1,
JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH = 0x2,
JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG = 0x4,
JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS = 0x7
} JOB_OBJECT_NET_RATE_CONTROL_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_NET_RATE_CONTROL_FLAGS)
C_ASSERT(JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS ==
(JOB_OBJECT_NET_RATE_CONTROL_ENABLE +
JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH +
JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG));
typedef struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
DWORD64 MaxBandwidth;
JOB_OBJECT_NET_RATE_CONTROL_FLAGS ControlFlags;
BYTE DscpTag;
} JOBOBJECT_NET_RATE_CONTROL_INFORMATION;
typedef enum JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
JOB_OBJECT_IO_RATE_CONTROL_ENABLE = 0x1,
JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME = 0x2,
JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL = 0x4,
JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP = 0x8,
JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_ENABLE |
JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME |
JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL |
JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP
} JOB_OBJECT_IO_RATE_CONTROL_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE {
LONG64 MaxIops;
LONG64 MaxBandwidth;
LONG64 ReservationIops;
PWSTR VolumeName;
DWORD BaseIoSize;
JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags;
WORD VolumeNameLength;
} JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE;
typedef JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE
JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1;
typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
LONG64 MaxIops;
LONG64 MaxBandwidth;
LONG64 ReservationIops;
PWSTR VolumeName;
DWORD BaseIoSize;
JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags;
WORD VolumeNameLength;
LONG64 CriticalReservationIops;
LONG64 ReservationBandwidth;
LONG64 CriticalReservationBandwidth;
LONG64 MaxTimePercent;
LONG64 ReservationTimePercent;
LONG64 CriticalReservationTimePercent;
} JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2;
typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
LONG64 MaxIops;
LONG64 MaxBandwidth;
LONG64 ReservationIops;
PWSTR VolumeName;
DWORD BaseIoSize;
JOB_OBJECT_IO_RATE_CONTROL_FLAGS ControlFlags;
WORD VolumeNameLength;
LONG64 CriticalReservationIops;
LONG64 ReservationBandwidth;
LONG64 CriticalReservationBandwidth;
LONG64 MaxTimePercent;
LONG64 ReservationTimePercent;
LONG64 CriticalReservationTimePercent;
LONG64 SoftMaxIops;
LONG64 SoftMaxBandwidth;
LONG64 SoftMaxTimePercent;
LONG64 LimitExcessNotifyIops;
LONG64 LimitExcessNotifyBandwidth;
LONG64 LimitExcessNotifyTimePercent;
} JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3;
typedef enum JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS {
JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE = 0x1,
JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE = 0x2,
JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS = 0x3
} JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS;
typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS {
ULONG_PTR IoCount;
ULONGLONG TotalNonOverlappedQueueTime;
ULONGLONG TotalNonOverlappedServiceTime;
ULONGLONG TotalSize;
} JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS;
typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
DWORD ControlFlags;
JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats;
JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats;
} JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION;
typedef enum _JOBOBJECTINFOCLASS {
JobObjectBasicAccountingInformation = 1,
JobObjectBasicLimitInformation,
JobObjectBasicProcessIdList,
JobObjectBasicUIRestrictions,
JobObjectSecurityLimitInformation,
JobObjectEndOfJobTimeInformation,
JobObjectAssociateCompletionPortInformation,
JobObjectBasicAndIoAccountingInformation,
JobObjectExtendedLimitInformation,
JobObjectJobSetInformation,
JobObjectGroupInformation,
JobObjectNotificationLimitInformation,
JobObjectLimitViolationInformation,
JobObjectGroupInformationEx,
JobObjectCpuRateControlInformation,
JobObjectCompletionFilter,
JobObjectCompletionCounter,
JobObjectReserved1Information = 18,
JobObjectReserved2Information,
JobObjectReserved3Information,
JobObjectReserved4Information,
JobObjectReserved5Information,
JobObjectReserved6Information,
JobObjectReserved7Information,
JobObjectReserved8Information,
JobObjectReserved9Information,
JobObjectReserved10Information,
JobObjectReserved11Information,
JobObjectReserved12Information,
JobObjectReserved13Information,
JobObjectReserved14Information = 31,
JobObjectNetRateControlInformation,
JobObjectNotificationLimitInformation2,
JobObjectLimitViolationInformation2,
JobObjectCreateSilo,
JobObjectSiloBasicInformation,
JobObjectReserved15Information = 37,
JobObjectReserved16Information = 38,
JobObjectReserved17Information = 39,
JobObjectReserved18Information = 40,
JobObjectReserved19Information = 41,
JobObjectReserved20Information = 42,
JobObjectReserved21Information = 43,
JobObjectReserved22Information = 44,
JobObjectReserved23Information = 45,
JobObjectReserved24Information = 46,
JobObjectReserved25Information = 47,
JobObjectReserved26Information = 48,
JobObjectReserved27Information = 49,
MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS;
typedef struct _SILOOBJECT_BASIC_INFORMATION {
DWORD SiloId;
DWORD SiloParentId;
DWORD NumberOfProcesses;
BOOLEAN IsInServerSilo;
BYTE Reserved[3];
} SILOOBJECT_BASIC_INFORMATION, *PSILOOBJECT_BASIC_INFORMATION;
typedef enum _SERVERSILO_STATE {
SERVERSILO_INITING = 0,
SERVERSILO_STARTED,
SERVERSILO_SHUTTING_DOWN,
SERVERSILO_TERMINATING,
SERVERSILO_TERMINATED,
} SERVERSILO_STATE, *PSERVERSILO_STATE;
typedef struct _SERVERSILO_BASIC_INFORMATION {
DWORD ServiceSessionId;
SERVERSILO_STATE State;
DWORD ExitStatus;
BOOLEAN IsDownlevelContainer;
PVOID ApiSetSchema;
PVOID HostApiSetSchema;
} SERVERSILO_BASIC_INFORMATION, *PSERVERSILO_BASIC_INFORMATION;
typedef enum _FIRMWARE_TYPE {
FirmwareTypeUnknown,
FirmwareTypeBios,
FirmwareTypeUefi,
FirmwareTypeMax
} FIRMWARE_TYPE, *PFIRMWARE_TYPE;
typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP {
RelationProcessorCore,
RelationNumaNode,
RelationCache,
RelationProcessorPackage,
RelationGroup,
RelationProcessorDie,
RelationNumaNodeEx,
RelationProcessorModule,
RelationAll = 0xffff
} LOGICAL_PROCESSOR_RELATIONSHIP;
typedef enum _PROCESSOR_CACHE_TYPE {
CacheUnified,
CacheInstruction,
CacheData,
CacheTrace
} PROCESSOR_CACHE_TYPE;
typedef struct _CACHE_DESCRIPTOR {
BYTE Level;
BYTE Associativity;
WORD LineSize;
DWORD Size;
PROCESSOR_CACHE_TYPE Type;
} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
ULONG_PTR ProcessorMask;
LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
union {
struct {
BYTE Flags;
} ProcessorCore;
struct {
DWORD NodeNumber;
} NumaNode;
CACHE_DESCRIPTOR Cache;
ULONGLONG Reserved[2];
} DUMMYUNIONNAME;
} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
typedef struct _PROCESSOR_RELATIONSHIP {
BYTE Flags;
BYTE EfficiencyClass;
BYTE Reserved[20];
WORD GroupCount;
_Field_size_(GroupCount) GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY];
} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP;
typedef struct _NUMA_NODE_RELATIONSHIP {
DWORD NodeNumber;
BYTE Reserved[18];
WORD GroupCount;
union {
GROUP_AFFINITY GroupMask;
_Field_size_(GroupCount)
GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
} DUMMYUNIONNAME;
} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP;
typedef struct _CACHE_RELATIONSHIP {
BYTE Level;
BYTE Associativity;
WORD LineSize;
DWORD CacheSize;
PROCESSOR_CACHE_TYPE Type;
BYTE Reserved[18];
WORD GroupCount;
union {
GROUP_AFFINITY GroupMask;
_Field_size_(GroupCount)
GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
} DUMMYUNIONNAME;
} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP;
typedef struct _PROCESSOR_GROUP_INFO {
BYTE MaximumProcessorCount;
BYTE ActiveProcessorCount;
BYTE Reserved[38];
KAFFINITY ActiveProcessorMask;
} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO;
typedef struct _GROUP_RELATIONSHIP {
WORD MaximumGroupCount;
WORD ActiveGroupCount;
BYTE Reserved[20];
_Field_size_(ActiveGroupCount) PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY];
} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP;
_Struct_size_bytes_(Size) struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
DWORD Size;
union {
PROCESSOR_RELATIONSHIP Processor;
NUMA_NODE_RELATIONSHIP NumaNode;
CACHE_RELATIONSHIP Cache;
GROUP_RELATIONSHIP Group;
} DUMMYUNIONNAME;
};
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
typedef enum _CPU_SET_INFORMATION_TYPE {
CpuSetInformation
} CPU_SET_INFORMATION_TYPE, *PCPU_SET_INFORMATION_TYPE;
_Struct_size_bytes_(Size) struct _SYSTEM_CPU_SET_INFORMATION {
DWORD Size;
CPU_SET_INFORMATION_TYPE Type;
union {
struct {
DWORD Id;
WORD Group;
BYTE LogicalProcessorIndex;
BYTE CoreIndex;
BYTE LastLevelCacheIndex;
BYTE NumaNodeIndex;
BYTE EfficiencyClass;
union {
BYTE AllFlags;
struct {
BYTE Parked : 1;
BYTE Allocated : 1;
BYTE AllocatedToTargetProcess : 1;
BYTE RealTime : 1;
BYTE ReservedFlags : 4;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME2;
union {
DWORD Reserved;
BYTE SchedulingClass;
};
DWORD64 AllocationTag;
} CpuSet;
} DUMMYUNIONNAME;
};
typedef struct _SYSTEM_CPU_SET_INFORMATION SYSTEM_CPU_SET_INFORMATION, *PSYSTEM_CPU_SET_INFORMATION;
typedef struct _SYSTEM_POOL_ZEROING_INFORMATION {
BOOLEAN PoolZeroingSupportPresent;
} SYSTEM_POOL_ZEROING_INFORMATION, *PSYSTEM_POOL_ZEROING_INFORMATION;
typedef struct _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION {
DWORD64 CycleTime;
} SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, *PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION;
typedef struct _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION {
DWORD Machine : 16;
DWORD KernelMode : 1;
DWORD UserMode : 1;
DWORD Native : 1;
DWORD Process : 1;
DWORD WoW64Container : 1;
DWORD ReservedZero0 : 11;
} SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION;
typedef struct _XSTATE_FEATURE {
DWORD Offset;
DWORD Size;
} XSTATE_FEATURE, *PXSTATE_FEATURE;
typedef struct _XSTATE_CONFIGURATION {
DWORD64 EnabledFeatures;
DWORD64 EnabledVolatileFeatures;
DWORD Size;
union {
DWORD ControlFlags;
struct
{
DWORD OptimizedSave : 1;
DWORD CompactionEnabled : 1;
DWORD ExtendedFeatureDisable : 1;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES];
DWORD64 EnabledSupervisorFeatures;
DWORD64 AlignedFeatures;
DWORD AllFeatureSize;
DWORD AllFeatures[MAXIMUM_XSTATE_FEATURES];
DWORD64 EnabledUserVisibleSupervisorFeatures;
DWORD64 ExtendedFeatureDisableFeatures;
DWORD AllNonLargeFeatureSize;
DWORD Spare;
} XSTATE_CONFIGURATION, *PXSTATE_CONFIGURATION;
typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
DWORD AllocationProtect;
SIZE_T RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;
typedef struct _MEMORY_BASIC_INFORMATION32 {
DWORD BaseAddress;
DWORD AllocationBase;
DWORD AllocationProtect;
DWORD RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32;
typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 {
ULONGLONG BaseAddress;
ULONGLONG AllocationBase;
DWORD AllocationProtect;
DWORD __alignment1;
ULONGLONG RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
DWORD __alignment2;
} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64;
typedef struct _CFG_CALL_TARGET_INFO {
ULONG_PTR Offset;
ULONG_PTR Flags;
} CFG_CALL_TARGET_INFO, *PCFG_CALL_TARGET_INFO;
typedef struct _MEM_ADDRESS_REQUIREMENTS {
PVOID LowestStartingAddress;
PVOID HighestEndingAddress;
SIZE_T Alignment;
} MEM_ADDRESS_REQUIREMENTS, *PMEM_ADDRESS_REQUIREMENTS;
typedef enum MEM_EXTENDED_PARAMETER_TYPE {
MemExtendedParameterInvalidType = 0,
MemExtendedParameterAddressRequirements,
MemExtendedParameterNumaNode,
MemExtendedParameterPartitionHandle,
MemExtendedParameterUserPhysicalHandle,
MemExtendedParameterAttributeFlags,
MemExtendedParameterImageMachine,
MemExtendedParameterMax
} MEM_EXTENDED_PARAMETER_TYPE, *PMEM_EXTENDED_PARAMETER_TYPE;
typedef struct DECLSPEC_ALIGN(8) MEM_EXTENDED_PARAMETER {
struct {
DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS;
DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS;
} DUMMYSTRUCTNAME;
union {
DWORD64 ULong64;
PVOID Pointer;
SIZE_T Size;
HANDLE Handle;
DWORD ULong;
} DUMMYUNIONNAME;
} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER;
typedef enum _MEM_DEDICATED_ATTRIBUTE_TYPE {
MemDedicatedAttributeReadBandwidth = 0,
MemDedicatedAttributeReadLatency,
MemDedicatedAttributeWriteBandwidth,
MemDedicatedAttributeWriteLatency,
MemDedicatedAttributeMax
} MEM_DEDICATED_ATTRIBUTE_TYPE, *PMEM_DEDICATED_ATTRIBUTE_TYPE;
typedef enum MEM_SECTION_EXTENDED_PARAMETER_TYPE {
MemSectionExtendedParameterInvalidType = 0,
MemSectionExtendedParameterUserPhysicalFlags,
MemSectionExtendedParameterNumaNode,
MemSectionExtendedParameterSigningLevel,
MemSectionExtendedParameterMax
} MEM_SECTION_EXTENDED_PARAMETER_TYPE, *PMEM_SECTION_EXTENDED_PARAMETER_TYPE;
typedef struct _ENCLAVE_CREATE_INFO_SGX {
BYTE Secs[4096];
} ENCLAVE_CREATE_INFO_SGX, *PENCLAVE_CREATE_INFO_SGX;
typedef struct _ENCLAVE_INIT_INFO_SGX {
BYTE SigStruct[1808];
BYTE Reserved1[240];
BYTE EInitToken[304];
BYTE Reserved2[1744];
} ENCLAVE_INIT_INFO_SGX, *PENCLAVE_INIT_INFO_SGX;
typedef struct _ENCLAVE_CREATE_INFO_VBS {
DWORD Flags;
BYTE OwnerID[32];
} ENCLAVE_CREATE_INFO_VBS, *PENCLAVE_CREATE_INFO_VBS;
typedef struct _ENCLAVE_CREATE_INFO_VBS_BASIC {
DWORD Flags;
BYTE OwnerID[32];
} ENCLAVE_CREATE_INFO_VBS_BASIC, *PENCLAVE_CREATE_INFO_VBS_BASIC;
typedef struct _ENCLAVE_LOAD_DATA_VBS_BASIC {
DWORD PageType;
} ENCLAVE_LOAD_DATA_VBS_BASIC, *PENCLAVE_LOAD_DATA_VBS_BASIC;
typedef struct _ENCLAVE_INIT_INFO_VBS_BASIC {
BYTE FamilyId[ENCLAVE_SHORT_ID_LENGTH];
BYTE ImageId[ENCLAVE_SHORT_ID_LENGTH];
ULONGLONG EnclaveSize;
DWORD EnclaveSvn;
DWORD Reserved;
union {
HANDLE SignatureInfoHandle;
ULONGLONG Unused;
} DUMMYUNIONNAME;
} ENCLAVE_INIT_INFO_VBS_BASIC, *PENCLAVE_INIT_INFO_VBS_BASIC;
typedef struct _ENCLAVE_INIT_INFO_VBS {
DWORD Length;
DWORD ThreadCount;
} ENCLAVE_INIT_INFO_VBS, *PENCLAVE_INIT_INFO_VBS;
typedef PVOID (ENCLAVE_TARGET_FUNCTION)(PVOID);
typedef ENCLAVE_TARGET_FUNCTION (*PENCLAVE_TARGET_FUNCTION);
typedef PENCLAVE_TARGET_FUNCTION LPENCLAVE_TARGET_FUNCTION;
typedef struct DECLSPEC_ALIGN(8) _MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE {
MEM_DEDICATED_ATTRIBUTE_TYPE Type;
DWORD Reserved;
DWORD64 Value;
} MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE, *PMEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE;
typedef struct DECLSPEC_ALIGN(8) _MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION {
DWORD NextEntryOffset;
DWORD SizeOfInformation;
DWORD Flags;
DWORD AttributesOffset;
DWORD AttributeCount;
DWORD Reserved;
DWORD64 TypeId;
} MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION, *PMEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION;
typedef struct _FILE_ID_128 {
BYTE Identifier[16];
} FILE_ID_128, *PFILE_ID_128;
typedef struct _FILE_NOTIFY_INFORMATION {
DWORD NextEntryOffset;
DWORD Action;
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION;
typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION {
DWORD NextEntryOffset;
DWORD Action;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastModificationTime;
LARGE_INTEGER LastChangeTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER AllocatedLength;
LARGE_INTEGER FileSize;
DWORD FileAttributes;
union {
DWORD ReparsePointTag;
DWORD EaSize;
} DUMMYUNIONNAME;
LARGE_INTEGER FileId;
LARGE_INTEGER ParentFileId;
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_INFORMATION;
typedef struct _FILE_NOTIFY_FULL_INFORMATION {
DWORD NextEntryOffset;
DWORD Action;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastModificationTime;
LARGE_INTEGER LastChangeTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER AllocatedLength;
LARGE_INTEGER FileSize;
DWORD FileAttributes;
union {
DWORD ReparsePointTag;
DWORD EaSize;
} DUMMYUNIONNAME;
LARGE_INTEGER FileId;
LARGE_INTEGER ParentFileId;
WORD FileNameLength;
BYTE FileNameFlags;
BYTE Reserved;
WCHAR FileName[1];
} FILE_NOTIFY_FULL_INFORMATION, *PFILE_NOTIFY_FULL_INFORMATION;
typedef union _FILE_SEGMENT_ELEMENT {
PVOID64 Buffer;
ULONGLONG Alignment;
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
typedef struct _REPARSE_GUID_DATA_BUFFER {
DWORD ReparseTag;
WORD ReparseDataLength;
WORD Reserved;
GUID ReparseGuid;
struct {
BYTE DataBuffer[1];
} GenericReparseBuffer;
} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER;
typedef struct _SCRUB_DATA_INPUT {
DWORD Size;
DWORD Flags;
DWORD MaximumIos;
DWORD ObjectId[4];
DWORD Reserved[41];
BYTE ResumeContext[1040];
} SCRUB_DATA_INPUT, *PSCRUB_DATA_INPUT;
typedef struct _SCRUB_PARITY_EXTENT {
LONGLONG Offset;
ULONGLONG Length;
} SCRUB_PARITY_EXTENT, *PSCRUB_PARITY_EXTENT;
typedef struct _SCRUB_PARITY_EXTENT_DATA {
WORD Size;
WORD Flags;
WORD NumberOfParityExtents;
WORD MaximumNumberOfParityExtents;
SCRUB_PARITY_EXTENT ParityExtents[ANYSIZE_ARRAY];
} SCRUB_PARITY_EXTENT_DATA, *PSCRUB_PARITY_EXTENT_DATA;
typedef struct _SCRUB_DATA_OUTPUT {
DWORD Size;
DWORD Flags;
DWORD Status;
ULONGLONG ErrorFileOffset;
ULONGLONG ErrorLength;
ULONGLONG NumberOfBytesRepaired;
ULONGLONG NumberOfBytesFailed;
ULONGLONG InternalFileReference;
WORD ResumeContextLength;
WORD ParityExtentDataOffset;
DWORD Reserved[9];
ULONGLONG NumberOfMetadataBytesProcessed;
ULONGLONG NumberOfDataBytesProcessed;
ULONGLONG TotalNumberOfMetadataBytesInUse;
ULONGLONG TotalNumberOfDataBytesInUse;
ULONGLONG DataBytesSkippedDueToNoAllocation;
ULONGLONG DataBytesSkippedDueToInvalidRun;
ULONGLONG DataBytesSkippedDueToIntegrityStream;
ULONGLONG DataBytesSkippedDueToRegionBeingClean;
ULONGLONG DataBytesSkippedDueToLockConflict;
ULONGLONG DataBytesSkippedDueToNoScrubDataFlag;
ULONGLONG DataBytesSkippedDueToNoScrubNonIntegrityStreamFlag;
ULONGLONG DataBytesScrubbed;
BYTE ResumeContext[1040];
} SCRUB_DATA_OUTPUT, *PSCRUB_DATA_OUTPUT;
typedef enum _SharedVirtualDiskSupportType
{
SharedVirtualDisksUnsupported = 0,
SharedVirtualDisksSupported = 1,
SharedVirtualDiskSnapshotsSupported = 3,
SharedVirtualDiskCDPSnapshotsSupported = 7
} SharedVirtualDiskSupportType;
typedef enum _SharedVirtualDiskHandleState
{
SharedVirtualDiskHandleStateNone = 0,
SharedVirtualDiskHandleStateFileShared = 1,
SharedVirtualDiskHandleStateHandleShared = 3
} SharedVirtualDiskHandleState;
typedef struct _SHARED_VIRTUAL_DISK_SUPPORT {
SharedVirtualDiskSupportType SharedVirtualDiskSupport;
SharedVirtualDiskHandleState HandleState;
} SHARED_VIRTUAL_DISK_SUPPORT, *PSHARED_VIRTUAL_DISK_SUPPORT;
typedef struct _REARRANGE_FILE_DATA {
ULONGLONG SourceStartingOffset;
ULONGLONG TargetOffset;
HANDLE SourceFileHandle;
DWORD Length;
DWORD Flags;
} REARRANGE_FILE_DATA, *PREARRANGE_FILE_DATA;
typedef struct _SHUFFLE_FILE_DATA {
LONGLONG StartingOffset;
LONGLONG Length;
DWORD Flags;
} SHUFFLE_FILE_DATA, *PSHUFFLE_FILE_DATA;
typedef struct _NETWORK_APP_INSTANCE_EA {
GUID AppInstanceID;
DWORD CsvFlags;
} NETWORK_APP_INSTANCE_EA, *PNETWORK_APP_INSTANCE_EA;
DEFINE_GUID( GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A );
DEFINE_GUID( GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C );
DEFINE_GUID( GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E );
DEFINE_GUID( NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94 );
DEFINE_GUID( ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0 );
DEFINE_GUID( GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7 );
DEFINE_GUID( GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63 );
DEFINE_GUID(GUID_IDLE_RESILIENCY_SUBGROUP, 0x2e601130, 0x5351, 0x4d9d, 0x8e, 0x4, 0x25, 0x29, 0x66, 0xba, 0xd0, 0x54);
DEFINE_GUID(GUID_IDLE_RESILIENCY_PERIOD, 0xc42b79aa, 0xaa3a, 0x484b, 0xa9, 0x8f, 0x2c, 0xf3, 0x2a, 0xa9, 0xa, 0x28);
DEFINE_GUID(GUID_DEEP_SLEEP_ENABLED, 0xd502f7ee, 0x1dc7, 0x4efd, 0xa5, 0x5d, 0xf0, 0x4b, 0x6f, 0x5c, 0x5, 0x45);
DEFINE_GUID(GUID_DEEP_SLEEP_PLATFORM_STATE, 0xd23f2fb8, 0x9536, 0x4038, 0x9c, 0x94, 0x1c, 0xe0, 0x2e, 0x5c, 0x21, 0x52);
DEFINE_GUID(GUID_DISK_COALESCING_POWERDOWN_TIMEOUT, 0xc36f0eb4, 0x2988, 0x4a70, 0x8e, 0xee, 0x8, 0x84, 0xfc, 0x2c, 0x24, 0x33);
DEFINE_GUID(GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT, 0x3166bc41, 0x7e98, 0x4e03, 0xb3, 0x4e, 0xec, 0xf, 0x5f, 0x2b, 0x21, 0x8e);
DEFINE_GUID( GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99 );
DEFINE_GUID( GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E );
DEFINE_GUID( GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63 );
DEFINE_GUID( GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64 );
DEFINE_GUID( GUID_VIDEO_DIM_TIMEOUT, 0x17aaa29b, 0x8b43, 0x4b94, 0xaa, 0xfe, 0x35, 0xf6, 0x4d, 0xaa, 0xf1, 0xee);
DEFINE_GUID( GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B );
DEFINE_GUID( GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA );
DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS, 0xaded5e82L, 0xb909, 0x4619, 0x99, 0x49, 0xf5, 0xd7, 0x1d, 0xac, 0x0b, 0xcb);
DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS, 0xf1fbfde2, 0xa960, 0x4165, 0x9f, 0x88, 0x50, 0x66, 0x79, 0x11, 0xce, 0x96);
DEFINE_GUID(GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS, 0x8ffee2c6, 0x2d01, 0x46be, 0xad, 0xb9, 0x39, 0x8a, 0xdd, 0xc5, 0xb4, 0xff);
DEFINE_GUID(GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS, 0xFBD9AA66, 0x9553, 0x4097, 0xBA, 0x44, 0xED, 0x6E, 0x9D, 0x65, 0xEA, 0xB8);
DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 0x47a0, 0x8f, 0x24, 0xc2, 0x8d, 0x93, 0x6f, 0xda, 0x47);
DEFINE_GUID( GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23 );
DEFINE_GUID(GUID_VIDEO_CONSOLE_LOCK_TIMEOUT, 0x8ec4b3a5, 0x6868, 0x48c2, 0xbe, 0x75, 0x4f, 0x30, 0x44, 0xbe, 0x88, 0xa7);
DEFINE_GUID(GUID_ADVANCED_COLOR_QUALITY_BIAS, 0x684c3e69, 0xa4f7, 0x4014, 0x87, 0x54, 0xd4, 0x51, 0x79, 0xa5, 0x61, 0x67);
DEFINE_GUID(GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP, 0x8619b916, 0xe004, 0x4dd8, 0x9b, 0x66, 0xda, 0xe8, 0x6f, 0x80, 0x66, 0x98);
DEFINE_GUID(GUID_NON_ADAPTIVE_INPUT_TIMEOUT, 0x5adbbfbc, 0x74e, 0x4da1, 0xba, 0x38, 0xdb, 0x8b, 0x36, 0xb2, 0xc8, 0xf3);
DEFINE_GUID(GUID_ADAPTIVE_INPUT_CONTROLLER_STATE, 0xe98fae9, 0xf45a, 0x4de1, 0xa7, 0x57, 0x60, 0x31, 0xf1, 0x97, 0xf6, 0xea);
DEFINE_GUID( GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42 );
DEFINE_GUID(GUID_DISK_MAX_POWER, 0x51dea550, 0xbb38, 0x4bc4, 0x99, 0x1b, 0xea, 0xcf, 0x37, 0xbe, 0x5e, 0xc8);
DEFINE_GUID( GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E );
DEFINE_GUID( GUID_DISK_IDLE_TIMEOUT, 0x58E39BA8, 0xB8E6, 0x4EF6, 0x90, 0xD0, 0x89, 0xAE, 0x32, 0xB2, 0x58, 0xD6 );
DEFINE_GUID( GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63 );
DEFINE_GUID( GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67 );
DEFINE_GUID(GUID_DISK_NVME_NOPPME, 0xfc7372b6, 0xab2d, 0x43ee, 0x87, 0x97, 0x15, 0xe9, 0x84, 0x1f, 0x2c, 0xca);
DEFINE_GUID( GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20 );
DEFINE_GUID( GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70 );
DEFINE_GUID( GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA );
DEFINE_GUID( GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0 );
DEFINE_GUID( GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64 );
DEFINE_GUID( GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E );
DEFINE_GUID( GUID_CRITICAL_POWER_TRANSITION, 0xB7A27025, 0xE569, 0x46c2, 0xA5, 0x04, 0x2B, 0x96, 0xCA, 0xD2, 0x25, 0xA1);
DEFINE_GUID( GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0 );
DEFINE_GUID( GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87 );
DEFINE_GUID( GUID_USER_PRESENCE_PREDICTION, 0x82011705, 0xfb95, 0x4d46, 0x8d, 0x35, 0x40, 0x42, 0xb1, 0xd2, 0xd, 0xef );
DEFINE_GUID( GUID_STANDBY_BUDGET_GRACE_PERIOD, 0x60c07fe1, 0x0556, 0x45cf, 0x99, 0x03, 0xd5, 0x6e, 0x32, 0x21, 0x2, 0x42 );
DEFINE_GUID( GUID_STANDBY_BUDGET_PERCENT, 0x9fe527be, 0x1b70, 0x48da, 0x93, 0x0d, 0x7b, 0xcf, 0x17, 0xb4, 0x49, 0x90 );
DEFINE_GUID( GUID_STANDBY_RESERVE_GRACE_PERIOD, 0xc763ee92, 0x71e8, 0x4127, 0x84, 0xeb, 0xf6, 0xed, 0x04, 0x3a, 0x3e, 0x3d );
DEFINE_GUID( GUID_STANDBY_RESERVE_TIME, 0x468FE7E5, 0x1158, 0x46EC, 0x88, 0xbc, 0x5b, 0x96, 0xc9, 0xe4, 0x4f, 0xd0 );
DEFINE_GUID(GUID_STANDBY_RESET_PERCENT, 0x49cb11a5, 0x56e2, 0x4afb, 0x9d, 0x38, 0x3d, 0xf4, 0x78, 0x72, 0xe2, 0x1b);
DEFINE_GUID(GUID_HUPR_ADAPTIVE_AWAY_DISPLAY_TIMEOUT, 0x0A7D6AB6, 0xAC83, 0x4AD1, 0x82, 0x82, 0xEC, 0xA5, 0xB5, 0x83, 0x08, 0xF3);
DEFINE_GUID(GUID_HUPR_ADAPTIVE_INATTENTIVE_DIM_TIMEOUT, 0xCF8C6097, 0x12B8, 0x4279, 0xBB, 0xDD, 0x44, 0x60, 0x1E, 0xE5, 0x20, 0x9D);
DEFINE_GUID(GUID_HUPR_ADAPTIVE_INATTENTIVE_DISPLAY_TIMEOUT, 0xEE16691E, 0x6AB3, 0x4619, 0xBB, 0x48, 0x1C, 0x77, 0xC9, 0x35, 0x7E, 0x5A);
DEFINE_GUID(GUID_HUPR_ADAPTIVE_AWAY_DIM_TIMEOUT, 0xA79C8E0E, 0xF271, 0x482D, 0x8F, 0x8A, 0x5D, 0xB9, 0xA1, 0x83, 0x12, 0xDE);
DEFINE_GUID( GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab );
DEFINE_GUID( GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D );
DEFINE_GUID( GUID_LEGACY_RTC_MITIGATION, 0x1A34BDC3, 0x7E6B, 0x442E, 0xA9, 0xD0, 0x64, 0xB6, 0xEF, 0x37, 0x8E, 0x84 );
DEFINE_GUID( GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2 );
DEFINE_GUID( GUID_POWER_SAVING_STATUS, 0xe00958c0, 0xc213, 0x4ace, 0xac, 0x77, 0xfe, 0xcc, 0xed, 0x2e, 0xee, 0xa5);
DEFINE_GUID( GUID_ENERGY_SAVER_SUBGROUP, 0xDE830923, 0xA562, 0x41AF, 0xA0, 0x86, 0xE3, 0xA2, 0xC6, 0xBA, 0xD2, 0xDA );
DEFINE_GUID( GUID_ENERGY_SAVER_BATTERY_THRESHOLD, 0xE69653CA, 0xCF7F, 0x4F05, 0xAA, 0x73, 0xCB, 0x83, 0x3F, 0xA9, 0x0A, 0xD4 );
DEFINE_GUID( GUID_ENERGY_SAVER_BRIGHTNESS, 0x13D09884, 0xF74E, 0x474A, 0xA8, 0x52, 0xB6, 0xBD, 0xE8, 0xAD, 0x03, 0xA8 );
DEFINE_GUID( GUID_ENERGY_SAVER_POLICY, 0x5c5bb349, 0xad29, 0x4ee2, 0x9d, 0xb, 0x2b, 0x25, 0x27, 0xf, 0x7a, 0x81 );
DEFINE_GUID( GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47 );
DEFINE_GUID( GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80 );
DEFINE_GUID( GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB );
DEFINE_GUID( GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5 );
DEFINE_GUID( GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36 );
DEFINE_GUID( GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4 );
DEFINE_GUID( GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65 );
DEFINE_GUID( GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3 );
DEFINE_GUID( GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00 );
DEFINE_GUID( GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36 );
DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC );
DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MAXIMUM_1, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xED );
DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C );
DEFINE_GUID( GUID_PROCESSOR_THROTTLE_MINIMUM_1, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4D );
DEFINE_GUID(GUID_PROCESSOR_FREQUENCY_LIMIT,
0x75b0ae3f, 0xbce0, 0x45a7, 0x8c, 0x89, 0xc9, 0x61, 0x1c, 0x25, 0xe1, 0x00);
DEFINE_GUID(GUID_PROCESSOR_FREQUENCY_LIMIT_1,
0x75b0ae3f, 0xbce0, 0x45a7, 0x8c, 0x89, 0xc9, 0x61, 0x1c, 0x25, 0xe1, 0x01);
DEFINE_GUID( GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb );
DEFINE_GUID( GUID_PROCESSOR_IDLESTATE_POLICY, 0x68f262a7, 0xf621, 0x4069, 0xb9, 0xa5, 0x48, 0x74, 0x16, 0x9b, 0xe2, 0x3c);
DEFINE_GUID( GUID_PROCESSOR_PERFSTATE_POLICY, 0xBBDC3814, 0x18E9, 0x4463, 0x8A, 0x55, 0xD1, 0x97, 0x32, 0x7C, 0x45, 0xC0);
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d );
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_THRESHOLD_1, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5e );
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6 );
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_THRESHOLD_1, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa7 );
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_POLICY, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x18);
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_POLICY_1, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x19);
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_POLICY, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc6);
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_POLICY_1, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc7);
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_TIME, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xaa);
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_TIME_1, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xab);
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_TIME, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc8);
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_TIME_1, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc9);
DEFINE_GUID( GUID_PROCESSOR_PERF_TIME_CHECK, 0x4d2b0152, 0x7d5c, 0x498b, 0x88, 0xe2, 0x34, 0x34, 0x53, 0x92, 0xa2, 0xc5);
DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_POLICY,
0x45bcc044, 0xd885, 0x43e2, 0x86, 0x5, 0xee, 0xe, 0xc6, 0xe9, 0x6b, 0x59);
DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_MODE,
0xbe337238, 0xd82, 0x4146, 0xa9, 0x60, 0x4f, 0x37, 0x49, 0xd4, 0x70, 0xc7);
DEFINE_GUID(GUID_PROCESSOR_PERF_AUTONOMOUS_MODE,
0x8baa4a8a, 0x14c6, 0x4451, 0x8e, 0x8b, 0x14, 0xbd, 0xbd, 0x19, 0x75, 0x37);
DEFINE_GUID(GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE,
0x36687f9e, 0xe3a5, 0x4dbf, 0xb1, 0xdc, 0x15, 0xeb, 0x38, 0x1c, 0x68, 0x63);
DEFINE_GUID(GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE_1,
0x36687f9e, 0xe3a5, 0x4dbf, 0xb1, 0xdc, 0x15, 0xeb, 0x38, 0x1c, 0x68, 0x64);
DEFINE_GUID(GUID_PROCESSOR_PERF_AUTONOMOUS_ACTIVITY_WINDOW,
0xcfeda3d0, 0x7697, 0x4566, 0xa9, 0x22, 0xa9, 0x8, 0x6c, 0xd4, 0x9d, 0xfa);
DEFINE_GUID(GUID_PROCESSOR_DUTY_CYCLING,
0x4e4450b3, 0x6179, 0x4e91, 0xb8, 0xf1, 0x5b, 0xb9, 0x93, 0x8f, 0x81, 0xa1);
DEFINE_GUID( GUID_PROCESSOR_IDLE_ALLOW_SCALING, 0x6c2993b0, 0x8f48, 0x481f, 0xbc, 0xc6, 0x0, 0xdd, 0x27, 0x42, 0xaa, 0x6);
DEFINE_GUID( GUID_PROCESSOR_IDLE_DISABLE, 0x5d76a2ca, 0xe8c0, 0x402f, 0xa1, 0x33, 0x21, 0x58, 0x49, 0x2d, 0x58, 0xad);
DEFINE_GUID( GUID_PROCESSOR_IDLE_STATE_MAXIMUM, 0x9943e905, 0x9a30, 0x4ec1, 0x9b, 0x99, 0x44, 0xdd, 0x3b, 0x76, 0xf7, 0xa2);
DEFINE_GUID( GUID_PROCESSOR_IDLE_TIME_CHECK, 0xc4581c31, 0x89ab, 0x4597, 0x8e, 0x2b, 0x9c, 0x9c, 0xab, 0x44, 0xe, 0x6b);
DEFINE_GUID( GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD, 0x4b92d758, 0x5a24, 0x4851, 0xa4, 0x70, 0x81, 0x5d, 0x78, 0xae, 0xe1, 0x19);
DEFINE_GUID( GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD, 0x7b224883, 0xb3cc, 0x4d79, 0x81, 0x9f, 0x83, 0x74, 0x15, 0x2c, 0xbe, 0x7c);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1 );
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD, 0x68dd2f27, 0xa4ce, 0x4e11, 0x84, 0x87, 0x37, 0x94, 0xe4, 0x13, 0x5d, 0xfa);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY, 0xc7be0679, 0x2817, 0x4d69, 0x9d, 0x02, 0x51, 0x9a, 0x53, 0x7e, 0xd0, 0xc6);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY, 0x71021b41, 0xc749, 0x4d21, 0xbe, 0x74, 0xa0, 0x0f, 0x33, 0x5d, 0x58, 0x2b);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MAX_CORES, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x28);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MAX_CORES_1, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x29);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MIN_CORES, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x83);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_MIN_CORES_1, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x84);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME, 0x2ddd5a84, 0x5a71, 0x437e, 0x91, 0x2a, 0xdb, 0x0b, 0x8c, 0x78, 0x87, 0x32);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME, 0xdfd10d17, 0xd5eb, 0x45dd, 0x87, 0x7a, 0x9a, 0x34, 0xdd, 0xd1, 0x5c, 0x82);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR, 0x8f7b45e3, 0xc393, 0x480a, 0x87, 0x8c, 0xf6, 0x7a, 0xc3, 0xd0, 0x70, 0x82);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD, 0x5b33697b, 0xe89d, 0x4d38, 0xaa, 0x46, 0x9e, 0x7d, 0xfb, 0x7c, 0xd2, 0xf9);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING, 0xe70867f1, 0xfa2f, 0x4f4e, 0xae, 0xa1, 0x4d, 0x8a, 0x0b, 0xa2, 0x3b, 0x20);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR, 0x1299023c, 0xbc28, 0x4f0a, 0x81, 0xec, 0xd3, 0x29, 0x5a, 0x8d, 0x81, 0x5d);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD, 0x9ac18e92, 0xaa3c, 0x4e27, 0xb3, 0x07, 0x01, 0xae, 0x37, 0x30, 0x71, 0x29);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING, 0x8809c2d8, 0xb155, 0x42d4, 0xbc, 0xda, 0x0d, 0x34, 0x56, 0x51, 0xb1, 0xdb);
DEFINE_GUID( GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD, 0x943c8cb6, 0x6f93, 0x4227, 0xad, 0x87, 0xe9, 0xa3, 0xfe, 0xec, 0x08, 0xd1);
DEFINE_GUID( GUID_PROCESSOR_PARKING_CORE_OVERRIDE, 0xa55612aa, 0xf624, 0x42c6, 0xa4, 0x43, 0x73, 0x97, 0xd0, 0x64, 0xc0, 0x4f);
DEFINE_GUID( GUID_PROCESSOR_PARKING_PERF_STATE, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2b);
DEFINE_GUID( GUID_PROCESSOR_PARKING_PERF_STATE_1, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2c);
DEFINE_GUID( GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD, 0x2430ab6f, 0xa520, 0x44a2, 0x96, 0x01, 0xf7, 0xf2, 0x3b, 0x51, 0x34, 0xb1);
DEFINE_GUID( GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD, 0xf735a673, 0x2066, 0x4f80, 0xa0, 0xc5, 0xdd, 0xee, 0x0c, 0xf1, 0xbf, 0x5d);
DEFINE_GUID( GUID_PROCESSOR_PARKING_DISTRIBUTION_THRESHOLD, 0x4bdaf4e9, 0xd103, 0x46d7, 0xa5, 0xf0, 0x62, 0x80, 0x12, 0x16, 0x16, 0xef);
DEFINE_GUID(GUID_PROCESSOR_SOFT_PARKING_LATENCY,
0x97cfac41, 0x2217, 0x47eb, 0x99, 0x2d, 0x61, 0x8b, 0x19, 0x77, 0xc9, 0x7);
DEFINE_GUID( GUID_PROCESSOR_PERF_HISTORY, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x5f);
DEFINE_GUID( GUID_PROCESSOR_PERF_HISTORY_1, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x60);
DEFINE_GUID( GUID_PROCESSOR_PERF_INCREASE_HISTORY, 0x99b3ef01, 0x752f, 0x46a1, 0x80, 0xfb, 0x77, 0x30, 0x1, 0x1f, 0x23, 0x54);
DEFINE_GUID( GUID_PROCESSOR_PERF_DECREASE_HISTORY, 0x300f6f8, 0xabd6, 0x45a9, 0xb7, 0x4f, 0x49, 0x8, 0x69, 0x1a, 0x40, 0xb5);
DEFINE_GUID( GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY, 0x77d7f282, 0x8f1a, 0x42cd, 0x85, 0x37, 0x45, 0x45, 0xa, 0x83, 0x9b, 0xe8);
DEFINE_GUID( GUID_PROCESSOR_PERF_LATENCY_HINT, 0x0822df31, 0x9c83, 0x441c, 0xa0, 0x79, 0x0d, 0xe4, 0xcf, 0x00, 0x9c, 0x7b);
DEFINE_GUID( GUID_PROCESSOR_PERF_LATENCY_HINT_PERF, 0x619b7505, 0x3b, 0x4e82, 0xb7, 0xa6, 0x4d, 0xd2, 0x9c, 0x30, 0x9, 0x71);
DEFINE_GUID( GUID_PROCESSOR_PERF_LATENCY_HINT_PERF_1, 0x619b7505, 0x3b, 0x4e82, 0xb7, 0xa6, 0x4d, 0xd2, 0x9c, 0x30, 0x9, 0x72);
DEFINE_GUID( GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK, 0x616cdaa5, 0x695e, 0x4545, 0x97, 0xad, 0x97, 0xdc, 0x2d, 0x1b, 0xdd, 0x88);
DEFINE_GUID( GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK_1, 0x616cdaa5, 0x695e, 0x4545, 0x97, 0xad, 0x97, 0xdc, 0x2d, 0x1b, 0xdd, 0x89);
DEFINE_GUID( GUID_PROCESSOR_MODULE_PARKING_POLICY, 0xb0deaf6b, 0x59c0, 0x4523, 0x8a, 0x45, 0xca, 0x7f, 0x40, 0x24, 0x41, 0x14);
DEFINE_GUID(GUID_PROCESSOR_COMPLEX_PARKING_POLICY, 0xb669a5e9, 0x7b1d, 0x4132, 0xba, 0xaa, 0x49, 0x19, 0xa, 0xbc, 0xfe, 0xb6);
DEFINE_GUID(GUID_PROCESSOR_SMT_UNPARKING_POLICY, 0xb28a6829, 0xc5f7, 0x444e, 0x8f, 0x61, 0x10, 0xe2, 0x4e, 0x85, 0xc5, 0x32);
DEFINE_GUID( GUID_PROCESSOR_DISTRIBUTE_UTILITY, 0xe0007330, 0xf589, 0x42ed, 0xa4, 0x01, 0x5d, 0xdb, 0x10, 0xe7, 0x85, 0xd3);
DEFINE_GUID( GUID_PROCESSOR_HETEROGENEOUS_POLICY, 0x7f2f5cfa, 0xf10c, 0x4823, 0xb5, 0xe1, 0xe9, 0x3a, 0xe8, 0x5f, 0x46, 0xb5);
DEFINE_GUID( GUID_PROCESSOR_HETERO_DECREASE_TIME, 0x7f2492b6, 0x60b1, 0x45e5, 0xae, 0x55, 0x77, 0x3f, 0x8c, 0xd5, 0xca, 0xec);
DEFINE_GUID( GUID_PROCESSOR_HETERO_INCREASE_TIME, 0x4009efa7, 0xe72d, 0x4cba, 0x9e, 0xdf, 0x91, 0x08, 0x4e, 0xa8, 0xcb, 0xc3);
DEFINE_GUID( GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD, 0xf8861c27, 0x95e7, 0x475c, 0x86, 0x5b, 0x13, 0xc0, 0xcb, 0x3f, 0x9d, 0x6b);
DEFINE_GUID( GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD_1, 0xf8861c27, 0x95e7, 0x475c, 0x86, 0x5b, 0x13, 0xc0, 0xcb, 0x3f, 0x9d, 0x6c);
DEFINE_GUID( GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD, 0xb000397d, 0x9b0b, 0x483d, 0x98, 0xc9, 0x69, 0x2a, 0x60, 0x60, 0xcf, 0xbf);
DEFINE_GUID( GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD_1, 0xb000397d, 0x9b0b, 0x483d, 0x98, 0xc9, 0x69, 0x2a, 0x60, 0x60, 0xcf, 0xc0);
DEFINE_GUID( GUID_PROCESSOR_CLASS0_FLOOR_PERF, 0xfddc842b, 0x8364, 0x4edc, 0x94, 0xcf, 0xc1, 0x7f, 0x60, 0xde, 0x1c, 0x80);
DEFINE_GUID( GUID_PROCESSOR_CLASS1_INITIAL_PERF, 0x1facfc65, 0xa930, 0x4bc5, 0x9f, 0x38, 0x50, 0x4e, 0xc0, 0x97, 0xbb, 0xc0);
DEFINE_GUID( GUID_PROCESSOR_THREAD_SCHEDULING_POLICY,
0x93b8b6dc, 0x698, 0x4d1c, 0x9e, 0xe4, 0x6, 0x44, 0xe9, 0x0, 0xc8, 0x5d);
DEFINE_GUID( GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY,
0xbae08b81, 0x2d5e, 0x4688, 0xad, 0x6a, 0x13, 0x24, 0x33, 0x56, 0x65, 0x4b);
DEFINE_GUID( GUID_PROCESSOR_SHORT_THREAD_RUNTIME_THRESHOLD,
0xd92998c2, 0x6a48, 0x49ca, 0x85, 0xd4, 0x8c, 0xce, 0xec, 0x29, 0x45, 0x70);
DEFINE_GUID( GUID_PROCESSOR_SHORT_THREAD_ARCH_CLASS_UPPER_THRESHOLD,
0x828423eb, 0x8662, 0x4344, 0x90, 0xf7, 0x52, 0xbf, 0x15, 0x87, 0x0f, 0x5a);
DEFINE_GUID( GUID_PROCESSOR_SHORT_THREAD_ARCH_CLASS_LOWER_THRESHOLD,
0x53824d46, 0x87bd, 0x4739, 0xaa, 0x1b, 0xaa, 0x79, 0x3f, 0xac, 0x36, 0xd6);
DEFINE_GUID( GUID_PROCESSOR_LONG_THREAD_ARCH_CLASS_UPPER_THRESHOLD,
0xbf903d33, 0x9d24, 0x49d3, 0xa4, 0x68, 0xe6, 0x5e, 0x03, 0x25, 0x04, 0x6a);
DEFINE_GUID( GUID_PROCESSOR_LONG_THREAD_ARCH_CLASS_LOWER_THRESHOLD,
0x43f278bc, 0x0f8a, 0x46d0, 0x8b, 0x31, 0x9a, 0x23, 0xe6, 0x15, 0xd7, 0x13);
DEFINE_GUID( GUID_SYSTEM_COOLING_POLICY,
0x94D3A615, 0xA899, 0x4AC5, 0xAE, 0x2B, 0xE4, 0xD8, 0xF6, 0x34, 0x36, 0x7F);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD,
0x38b8383d, 0xcce0, 0x4c79, 0x9e, 0x3e, 0x56, 0xa4, 0xf1, 0x7c, 0xc4, 0x80);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD_1,
0x38b8383d, 0xcce0, 0x4c79, 0x9e, 0x3e, 0x56, 0xa4, 0xf1, 0x7c, 0xc4, 0x81);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD,
0x3d44e256, 0x7222, 0x4415, 0xa9, 0xed, 0x9c, 0x45, 0xfa, 0x3d, 0xd8, 0x30);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD_1,
0x3d44e256, 0x7222, 0x4415, 0xa9, 0xed, 0x9c, 0x45, 0xfa, 0x3d, 0xd8, 0x31);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME,
0xf565999f, 0x3fb0, 0x411a, 0xa2, 0x26, 0x3f, 0x1, 0x98, 0xde, 0xc1, 0x30);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME_1,
0xf565999f, 0x3fb0, 0x411a, 0xa2, 0x26, 0x3f, 0x1, 0x98, 0xde, 0xc1, 0x31);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME,
0x3d915188, 0x7830, 0x49ae, 0xa7, 0x9a, 0xf, 0xb0, 0xa1, 0xe5, 0xa2, 0x0);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME_1,
0x3d915188, 0x7830, 0x49ae, 0xa7, 0x9a, 0xf, 0xb0, 0xa1, 0xe5, 0xa2, 0x1);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING,
0x4427c73b, 0x9756, 0x4a5c, 0xb8, 0x4b, 0xc7, 0xbd, 0xa7, 0x9c, 0x73, 0x20);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING_1,
0x4427c73b, 0x9756, 0x4a5c, 0xb8, 0x4b, 0xc7, 0xbd, 0xa7, 0x9c, 0x73, 0x21);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR,
0xce8e92ee, 0x6a86, 0x4572, 0xbf, 0xe0, 0x20, 0xc2, 0x1d, 0x3, 0xcd, 0x40);
DEFINE_GUID(GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR_1,
0xce8e92ee, 0x6a86, 0x4572, 0xbf, 0xe0, 0x20, 0xc2, 0x1d, 0x3, 0xcd, 0x41);
DEFINE_GUID( GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51 );
DEFINE_GUID( GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19 );
DEFINE_GUID( GUID_CONNECTIVITY_IN_STANDBY, 0xF15576E8, 0x98B7, 0x4186, 0xB9, 0x44, 0xEA, 0xFA, 0x66, 0x44, 0x02, 0xD9 );
DEFINE_GUID( GUID_DISCONNECTED_STANDBY_MODE, 0x68AFB2D9, 0xEE95, 0x47A8, 0x8F, 0x50, 0x41, 0x15, 0x08, 0x80, 0x73, 0xB1 );
DEFINE_GUID( GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48 );
DEFINE_GUID( GUID_LIDSWITCH_STATE_CHANGE, 0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3 );
DEFINE_GUID( GUID_LIDSWITCH_STATE_RELIABILITY, 0xAE4C4FF1, 0xD361, 0x43F4, 0x80, 0xAA, 0xBB, 0xB6, 0xEB, 0x03, 0xDE, 0x94);
DEFINE_GUID( GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1 );
DEFINE_GUID( GUID_BATTERY_COUNT, 0x7d263f15, 0xfca4, 0x49e5, 0x85, 0x4b, 0xa9, 0xf2, 0xbf, 0xbd, 0x5c, 0x24 );
DEFINE_GUID( GUID_GLOBAL_USER_PRESENCE, 0x786e8a1d, 0xb427, 0x4344, 0x92, 0x7, 0x9, 0xe7, 0xb, 0xdc, 0xbe, 0xa9 );
DEFINE_GUID( GUID_SESSION_DISPLAY_STATUS, 0x2b84c20e, 0xad23, 0x4ddf, 0x93, 0xdb, 0x5, 0xff, 0xbd, 0x7e, 0xfc, 0xa5 );
DEFINE_GUID( GUID_SESSION_USER_PRESENCE, 0x3c0f4548, 0xc03f, 0x4c4d, 0xb9, 0xf2, 0x23, 0x7e, 0xde, 0x68, 0x63, 0x76 );
DEFINE_GUID( GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1 );
DEFINE_GUID( GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E );
DEFINE_GUID( GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA );
DEFINE_GUID( GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20 );
DEFINE_GUID( GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5 );
DEFINE_GUID( GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6 );
DEFINE_GUID(GUID_INTSTEER_SUBGROUP,
0x48672f38, 0x7a9a, 0x4bb2, 0x8b, 0xf8, 0x3d, 0x85, 0xbe, 0x19, 0xde, 0x4e);
DEFINE_GUID(GUID_INTSTEER_MODE,
0x2bfc24f9, 0x5ea2, 0x4801, 0x82, 0x13, 0x3d, 0xba, 0xe0, 0x1a, 0xa3, 0x9d);
DEFINE_GUID(GUID_INTSTEER_LOAD_PER_PROC_TRIGGER,
0x73cde64d, 0xd720, 0x4bb2, 0xa8, 0x60, 0xc7, 0x55, 0xaf, 0xe7, 0x7e, 0xf2);
DEFINE_GUID(GUID_INTSTEER_TIME_UNPARK_TRIGGER,
0xd6ba4903, 0x386f, 0x4c2c, 0x8a, 0xdb, 0x5c, 0x21, 0xb3, 0x32, 0x8d, 0x25);
DEFINE_GUID(GUID_GRAPHICS_SUBGROUP, 0x5fb4938d, 0x1ee8, 0x4b0f, 0x9a, 0x3c, 0x50, 0x36, 0xb0, 0xab, 0x99, 0x5c);
DEFINE_GUID(GUID_GPU_PREFERENCE_POLICY, 0xdd848b2a, 0x8a5d, 0x4451, 0x9a, 0xe2, 0x39, 0xcd, 0x41, 0x65, 0x8f, 0x6c);
DEFINE_GUID(GUID_MIXED_REALITY_MODE,
0x1e626b4e, 0xcf04, 0x4f8d, 0x9c, 0xc7, 0xc9, 0x7c, 0x5b, 0xf, 0x23, 0x91);
DEFINE_GUID(GUID_SPR_ACTIVE_SESSION_CHANGE,
0xe24ce38, 0xc393, 0x4742, 0xbd, 0xb1, 0x74, 0x4f, 0x4b, 0x9e, 0xe0, 0x8e);
typedef enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified = 0,
PowerSystemWorking = 1,
PowerSystemSleeping1 = 2,
PowerSystemSleeping2 = 3,
PowerSystemSleeping3 = 4,
PowerSystemHibernate = 5,
PowerSystemShutdown = 6,
PowerSystemMaximum = 7
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
typedef enum {
PowerActionNone = 0,
PowerActionReserved,
PowerActionSleep,
PowerActionHibernate,
PowerActionShutdown,
PowerActionShutdownReset,
PowerActionShutdownOff,
PowerActionWarmEject,
PowerActionDisplayOff
} POWER_ACTION, *PPOWER_ACTION;
typedef enum _DEVICE_POWER_STATE {
PowerDeviceUnspecified = 0,
PowerDeviceD0,
PowerDeviceD1,
PowerDeviceD2,
PowerDeviceD3,
PowerDeviceMaximum
} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
typedef enum _MONITOR_DISPLAY_STATE {
PowerMonitorOff = 0,
PowerMonitorOn,
PowerMonitorDim
} MONITOR_DISPLAY_STATE, *PMONITOR_DISPLAY_STATE;
typedef enum _USER_ACTIVITY_PRESENCE {
PowerUserPresent = 0,
PowerUserNotPresent,
PowerUserInactive,
PowerUserMaximum,
PowerUserInvalid = PowerUserMaximum
} USER_ACTIVITY_PRESENCE, *PUSER_ACTIVITY_PRESENCE;
typedef DWORD EXECUTION_STATE, *PEXECUTION_STATE;
typedef enum {
LT_DONT_CARE,
LT_LOWEST_LATENCY
} LATENCY_TIME;
typedef enum _POWER_REQUEST_TYPE {
PowerRequestDisplayRequired,
PowerRequestSystemRequired,
PowerRequestAwayModeRequired,
PowerRequestExecutionRequired
} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE;
typedef struct CM_Power_Data_s {
DWORD PD_Size;
DEVICE_POWER_STATE PD_MostRecentPowerState;
DWORD PD_Capabilities;
DWORD PD_D1Latency;
DWORD PD_D2Latency;
DWORD PD_D3Latency;
DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM];
SYSTEM_POWER_STATE PD_DeepestSystemWake;
} CM_POWER_DATA, *PCM_POWER_DATA;
typedef enum {
SystemPowerPolicyAc,
SystemPowerPolicyDc,
VerifySystemPolicyAc,
VerifySystemPolicyDc,
SystemPowerCapabilities,
SystemBatteryState,
SystemPowerStateHandler,
ProcessorStateHandler,
SystemPowerPolicyCurrent,
AdministratorPowerPolicy,
SystemReserveHiberFile,
ProcessorInformation,
SystemPowerInformation,
ProcessorStateHandler2,
LastWakeTime,
LastSleepTime,
SystemExecutionState,
SystemPowerStateNotifyHandler,
ProcessorPowerPolicyAc,
ProcessorPowerPolicyDc,
VerifyProcessorPowerPolicyAc,
VerifyProcessorPowerPolicyDc,
ProcessorPowerPolicyCurrent,
SystemPowerStateLogging,
SystemPowerLoggingEntry,
SetPowerSettingValue,
NotifyUserPowerSetting,
PowerInformationLevelUnused0,
SystemMonitorHiberBootPowerOff,
SystemVideoState,
TraceApplicationPowerMessage,
TraceApplicationPowerMessageEnd,
ProcessorPerfStates,
ProcessorIdleStates,
ProcessorCap,
SystemWakeSource,
SystemHiberFileInformation,
TraceServicePowerMessage,
ProcessorLoad,
PowerShutdownNotification,
MonitorCapabilities,
SessionPowerInit,
SessionDisplayState,
PowerRequestCreate,
PowerRequestAction,
GetPowerRequestList,
ProcessorInformationEx,
NotifyUserModeLegacyPowerEvent,
GroupPark,
ProcessorIdleDomains,
WakeTimerList,
SystemHiberFileSize,
ProcessorIdleStatesHv,
ProcessorPerfStatesHv,
ProcessorPerfCapHv,
ProcessorSetIdle,
LogicalProcessorIdling,
UserPresence,
PowerSettingNotificationName,
GetPowerSettingValue,
IdleResiliency,
SessionRITState,
SessionConnectNotification,
SessionPowerCleanup,
SessionLockState,
SystemHiberbootState,
PlatformInformation,
PdcInvocation,
MonitorInvocation,
FirmwareTableInformationRegistered,
SetShutdownSelectedTime,
SuspendResumeInvocation,
PlmPowerRequestCreate,
ScreenOff,
CsDeviceNotification,
PlatformRole,
LastResumePerformance,
DisplayBurst,
ExitLatencySamplingPercentage,
RegisterSpmPowerSettings,
PlatformIdleStates,
ProcessorIdleVeto,
PlatformIdleVeto,
SystemBatteryStatePrecise,
ThermalEvent,
PowerRequestActionInternal,
BatteryDeviceState,
PowerInformationInternal,
ThermalStandby,
SystemHiberFileType,
PhysicalPowerButtonPress,
QueryPotentialDripsConstraint,
EnergyTrackerCreate,
EnergyTrackerQuery,
UpdateBlackBoxRecorder,
SessionAllowExternalDmaDevices,
SendSuspendResumeNotification,
BlackBoxRecorderDirectAccessBuffer,
PowerInformationLevelMaximum
} POWER_INFORMATION_LEVEL;
typedef enum {
UserNotPresent = 0,
UserPresent = 1,
UserUnknown = 0xff
} POWER_USER_PRESENCE_TYPE, *PPOWER_USER_PRESENCE_TYPE;
typedef struct _POWER_USER_PRESENCE {
POWER_USER_PRESENCE_TYPE UserPresence;
} POWER_USER_PRESENCE, *PPOWER_USER_PRESENCE;
typedef struct _POWER_SESSION_CONNECT {
BOOLEAN Connected;
BOOLEAN Console;
} POWER_SESSION_CONNECT, *PPOWER_SESSION_CONNECT;
typedef struct _POWER_SESSION_TIMEOUTS {
DWORD InputTimeout;
DWORD DisplayTimeout;
} POWER_SESSION_TIMEOUTS, *PPOWER_SESSION_TIMEOUTS;
typedef struct _POWER_SESSION_RIT_STATE {
BOOLEAN Active;
DWORD64 LastInputTime;
} POWER_SESSION_RIT_STATE, *PPOWER_SESSION_RIT_STATE;
typedef struct _POWER_SESSION_WINLOGON {
DWORD SessionId;
BOOLEAN Console;
BOOLEAN Locked;
} POWER_SESSION_WINLOGON, *PPOWER_SESSION_WINLOGON;
typedef struct _POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES {
BOOLEAN IsAllowed;
} POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES, *PPOWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES;
typedef struct _POWER_IDLE_RESILIENCY {
DWORD CoalescingTimeout;
DWORD IdleResiliencyPeriod;
} POWER_IDLE_RESILIENCY, *PPOWER_IDLE_RESILIENCY;
typedef enum {
MonitorRequestReasonUnknown,
MonitorRequestReasonPowerButton,
MonitorRequestReasonRemoteConnection,
MonitorRequestReasonScMonitorpower,
MonitorRequestReasonUserInput,
MonitorRequestReasonAcDcDisplayBurst,
MonitorRequestReasonUserDisplayBurst,
MonitorRequestReasonPoSetSystemState,
MonitorRequestReasonSetThreadExecutionState,
MonitorRequestReasonFullWake,
MonitorRequestReasonSessionUnlock,
MonitorRequestReasonScreenOffRequest,
MonitorRequestReasonIdleTimeout,
MonitorRequestReasonPolicyChange,
MonitorRequestReasonSleepButton,
MonitorRequestReasonLid,
MonitorRequestReasonBatteryCountChange,
MonitorRequestReasonGracePeriod,
MonitorRequestReasonPnP,
MonitorRequestReasonDP,
MonitorRequestReasonSxTransition,
MonitorRequestReasonSystemIdle,
MonitorRequestReasonNearProximity,
MonitorRequestReasonThermalStandby,
MonitorRequestReasonResumePdc,
MonitorRequestReasonResumeS4,
MonitorRequestReasonTerminal,
MonitorRequestReasonPdcSignal,
MonitorRequestReasonAcDcDisplayBurstSuppressed,
MonitorRequestReasonSystemStateEntered,
MonitorRequestReasonWinrt,
MonitorRequestReasonUserInputKeyboard,
MonitorRequestReasonUserInputMouse,
MonitorRequestReasonUserInputTouchpad,
MonitorRequestReasonUserInputPen,
MonitorRequestReasonUserInputAccelerometer,
MonitorRequestReasonUserInputHid,
MonitorRequestReasonUserInputPoUserPresent,
MonitorRequestReasonUserInputSessionSwitch,
MonitorRequestReasonUserInputInitialization,
MonitorRequestReasonPdcSignalWindowsMobilePwrNotif,
MonitorRequestReasonPdcSignalWindowsMobileShell,
MonitorRequestReasonPdcSignalHeyCortana,
MonitorRequestReasonPdcSignalHolographicShell,
MonitorRequestReasonPdcSignalFingerprint,
MonitorRequestReasonDirectedDrips,
MonitorRequestReasonDim,
MonitorRequestReasonBuiltinPanel,
MonitorRequestReasonDisplayRequiredUnDim,
MonitorRequestReasonBatteryCountChangeSuppressed,
MonitorRequestReasonResumeModernStandby,
MonitorRequestReasonTerminalInit,
MonitorRequestReasonPdcSignalSensorsHumanPresence,
MonitorRequestReasonBatteryPreCritical,
MonitorRequestReasonUserInputTouch,
MonitorRequestReasonMax
} POWER_MONITOR_REQUEST_REASON;
typedef enum _POWER_MONITOR_REQUEST_TYPE {
MonitorRequestTypeOff,
MonitorRequestTypeOnAndPresent,
MonitorRequestTypeToggleOn
} POWER_MONITOR_REQUEST_TYPE;
typedef struct _POWER_MONITOR_INVOCATION {
BOOLEAN Console;
POWER_MONITOR_REQUEST_REASON RequestReason;
} POWER_MONITOR_INVOCATION, *PPOWER_MONITOR_INVOCATION;
typedef struct _RESUME_PERFORMANCE {
DWORD PostTimeMs;
ULONGLONG TotalResumeTimeMs;
ULONGLONG ResumeCompleteTimestamp;
} RESUME_PERFORMANCE, *PRESUME_PERFORMANCE;
typedef enum {
PoAc,
PoDc,
PoHot,
PoConditionMaximum
} SYSTEM_POWER_CONDITION;
typedef struct {
DWORD Version;
GUID Guid;
SYSTEM_POWER_CONDITION PowerCondition;
DWORD DataLength;
BYTE Data[ANYSIZE_ARRAY];
} SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE;
typedef struct {
GUID Guid;
} NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING;
typedef struct _APPLICATIONLAUNCH_SETTING_VALUE {
LARGE_INTEGER ActivationTime;
DWORD Flags;
DWORD ButtonInstanceID;
} APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE;
typedef enum _POWER_PLATFORM_ROLE {
PlatformRoleUnspecified = 0,
PlatformRoleDesktop,
PlatformRoleMobile,
PlatformRoleWorkstation,
PlatformRoleEnterpriseServer,
PlatformRoleSOHOServer,
PlatformRoleAppliancePC,
PlatformRolePerformanceServer,
PlatformRoleSlate,
PlatformRoleMaximum
} POWER_PLATFORM_ROLE, *PPOWER_PLATFORM_ROLE;
typedef struct _POWER_PLATFORM_INFORMATION {
BOOLEAN AoAc;
} POWER_PLATFORM_INFORMATION, *PPOWER_PLATFORM_INFORMATION;
typedef enum POWER_SETTING_ALTITUDE {
ALTITUDE_GROUP_POLICY,
ALTITUDE_USER,
ALTITUDE_RUNTIME_OVERRIDE,
ALTITUDE_PROVISIONING,
ALTITUDE_OEM_CUSTOMIZATION,
ALTITUDE_INTERNAL_OVERRIDE,
ALTITUDE_OS_DEFAULT,
} POWER_SETTING_ALTITUDE, *PPOWER_SETTING_ALTITUDE;
typedef struct {
DWORD Granularity;
DWORD Capacity;
} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
typedef struct {
DWORD Frequency;
DWORD Flags;
DWORD PercentFrequency;
} PPM_WMI_LEGACY_PERFSTATE, *PPPM_WMI_LEGACY_PERFSTATE;
typedef struct {
DWORD Latency;
DWORD Power;
DWORD TimeCheck;
BYTE PromotePercent;
BYTE DemotePercent;
BYTE StateType;
BYTE Reserved;
DWORD StateFlags;
DWORD Context;
DWORD IdleHandler;
DWORD Reserved1;
} PPM_WMI_IDLE_STATE, *PPPM_WMI_IDLE_STATE;
typedef struct {
DWORD Type;
DWORD Count;
DWORD TargetState;
DWORD OldState;
DWORD64 TargetProcessors;
PPM_WMI_IDLE_STATE State[ANYSIZE_ARRAY];
} PPM_WMI_IDLE_STATES, *PPPM_WMI_IDLE_STATES;
typedef struct {
DWORD Type;
DWORD Count;
DWORD TargetState;
DWORD OldState;
PVOID TargetProcessors;
PPM_WMI_IDLE_STATE State[ANYSIZE_ARRAY];
} PPM_WMI_IDLE_STATES_EX, *PPPM_WMI_IDLE_STATES_EX;
typedef struct {
DWORD Frequency;
DWORD Power;
BYTE PercentFrequency;
BYTE IncreaseLevel;
BYTE DecreaseLevel;
BYTE Type;
DWORD IncreaseTime;
DWORD DecreaseTime;
DWORD64 Control;
DWORD64 Status;
DWORD HitCount;
DWORD Reserved1;
DWORD64 Reserved2;
DWORD64 Reserved3;
} PPM_WMI_PERF_STATE, *PPPM_WMI_PERF_STATE;
typedef struct {
DWORD Count;
DWORD MaxFrequency;
DWORD CurrentState;
DWORD MaxPerfState;
DWORD MinPerfState;
DWORD LowestPerfState;
DWORD ThermalConstraint;
BYTE BusyAdjThreshold;
BYTE PolicyType;
BYTE Type;
BYTE Reserved;
DWORD TimerInterval;
DWORD64 TargetProcessors;
DWORD PStateHandler;
DWORD PStateContext;
DWORD TStateHandler;
DWORD TStateContext;
DWORD FeedbackHandler;
DWORD Reserved1;
DWORD64 Reserved2;
PPM_WMI_PERF_STATE State[ANYSIZE_ARRAY];
} PPM_WMI_PERF_STATES, *PPPM_WMI_PERF_STATES;
typedef struct {
DWORD Count;
DWORD MaxFrequency;
DWORD CurrentState;
DWORD MaxPerfState;
DWORD MinPerfState;
DWORD LowestPerfState;
DWORD ThermalConstraint;
BYTE BusyAdjThreshold;
BYTE PolicyType;
BYTE Type;
BYTE Reserved;
DWORD TimerInterval;
PVOID TargetProcessors;
DWORD PStateHandler;
DWORD PStateContext;
DWORD TStateHandler;
DWORD TStateContext;
DWORD FeedbackHandler;
DWORD Reserved1;
DWORD64 Reserved2;
PPM_WMI_PERF_STATE State[ANYSIZE_ARRAY];
} PPM_WMI_PERF_STATES_EX, *PPPM_WMI_PERF_STATES_EX;
typedef struct {
DWORD IdleTransitions;
DWORD FailedTransitions;
DWORD InvalidBucketIndex;
DWORD64 TotalTime;
DWORD IdleTimeBuckets[PROC_IDLE_BUCKET_COUNT];
} PPM_IDLE_STATE_ACCOUNTING, *PPPM_IDLE_STATE_ACCOUNTING;
typedef struct {
DWORD StateCount;
DWORD TotalTransitions;
DWORD ResetCount;
DWORD64 StartTime;
PPM_IDLE_STATE_ACCOUNTING State[ANYSIZE_ARRAY];
} PPM_IDLE_ACCOUNTING, *PPPM_IDLE_ACCOUNTING;
typedef struct {
DWORD64 TotalTimeUs;
DWORD MinTimeUs;
DWORD MaxTimeUs;
DWORD Count;
} PPM_IDLE_STATE_BUCKET_EX, *PPPM_IDLE_STATE_BUCKET_EX;
typedef struct {
DWORD64 TotalTime;
DWORD IdleTransitions;
DWORD FailedTransitions;
DWORD InvalidBucketIndex;
DWORD MinTimeUs;
DWORD MaxTimeUs;
DWORD CancelledTransitions;
PPM_IDLE_STATE_BUCKET_EX IdleTimeBuckets[PROC_IDLE_BUCKET_COUNT_EX];
} PPM_IDLE_STATE_ACCOUNTING_EX, *PPPM_IDLE_STATE_ACCOUNTING_EX;
typedef struct {
DWORD StateCount;
DWORD TotalTransitions;
DWORD ResetCount;
DWORD AbortCount;
DWORD64 StartTime;
_Field_size_(StateCount) PPM_IDLE_STATE_ACCOUNTING_EX State[ANYSIZE_ARRAY];
} PPM_IDLE_ACCOUNTING_EX, *PPPM_IDLE_ACCOUNTING_EX;
DEFINE_GUID(PPM_PERFSTATE_CHANGE_GUID,
0xa5b32ddd, 0x7f39, 0x4abc, 0xb8, 0x92, 0x90, 0xe, 0x43, 0xb5, 0x9e, 0xbb);
DEFINE_GUID(PPM_PERFSTATE_DOMAIN_CHANGE_GUID,
0x995e6b7f, 0xd653, 0x497a, 0xb9, 0x78, 0x36, 0xa3, 0xc, 0x29, 0xbf, 0x1);
DEFINE_GUID(PPM_IDLESTATE_CHANGE_GUID,
0x4838fe4f, 0xf71c, 0x4e51, 0x9e, 0xcc, 0x84, 0x30, 0xa7, 0xac, 0x4c, 0x6c);
DEFINE_GUID(PPM_PERFSTATES_DATA_GUID,
0x5708cc20, 0x7d40, 0x4bf4, 0xb4, 0xaa, 0x2b, 0x01, 0x33, 0x8d, 0x01, 0x26);
DEFINE_GUID(PPM_IDLESTATES_DATA_GUID,
0xba138e10, 0xe250, 0x4ad7, 0x86, 0x16, 0xcf, 0x1a, 0x7a, 0xd4, 0x10, 0xe7);
DEFINE_GUID(PPM_IDLE_ACCOUNTING_GUID,
0xe2a26f78, 0xae07, 0x4ee0, 0xa3, 0x0f, 0xce, 0x54, 0xf5, 0x5a, 0x94, 0xcd);
DEFINE_GUID(PPM_IDLE_ACCOUNTING_EX_GUID,
0xd67abd39, 0x81f8, 0x4a5e, 0x81, 0x52, 0x72, 0xe3, 0x1e, 0xc9, 0x12, 0xee);
DEFINE_GUID(PPM_THERMALCONSTRAINT_GUID,
0xa852c2c8, 0x1a4c, 0x423b, 0x8c, 0x2c, 0xf3, 0x0d, 0x82, 0x93, 0x1a, 0x88);
DEFINE_GUID(PPM_PERFMON_PERFSTATE_GUID,
0x7fd18652, 0xcfe, 0x40d2, 0xb0, 0xa1, 0xb, 0x6, 0x6a, 0x87, 0x75, 0x9e);
DEFINE_GUID(PPM_THERMAL_POLICY_CHANGE_GUID,
0x48f377b8, 0x6880, 0x4c7b, 0x8b, 0xdc, 0x38, 0x1, 0x76, 0xc6, 0x65, 0x4d);
typedef struct {
DWORD State;
DWORD Status;
DWORD Latency;
DWORD Speed;
DWORD Processor;
} PPM_PERFSTATE_EVENT, *PPPM_PERFSTATE_EVENT;
typedef struct {
DWORD State;
DWORD Latency;
DWORD Speed;
DWORD64 Processors;
} PPM_PERFSTATE_DOMAIN_EVENT, *PPPM_PERFSTATE_DOMAIN_EVENT;
typedef struct {
DWORD NewState;
DWORD OldState;
DWORD64 Processors;
} PPM_IDLESTATE_EVENT, *PPPM_IDLESTATE_EVENT;
typedef struct {
DWORD ThermalConstraint;
DWORD64 Processors;
} PPM_THERMALCHANGE_EVENT, *PPPM_THERMALCHANGE_EVENT;
typedef struct {
BYTE Mode;
DWORD64 Processors;
} PPM_THERMAL_POLICY_EVENT, *PPPM_THERMAL_POLICY_EVENT;
typedef struct {
POWER_ACTION Action;
DWORD Flags;
DWORD EventCode;
} POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY;
typedef struct {
BOOLEAN Enable;
BYTE Spare[3];
DWORD BatteryLevel;
POWER_ACTION_POLICY PowerPolicy;
SYSTEM_POWER_STATE MinSystemState;
} SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL;
typedef struct _SYSTEM_POWER_POLICY {
DWORD Revision;
POWER_ACTION_POLICY PowerButton;
POWER_ACTION_POLICY SleepButton;
POWER_ACTION_POLICY LidClose;
SYSTEM_POWER_STATE LidOpenWake;
DWORD Reserved;
POWER_ACTION_POLICY Idle;
DWORD IdleTimeout;
BYTE IdleSensitivity;
BYTE DynamicThrottle;
BYTE Spare2[2];
SYSTEM_POWER_STATE MinSleep;
SYSTEM_POWER_STATE MaxSleep;
SYSTEM_POWER_STATE ReducedLatencySleep;
DWORD WinLogonFlags;
DWORD Spare3;
DWORD DozeS4Timeout;
DWORD BroadcastCapacityResolution;
SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
DWORD VideoTimeout;
BOOLEAN VideoDimDisplay;
DWORD VideoReserved[3];
DWORD SpindownTimeout;
BOOLEAN OptimizeForPower;
BYTE FanThrottleTolerance;
BYTE ForcedThrottle;
BYTE MinThrottle;
POWER_ACTION_POLICY OverThrottled;
} SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY;
typedef struct {
DWORD TimeCheck;
BYTE DemotePercent;
BYTE PromotePercent;
BYTE Spare[2];
} PROCESSOR_IDLESTATE_INFO, *PPROCESSOR_IDLESTATE_INFO;
typedef struct {
WORD Revision;
union {
WORD AsWORD ;
struct {
WORD AllowScaling : 1;
WORD Disabled : 1;
WORD Reserved : 14;
} DUMMYSTRUCTNAME;
} Flags;
DWORD PolicyCount;
PROCESSOR_IDLESTATE_INFO Policy[PROCESSOR_IDLESTATE_POLICY_COUNT];
} PROCESSOR_IDLESTATE_POLICY, *PPROCESSOR_IDLESTATE_POLICY;
typedef struct _PROCESSOR_POWER_POLICY_INFO {
DWORD TimeCheck;
DWORD DemoteLimit;
DWORD PromoteLimit;
BYTE DemotePercent;
BYTE PromotePercent;
BYTE Spare[2];
DWORD AllowDemotion:1;
DWORD AllowPromotion:1;
DWORD Reserved:30;
} PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO;
typedef struct _PROCESSOR_POWER_POLICY {
DWORD Revision;
BYTE DynamicThrottle;
BYTE Spare[3];
DWORD DisableCStates:1;
DWORD Reserved:31;
DWORD PolicyCount;
PROCESSOR_POWER_POLICY_INFO Policy[3];
} PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY;
typedef struct {
DWORD Revision;
BYTE MaxThrottle;
BYTE MinThrottle;
BYTE BusyAdjThreshold;
union {
BYTE Spare;
union {
BYTE AsBYTE ;
struct {
BYTE NoDomainAccounting : 1;
BYTE IncreasePolicy: 2;
BYTE DecreasePolicy: 2;
BYTE Reserved : 3;
} DUMMYSTRUCTNAME;
} Flags;
} DUMMYUNIONNAME;
DWORD TimeCheck;
DWORD IncreaseTime;
DWORD DecreaseTime;
DWORD IncreasePercent;
DWORD DecreasePercent;
} PROCESSOR_PERFSTATE_POLICY, *PPROCESSOR_PERFSTATE_POLICY;
typedef struct _ADMINISTRATOR_POWER_POLICY {
SYSTEM_POWER_STATE MinSleep;
SYSTEM_POWER_STATE MaxSleep;
DWORD MinVideoTimeout;
DWORD MaxVideoTimeout;
DWORD MinSpindownTimeout;
DWORD MaxSpindownTimeout;
} ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY;
typedef enum _HIBERFILE_BUCKET_SIZE {
HiberFileBucket1GB = 0,
HiberFileBucket2GB,
HiberFileBucket4GB,
HiberFileBucket8GB,
HiberFileBucket16GB,
HiberFileBucket32GB,
HiberFileBucketUnlimited,
HiberFileBucketMax
} HIBERFILE_BUCKET_SIZE, *PHIBERFILE_BUCKET_SIZE;
typedef struct _HIBERFILE_BUCKET {
DWORD64 MaxPhysicalMemory;
DWORD PhysicalMemoryPercent[HIBERFILE_TYPE_MAX];
} HIBERFILE_BUCKET, *PHIBERFILE_BUCKET;
typedef struct {
BOOLEAN PowerButtonPresent;
BOOLEAN SleepButtonPresent;
BOOLEAN LidPresent;
BOOLEAN SystemS1;
BOOLEAN SystemS2;
BOOLEAN SystemS3;
BOOLEAN SystemS4;
BOOLEAN SystemS5;
BOOLEAN HiberFilePresent;
BOOLEAN FullWake;
BOOLEAN VideoDimPresent;
BOOLEAN ApmPresent;
BOOLEAN UpsPresent;
BOOLEAN ThermalControl;
BOOLEAN ProcessorThrottle;
BYTE ProcessorMinThrottle;
BYTE ProcessorMaxThrottle;
BOOLEAN FastSystemS4;
BOOLEAN Hiberboot;
BOOLEAN WakeAlarmPresent;
BOOLEAN AoAc;
BOOLEAN DiskSpinDown;
BYTE HiberFileType;
BOOLEAN AoAcConnectivitySupported;
BYTE spare3[6];
BOOLEAN SystemBatteriesPresent;
BOOLEAN BatteriesAreShortTerm;
BATTERY_REPORTING_SCALE BatteryScale[3];
SYSTEM_POWER_STATE AcOnLineWake;
SYSTEM_POWER_STATE SoftLidWake;
SYSTEM_POWER_STATE RtcWake;
SYSTEM_POWER_STATE MinDeviceWakeState;
SYSTEM_POWER_STATE DefaultLowLatencyWake;
} SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES;
typedef struct {
BOOLEAN AcOnLine;
BOOLEAN BatteryPresent;
BOOLEAN Charging;
BOOLEAN Discharging;
BOOLEAN Spare1[3];
BYTE Tag;
DWORD MaxCapacity;
DWORD RemainingCapacity;
DWORD Rate;
DWORD EstimatedTime;
DWORD DefaultAlert1;
DWORD DefaultAlert2;
} SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE;
typedef struct _IMAGE_DOS_HEADER {
WORD e_magic;
WORD e_cblp;
WORD e_cp;
WORD e_crlc;
WORD e_cparhdr;
WORD e_minalloc;
WORD e_maxalloc;
WORD e_ss;
WORD e_sp;
WORD e_csum;
WORD e_ip;
WORD e_cs;
WORD e_lfarlc;
WORD e_ovno;
WORD e_res[4];
WORD e_oemid;
WORD e_oeminfo;
WORD e_res2[10];
LONG e_lfanew;
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
typedef struct _IMAGE_OS2_HEADER {
WORD ne_magic;
CHAR ne_ver;
CHAR ne_rev;
WORD ne_enttab;
WORD ne_cbenttab;
LONG ne_crc;
WORD ne_flags;
WORD ne_autodata;
WORD ne_heap;
WORD ne_stack;
LONG ne_csip;
LONG ne_sssp;
WORD ne_cseg;
WORD ne_cmod;
WORD ne_cbnrestab;
WORD ne_segtab;
WORD ne_rsrctab;
WORD ne_restab;
WORD ne_modtab;
WORD ne_imptab;
LONG ne_nrestab;
WORD ne_cmovent;
WORD ne_align;
WORD ne_cres;
BYTE ne_exetyp;
BYTE ne_flagsothers;
WORD ne_pretthunks;
WORD ne_psegrefbytes;
WORD ne_swaparea;
WORD ne_expver;
} IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER;
typedef struct _IMAGE_VXD_HEADER {
WORD e32_magic;
BYTE e32_border;
BYTE e32_worder;
DWORD e32_level;
WORD e32_cpu;
WORD e32_os;
DWORD e32_ver;
DWORD e32_mflags;
DWORD e32_mpages;
DWORD e32_startobj;
DWORD e32_eip;
DWORD e32_stackobj;
DWORD e32_esp;
DWORD e32_pagesize;
DWORD e32_lastpagesize;
DWORD e32_fixupsize;
DWORD e32_fixupsum;
DWORD e32_ldrsize;
DWORD e32_ldrsum;
DWORD e32_objtab;
DWORD e32_objcnt;
DWORD e32_objmap;
DWORD e32_itermap;
DWORD e32_rsrctab;
DWORD e32_rsrccnt;
DWORD e32_restab;
DWORD e32_enttab;
DWORD e32_dirtab;
DWORD e32_dircnt;
DWORD e32_fpagetab;
DWORD e32_frectab;
DWORD e32_impmod;
DWORD e32_impmodcnt;
DWORD e32_impproc;
DWORD e32_pagesum;
DWORD e32_datapage;
DWORD e32_preload;
DWORD e32_nrestab;
DWORD e32_cbnrestab;
DWORD e32_nressum;
DWORD e32_autodata;
DWORD e32_debuginfo;
DWORD e32_debuglen;
DWORD e32_instpreload;
DWORD e32_instdemand;
DWORD e32_heapsize;
BYTE e32_res3[12];
DWORD e32_winresoff;
DWORD e32_winreslen;
WORD e32_devid;
WORD e32_ddkver;
} IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER;
typedef struct _IMAGE_FILE_HEADER {
WORD Machine;
WORD NumberOfSections;
DWORD TimeDateStamp;
DWORD PointerToSymbolTable;
DWORD NumberOfSymbols;
WORD SizeOfOptionalHeader;
WORD Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
typedef struct _IMAGE_DATA_DIRECTORY {
DWORD VirtualAddress;
DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
typedef struct _IMAGE_OPTIONAL_HEADER {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
DWORD BaseOfData;
DWORD ImageBase;
DWORD SectionAlignment;
DWORD FileAlignment;
WORD MajorOperatingSystemVersion;
WORD MinorOperatingSystemVersion;
WORD MajorImageVersion;
WORD MinorImageVersion;
WORD MajorSubsystemVersion;
WORD MinorSubsystemVersion;
DWORD Win32VersionValue;
DWORD SizeOfImage;
DWORD SizeOfHeaders;
DWORD CheckSum;
WORD Subsystem;
WORD DllCharacteristics;
DWORD SizeOfStackReserve;
DWORD SizeOfStackCommit;
DWORD SizeOfHeapReserve;
DWORD SizeOfHeapCommit;
DWORD LoaderFlags;
DWORD NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
typedef struct _IMAGE_ROM_OPTIONAL_HEADER {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
DWORD BaseOfData;
DWORD BaseOfBss;
DWORD GprMask;
DWORD CprMask[4];
DWORD GpValue;
} IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER;
typedef struct _IMAGE_OPTIONAL_HEADER64 {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
ULONGLONG ImageBase;
DWORD SectionAlignment;
DWORD FileAlignment;
WORD MajorOperatingSystemVersion;
WORD MinorOperatingSystemVersion;
WORD MajorImageVersion;
WORD MinorImageVersion;
WORD MajorSubsystemVersion;
WORD MinorSubsystemVersion;
DWORD Win32VersionValue;
DWORD SizeOfImage;
DWORD SizeOfHeaders;
DWORD CheckSum;
WORD Subsystem;
WORD DllCharacteristics;
ULONGLONG SizeOfStackReserve;
ULONGLONG SizeOfStackCommit;
ULONGLONG SizeOfHeapReserve;
ULONGLONG SizeOfHeapCommit;
DWORD LoaderFlags;
DWORD NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64;
typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER;
typedef struct _IMAGE_NT_HEADERS64 {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER64 OptionalHeader;
} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64;
typedef struct _IMAGE_NT_HEADERS {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
typedef struct _IMAGE_ROM_HEADERS {
IMAGE_FILE_HEADER FileHeader;
IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
} IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS;
typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
typedef struct ANON_OBJECT_HEADER {
WORD Sig1;
WORD Sig2;
WORD Version;
WORD Machine;
DWORD TimeDateStamp;
CLSID ClassID;
DWORD SizeOfData;
} ANON_OBJECT_HEADER;
typedef struct ANON_OBJECT_HEADER_V2 {
WORD Sig1;
WORD Sig2;
WORD Version;
WORD Machine;
DWORD TimeDateStamp;
CLSID ClassID;
DWORD SizeOfData;
DWORD Flags;
DWORD MetaDataSize;
DWORD MetaDataOffset;
} ANON_OBJECT_HEADER_V2;
typedef struct ANON_OBJECT_HEADER_BIGOBJ {
WORD Sig1;
WORD Sig2;
WORD Version;
WORD Machine;
DWORD TimeDateStamp;
CLSID ClassID;
DWORD SizeOfData;
DWORD Flags;
DWORD MetaDataSize;
DWORD MetaDataOffset;
DWORD NumberOfSections;
DWORD PointerToSymbolTable;
DWORD NumberOfSymbols;
} ANON_OBJECT_HEADER_BIGOBJ;
typedef struct _IMAGE_SECTION_HEADER {
BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
union {
DWORD PhysicalAddress;
DWORD VirtualSize;
} Misc;
DWORD VirtualAddress;
DWORD SizeOfRawData;
DWORD PointerToRawData;
DWORD PointerToRelocations;
DWORD PointerToLinenumbers;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
typedef struct _IMAGE_SYMBOL {
union {
BYTE ShortName[8];
struct {
DWORD Short;
DWORD Long;
} Name;
DWORD LongName[2];
} N;
DWORD Value;
SHORT SectionNumber;
WORD Type;
BYTE StorageClass;
BYTE NumberOfAuxSymbols;
} IMAGE_SYMBOL;
typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL;
typedef struct _IMAGE_SYMBOL_EX {
union {
BYTE ShortName[8];
struct {
DWORD Short;
DWORD Long;
} Name;
DWORD LongName[2];
} N;
DWORD Value;
LONG SectionNumber;
WORD Type;
BYTE StorageClass;
BYTE NumberOfAuxSymbols;
} IMAGE_SYMBOL_EX;
typedef IMAGE_SYMBOL_EX UNALIGNED *PIMAGE_SYMBOL_EX;
typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF {
BYTE bAuxType;
BYTE bReserved;
DWORD SymbolTableIndex;
BYTE rgbReserved[12];
} IMAGE_AUX_SYMBOL_TOKEN_DEF;
typedef IMAGE_AUX_SYMBOL_TOKEN_DEF UNALIGNED *PIMAGE_AUX_SYMBOL_TOKEN_DEF;
typedef union _IMAGE_AUX_SYMBOL {
struct {
DWORD TagIndex;
union {
struct {
WORD Linenumber;
WORD Size;
} LnSz;
DWORD TotalSize;
} Misc;
union {
struct {
DWORD PointerToLinenumber;
DWORD PointerToNextFunction;
} Function;
struct {
WORD Dimension[4];
} Array;
} FcnAry;
WORD TvIndex;
} Sym;
struct {
BYTE Name[IMAGE_SIZEOF_SYMBOL];
} File;
struct {
DWORD Length;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD CheckSum;
SHORT Number;
BYTE Selection;
BYTE bReserved;
SHORT HighNumber;
} Section;
IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef;
struct {
DWORD crc;
BYTE rgbReserved[14];
} CRC;
} IMAGE_AUX_SYMBOL;
typedef IMAGE_AUX_SYMBOL UNALIGNED *PIMAGE_AUX_SYMBOL;
typedef union _IMAGE_AUX_SYMBOL_EX {
struct {
DWORD WeakDefaultSymIndex;
DWORD WeakSearchType;
BYTE rgbReserved[12];
} Sym;
struct {
BYTE Name[sizeof(IMAGE_SYMBOL_EX)];
} File;
struct {
DWORD Length;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD CheckSum;
SHORT Number;
BYTE Selection;
BYTE bReserved;
SHORT HighNumber;
BYTE rgbReserved[2];
} Section;
struct{
IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef;
BYTE rgbReserved[2];
} DUMMYSTRUCTNAME;
struct {
DWORD crc;
BYTE rgbReserved[16];
} CRC;
} IMAGE_AUX_SYMBOL_EX;
typedef IMAGE_AUX_SYMBOL_EX UNALIGNED *PIMAGE_AUX_SYMBOL_EX;
typedef enum IMAGE_AUX_SYMBOL_TYPE {
IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1,
} IMAGE_AUX_SYMBOL_TYPE;
typedef struct _IMAGE_RELOCATION {
union {
DWORD VirtualAddress;
DWORD RelocCount;
} DUMMYUNIONNAME;
DWORD SymbolTableIndex;
WORD Type;
} IMAGE_RELOCATION;
typedef IMAGE_RELOCATION UNALIGNED *PIMAGE_RELOCATION;
typedef struct _IMAGE_LINENUMBER {
union {
DWORD SymbolTableIndex;
DWORD VirtualAddress;
} Type;
WORD Linenumber;
} IMAGE_LINENUMBER;
typedef IMAGE_LINENUMBER UNALIGNED *PIMAGE_LINENUMBER;
typedef struct _IMAGE_BASE_RELOCATION {
DWORD VirtualAddress;
DWORD SizeOfBlock;
} IMAGE_BASE_RELOCATION;
typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION;
typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER {
BYTE Name[16];
BYTE Date[12];
BYTE UserID[6];
BYTE GroupID[6];
BYTE Mode[8];
BYTE Size[10];
BYTE EndHeader[2];
} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER;
typedef struct _IMAGE_EXPORT_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD Name;
DWORD Base;
DWORD NumberOfFunctions;
DWORD NumberOfNames;
DWORD AddressOfFunctions;
DWORD AddressOfNames;
DWORD AddressOfNameOrdinals;
} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;
typedef struct _IMAGE_IMPORT_BY_NAME {
WORD Hint;
CHAR Name[1];
} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
typedef struct _IMAGE_THUNK_DATA64 {
union {
ULONGLONG ForwarderString;
ULONGLONG Function;
ULONGLONG Ordinal;
ULONGLONG AddressOfData;
} u1;
} IMAGE_THUNK_DATA64;
typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64;
typedef struct _IMAGE_THUNK_DATA32 {
union {
DWORD ForwarderString;
DWORD Function;
DWORD Ordinal;
DWORD AddressOfData;
} u1;
} IMAGE_THUNK_DATA32;
typedef IMAGE_THUNK_DATA32 * PIMAGE_THUNK_DATA32;
typedef VOID
(NTAPI *PIMAGE_TLS_CALLBACK) (
PVOID DllHandle,
DWORD Reason,
PVOID Reserved
);
typedef struct _IMAGE_TLS_DIRECTORY64 {
ULONGLONG StartAddressOfRawData;
ULONGLONG EndAddressOfRawData;
ULONGLONG AddressOfIndex;
ULONGLONG AddressOfCallBacks;
DWORD SizeOfZeroFill;
union {
DWORD Characteristics;
struct {
DWORD Reserved0 : 20;
DWORD Alignment : 4;
DWORD Reserved1 : 8;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} IMAGE_TLS_DIRECTORY64;
typedef IMAGE_TLS_DIRECTORY64 * PIMAGE_TLS_DIRECTORY64;
typedef struct _IMAGE_TLS_DIRECTORY32 {
DWORD StartAddressOfRawData;
DWORD EndAddressOfRawData;
DWORD AddressOfIndex;
DWORD AddressOfCallBacks;
DWORD SizeOfZeroFill;
union {
DWORD Characteristics;
struct {
DWORD Reserved0 : 20;
DWORD Alignment : 4;
DWORD Reserved1 : 8;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} IMAGE_TLS_DIRECTORY32;
typedef IMAGE_TLS_DIRECTORY32 * PIMAGE_TLS_DIRECTORY32;
typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;
typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA;
typedef IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY;
typedef PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY;
typedef struct _IMAGE_IMPORT_DESCRIPTOR {
union {
DWORD Characteristics;
DWORD OriginalFirstThunk;
} DUMMYUNIONNAME;
DWORD TimeDateStamp;
DWORD ForwarderChain;
DWORD Name;
DWORD FirstThunk;
} IMAGE_IMPORT_DESCRIPTOR;
typedef IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR;
typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
DWORD TimeDateStamp;
WORD OffsetModuleName;
WORD NumberOfModuleForwarderRefs;
} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR;
typedef struct _IMAGE_BOUND_FORWARDER_REF {
DWORD TimeDateStamp;
WORD OffsetModuleName;
WORD Reserved;
} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF;
typedef struct _IMAGE_DELAYLOAD_DESCRIPTOR {
union {
DWORD AllAttributes;
struct {
DWORD RvaBased : 1;
DWORD ReservedAttributes : 31;
} DUMMYSTRUCTNAME;
} Attributes;
DWORD DllNameRVA;
DWORD ModuleHandleRVA;
DWORD ImportAddressTableRVA;
DWORD ImportNameTableRVA;
DWORD BoundImportAddressTableRVA;
DWORD UnloadInformationTableRVA;
DWORD TimeDateStamp;
} IMAGE_DELAYLOAD_DESCRIPTOR, *PIMAGE_DELAYLOAD_DESCRIPTOR;
typedef const IMAGE_DELAYLOAD_DESCRIPTOR *PCIMAGE_DELAYLOAD_DESCRIPTOR;
typedef struct _IMAGE_RESOURCE_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
WORD NumberOfNamedEntries;
WORD NumberOfIdEntries;
} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
union {
struct {
DWORD NameOffset:31;
DWORD NameIsString:1;
} DUMMYSTRUCTNAME;
DWORD Name;
WORD Id;
} DUMMYUNIONNAME;
union {
DWORD OffsetToData;
struct {
DWORD OffsetToDirectory:31;
DWORD DataIsDirectory:1;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME2;
} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
WORD Length;
CHAR NameString[ 1 ];
} IMAGE_RESOURCE_DIRECTORY_STRING, *PIMAGE_RESOURCE_DIRECTORY_STRING;
typedef struct _IMAGE_RESOURCE_DIR_STRING_U {
WORD Length;
WCHAR NameString[ 1 ];
} IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U;
typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
DWORD OffsetToData;
DWORD Size;
DWORD CodePage;
DWORD Reserved;
} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY;
typedef struct _IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
WORD Flags;
WORD Catalog;
DWORD CatalogOffset;
DWORD Reserved;
} IMAGE_LOAD_CONFIG_CODE_INTEGRITY, *PIMAGE_LOAD_CONFIG_CODE_INTEGRITY;
typedef struct _IMAGE_DYNAMIC_RELOCATION_TABLE {
DWORD Version;
DWORD Size;
} IMAGE_DYNAMIC_RELOCATION_TABLE, *PIMAGE_DYNAMIC_RELOCATION_TABLE;
typedef struct _IMAGE_DYNAMIC_RELOCATION32 {
DWORD Symbol;
DWORD BaseRelocSize;
} IMAGE_DYNAMIC_RELOCATION32, *PIMAGE_DYNAMIC_RELOCATION32;
typedef struct _IMAGE_DYNAMIC_RELOCATION64 {
ULONGLONG Symbol;
DWORD BaseRelocSize;
} IMAGE_DYNAMIC_RELOCATION64, *PIMAGE_DYNAMIC_RELOCATION64;
typedef struct _IMAGE_DYNAMIC_RELOCATION32_V2 {
DWORD HeaderSize;
DWORD FixupInfoSize;
DWORD Symbol;
DWORD SymbolGroup;
DWORD Flags;
} IMAGE_DYNAMIC_RELOCATION32_V2, *PIMAGE_DYNAMIC_RELOCATION32_V2;
typedef struct _IMAGE_DYNAMIC_RELOCATION64_V2 {
DWORD HeaderSize;
DWORD FixupInfoSize;
ULONGLONG Symbol;
DWORD SymbolGroup;
DWORD Flags;
} IMAGE_DYNAMIC_RELOCATION64_V2, *PIMAGE_DYNAMIC_RELOCATION64_V2;
typedef IMAGE_DYNAMIC_RELOCATION32 IMAGE_DYNAMIC_RELOCATION;
typedef PIMAGE_DYNAMIC_RELOCATION32 PIMAGE_DYNAMIC_RELOCATION;
typedef IMAGE_DYNAMIC_RELOCATION32_V2 IMAGE_DYNAMIC_RELOCATION_V2;
typedef PIMAGE_DYNAMIC_RELOCATION32_V2 PIMAGE_DYNAMIC_RELOCATION_V2;
typedef struct _IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER {
BYTE PrologueByteCount;
} IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER;
typedef IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER UNALIGNED * PIMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER;
typedef struct _IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER {
DWORD EpilogueCount;
BYTE EpilogueByteCount;
BYTE BranchDescriptorElementSize;
WORD BranchDescriptorCount;
} IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER;
typedef IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER UNALIGNED * PIMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER;
typedef struct _IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION {
DWORD PageRelativeOffset : 12;
DWORD IndirectCall : 1;
DWORD IATIndex : 19;
} IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
typedef IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
typedef struct _IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION {
WORD PageRelativeOffset : 12;
WORD IndirectCall : 1;
WORD RexWPrefix : 1;
WORD CfgCheck : 1;
WORD Reserved : 1;
} IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
typedef IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
typedef struct _IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION {
WORD PageRelativeOffset : 12;
WORD RegisterNumber : 4;
} IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION;
typedef IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION;
typedef struct _IMAGE_FUNCTION_OVERRIDE_HEADER {
DWORD FuncOverrideSize;
} IMAGE_FUNCTION_OVERRIDE_HEADER;
typedef IMAGE_FUNCTION_OVERRIDE_HEADER UNALIGNED * PIMAGE_FUNCTION_OVERRIDE_HEADER;
typedef struct _IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION {
DWORD OriginalRva;
DWORD BDDOffset;
DWORD RvaSize;
DWORD BaseRelocSize;
} IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION;
typedef IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION * PIMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION;
typedef struct _IMAGE_BDD_INFO {
DWORD Version;
DWORD BDDSize;
} IMAGE_BDD_INFO;
typedef IMAGE_BDD_INFO * PIMAGE_BDD_INFO;
typedef struct _IMAGE_BDD_DYNAMIC_RELOCATION {
WORD Left;
WORD Right;
DWORD Value;
} IMAGE_BDD_DYNAMIC_RELOCATION;
typedef IMAGE_BDD_DYNAMIC_RELOCATION * PIMAGE_BDD_DYNAMIC_RELOCATION;
typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32 {
DWORD Size;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD GlobalFlagsClear;
DWORD GlobalFlagsSet;
DWORD CriticalSectionDefaultTimeout;
DWORD DeCommitFreeBlockThreshold;
DWORD DeCommitTotalFreeThreshold;
DWORD LockPrefixTable;
DWORD MaximumAllocationSize;
DWORD VirtualMemoryThreshold;
DWORD ProcessHeapFlags;
DWORD ProcessAffinityMask;
WORD CSDVersion;
WORD DependentLoadFlags;
DWORD EditList;
DWORD SecurityCookie;
DWORD SEHandlerTable;
DWORD SEHandlerCount;
DWORD GuardCFCheckFunctionPointer;
DWORD GuardCFDispatchFunctionPointer;
DWORD GuardCFFunctionTable;
DWORD GuardCFFunctionCount;
DWORD GuardFlags;
IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity;
DWORD GuardAddressTakenIatEntryTable;
DWORD GuardAddressTakenIatEntryCount;
DWORD GuardLongJumpTargetTable;
DWORD GuardLongJumpTargetCount;
DWORD DynamicValueRelocTable;
DWORD CHPEMetadataPointer;
DWORD GuardRFFailureRoutine;
DWORD GuardRFFailureRoutineFunctionPointer;
DWORD DynamicValueRelocTableOffset;
WORD DynamicValueRelocTableSection;
WORD Reserved2;
DWORD GuardRFVerifyStackPointerFunctionPointer;
DWORD HotPatchTableOffset;
DWORD Reserved3;
DWORD EnclaveConfigurationPointer;
DWORD VolatileMetadataPointer;
DWORD GuardEHContinuationTable;
DWORD GuardEHContinuationCount;
DWORD GuardXFGCheckFunctionPointer;
DWORD GuardXFGDispatchFunctionPointer;
DWORD GuardXFGTableDispatchFunctionPointer;
DWORD CastGuardOsDeterminedFailureMode;
DWORD GuardMemcpyFunctionPointer;
} IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32;
typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64 {
DWORD Size;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD GlobalFlagsClear;
DWORD GlobalFlagsSet;
DWORD CriticalSectionDefaultTimeout;
ULONGLONG DeCommitFreeBlockThreshold;
ULONGLONG DeCommitTotalFreeThreshold;
ULONGLONG LockPrefixTable;
ULONGLONG MaximumAllocationSize;
ULONGLONG VirtualMemoryThreshold;
ULONGLONG ProcessAffinityMask;
DWORD ProcessHeapFlags;
WORD CSDVersion;
WORD DependentLoadFlags;
ULONGLONG EditList;
ULONGLONG SecurityCookie;
ULONGLONG SEHandlerTable;
ULONGLONG SEHandlerCount;
ULONGLONG GuardCFCheckFunctionPointer;
ULONGLONG GuardCFDispatchFunctionPointer;
ULONGLONG GuardCFFunctionTable;
ULONGLONG GuardCFFunctionCount;
DWORD GuardFlags;
IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity;
ULONGLONG GuardAddressTakenIatEntryTable;
ULONGLONG GuardAddressTakenIatEntryCount;
ULONGLONG GuardLongJumpTargetTable;
ULONGLONG GuardLongJumpTargetCount;
ULONGLONG DynamicValueRelocTable;
ULONGLONG CHPEMetadataPointer;
ULONGLONG GuardRFFailureRoutine;
ULONGLONG GuardRFFailureRoutineFunctionPointer;
DWORD DynamicValueRelocTableOffset;
WORD DynamicValueRelocTableSection;
WORD Reserved2;
ULONGLONG GuardRFVerifyStackPointerFunctionPointer;
DWORD HotPatchTableOffset;
DWORD Reserved3;
ULONGLONG EnclaveConfigurationPointer;
ULONGLONG VolatileMetadataPointer;
ULONGLONG GuardEHContinuationTable;
ULONGLONG GuardEHContinuationCount;
ULONGLONG GuardXFGCheckFunctionPointer;
ULONGLONG GuardXFGDispatchFunctionPointer;
ULONGLONG GuardXFGTableDispatchFunctionPointer;
ULONGLONG CastGuardOsDeterminedFailureMode;
ULONGLONG GuardMemcpyFunctionPointer;
} IMAGE_LOAD_CONFIG_DIRECTORY64, *PIMAGE_LOAD_CONFIG_DIRECTORY64;
typedef IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY;
typedef PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY;
typedef struct _IMAGE_HOT_PATCH_INFO {
DWORD Version;
DWORD Size;
DWORD SequenceNumber;
DWORD BaseImageList;
DWORD BaseImageCount;
DWORD BufferOffset;
DWORD ExtraPatchSize;
} IMAGE_HOT_PATCH_INFO, *PIMAGE_HOT_PATCH_INFO;
typedef struct _IMAGE_HOT_PATCH_BASE {
DWORD SequenceNumber;
DWORD Flags;
DWORD OriginalTimeDateStamp;
DWORD OriginalCheckSum;
DWORD CodeIntegrityInfo;
DWORD CodeIntegritySize;
DWORD PatchTable;
DWORD BufferOffset;
} IMAGE_HOT_PATCH_BASE, *PIMAGE_HOT_PATCH_BASE;
typedef struct _IMAGE_HOT_PATCH_HASHES {
BYTE SHA256[32];
BYTE SHA1[20];
} IMAGE_HOT_PATCH_HASHES, *PIMAGE_HOT_PATCH_HASHES;
typedef struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
DWORD FuncStart;
DWORD PrologLen : 8;
DWORD FuncLen : 22;
DWORD ThirtyTwoBit : 1;
DWORD ExceptionFlag : 1;
} IMAGE_CE_RUNTIME_FUNCTION_ENTRY, * PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;
typedef struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
union {
DWORD UnwindData;
struct {
DWORD Flag : 2;
DWORD FunctionLength : 11;
DWORD Ret : 2;
DWORD H : 1;
DWORD Reg : 3;
DWORD R : 1;
DWORD L : 1;
DWORD C : 1;
DWORD StackAdjust : 10;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} IMAGE_ARM_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
typedef enum ARM64_FNPDATA_FLAGS {
PdataRefToFullXdata = 0,
PdataPackedUnwindFunction = 1,
PdataPackedUnwindFragment = 2,
} ARM64_FNPDATA_FLAGS;
typedef enum ARM64_FNPDATA_CR {
PdataCrUnchained = 0,
PdataCrUnchainedSavedLr = 1,
PdataCrChainedWithPac = 2,
PdataCrChained = 3,
} ARM64_FNPDATA_CR;
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
union {
DWORD UnwindData;
struct {
DWORD Flag : 2;
DWORD FunctionLength : 11;
DWORD RegF : 3;
DWORD RegI : 4;
DWORD H : 1;
DWORD CR : 2;
DWORD FrameSize : 9;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
typedef union IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA {
DWORD HeaderData;
struct {
DWORD FunctionLength : 18;
DWORD Version : 2;
DWORD ExceptionDataPresent : 1;
DWORD EpilogInHeader : 1;
DWORD EpilogCount : 5;
DWORD CodeWords : 5;
} DUMMYSTRUCTNAME;
} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_XDATA;
typedef struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY {
ULONGLONG BeginAddress;
ULONGLONG EndAddress;
ULONGLONG ExceptionHandler;
ULONGLONG HandlerData;
ULONGLONG PrologEndAddress;
} IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
typedef struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
DWORD EndAddress;
DWORD ExceptionHandler;
DWORD HandlerData;
DWORD PrologEndAddress;
} IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
DWORD EndAddress;
union {
DWORD UnwindInfoAddress;
DWORD UnwindData;
} DUMMYUNIONNAME;
} _IMAGE_RUNTIME_FUNCTION_ENTRY, *_PIMAGE_RUNTIME_FUNCTION_ENTRY;
typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY;
typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY;
typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY;
typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY;
typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY;
typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY;
typedef struct _IMAGE_ENCLAVE_CONFIG32 {
DWORD Size;
DWORD MinimumRequiredConfigSize;
DWORD PolicyFlags;
DWORD NumberOfImports;
DWORD ImportList;
DWORD ImportEntrySize;
BYTE FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
BYTE ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
DWORD ImageVersion;
DWORD SecurityVersion;
DWORD EnclaveSize;
DWORD NumberOfThreads;
DWORD EnclaveFlags;
} IMAGE_ENCLAVE_CONFIG32, *PIMAGE_ENCLAVE_CONFIG32;
typedef struct _IMAGE_ENCLAVE_CONFIG64 {
DWORD Size;
DWORD MinimumRequiredConfigSize;
DWORD PolicyFlags;
DWORD NumberOfImports;
DWORD ImportList;
DWORD ImportEntrySize;
BYTE FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
BYTE ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
DWORD ImageVersion;
DWORD SecurityVersion;
ULONGLONG EnclaveSize;
DWORD NumberOfThreads;
DWORD EnclaveFlags;
} IMAGE_ENCLAVE_CONFIG64, *PIMAGE_ENCLAVE_CONFIG64;
typedef IMAGE_ENCLAVE_CONFIG32 IMAGE_ENCLAVE_CONFIG;
typedef PIMAGE_ENCLAVE_CONFIG32 PIMAGE_ENCLAVE_CONFIG;
typedef struct _IMAGE_ENCLAVE_IMPORT {
DWORD MatchType;
DWORD MinimumSecurityVersion;
BYTE UniqueOrAuthorID[IMAGE_ENCLAVE_LONG_ID_LENGTH];
BYTE FamilyID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
BYTE ImageID[IMAGE_ENCLAVE_SHORT_ID_LENGTH];
DWORD ImportName;
DWORD Reserved;
} IMAGE_ENCLAVE_IMPORT, *PIMAGE_ENCLAVE_IMPORT;
typedef struct _IMAGE_DEBUG_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD Type;
DWORD SizeOfData;
DWORD AddressOfRawData;
DWORD PointerToRawData;
} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
DWORD NumberOfSymbols;
DWORD LvaToFirstSymbol;
DWORD NumberOfLinenumbers;
DWORD LvaToFirstLinenumber;
DWORD RvaToFirstByteOfCode;
DWORD RvaToLastByteOfCode;
DWORD RvaToFirstByteOfData;
DWORD RvaToLastByteOfData;
} IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER;
typedef struct _FPO_DATA {
DWORD ulOffStart;
DWORD cbProcSize;
DWORD cdwLocals;
WORD cdwParams;
WORD cbProlog : 8;
WORD cbRegs : 3;
WORD fHasSEH : 1;
WORD fUseBP : 1;
WORD reserved : 1;
WORD cbFrame : 2;
} FPO_DATA, *PFPO_DATA;
typedef struct _IMAGE_DEBUG_MISC {
DWORD DataType;
DWORD Length;
BOOLEAN Unicode;
BYTE Reserved[ 3 ];
BYTE Data[ 1 ];
} IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC;
typedef struct _IMAGE_FUNCTION_ENTRY {
DWORD StartingAddress;
DWORD EndingAddress;
DWORD EndOfPrologue;
} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;
typedef struct _IMAGE_FUNCTION_ENTRY64 {
ULONGLONG StartingAddress;
ULONGLONG EndingAddress;
union {
ULONGLONG EndOfPrologue;
ULONGLONG UnwindInfoAddress;
} DUMMYUNIONNAME;
} IMAGE_FUNCTION_ENTRY64, *PIMAGE_FUNCTION_ENTRY64;
typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
WORD Signature;
WORD Flags;
WORD Machine;
WORD Characteristics;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD ImageBase;
DWORD SizeOfImage;
DWORD NumberOfSections;
DWORD ExportedNamesSize;
DWORD DebugDirectorySize;
DWORD SectionAlignment;
DWORD Reserved[2];
} IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER;
typedef struct _NON_PAGED_DEBUG_INFO {
WORD Signature;
WORD Flags;
DWORD Size;
WORD Machine;
WORD Characteristics;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD SizeOfImage;
ULONGLONG ImageBase;
} NON_PAGED_DEBUG_INFO, *PNON_PAGED_DEBUG_INFO;
typedef struct _ImageArchitectureHeader {
unsigned int AmaskValue: 1;
int :7;
unsigned int AmaskShift: 8;
int :16;
DWORD FirstEntryRVA;
} IMAGE_ARCHITECTURE_HEADER, *PIMAGE_ARCHITECTURE_HEADER;
typedef struct _ImageArchitectureEntry {
DWORD FixupInstRVA;
DWORD NewInst;
} IMAGE_ARCHITECTURE_ENTRY, *PIMAGE_ARCHITECTURE_ENTRY;
typedef struct IMPORT_OBJECT_HEADER {
WORD Sig1;
WORD Sig2;
WORD Version;
WORD Machine;
DWORD TimeDateStamp;
DWORD SizeOfData;
union {
WORD Ordinal;
WORD Hint;
} DUMMYUNIONNAME;
WORD Type : 2;
WORD NameType : 3;
WORD Reserved : 11;
} IMPORT_OBJECT_HEADER;
typedef enum IMPORT_OBJECT_TYPE
{
IMPORT_OBJECT_CODE = 0,
IMPORT_OBJECT_DATA = 1,
IMPORT_OBJECT_CONST = 2,
} IMPORT_OBJECT_TYPE;
typedef enum IMPORT_OBJECT_NAME_TYPE
{
IMPORT_OBJECT_ORDINAL = 0,
IMPORT_OBJECT_NAME = 1,
IMPORT_OBJECT_NAME_NO_PREFIX = 2,
IMPORT_OBJECT_NAME_UNDECORATE = 3,
IMPORT_OBJECT_NAME_EXPORTAS = 4,
} IMPORT_OBJECT_NAME_TYPE;
typedef enum ReplacesCorHdrNumericDefines
{
COMIMAGE_FLAGS_ILONLY =0x00000001,
COMIMAGE_FLAGS_32BITREQUIRED =0x00000002,
COMIMAGE_FLAGS_IL_LIBRARY =0x00000004,
COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008,
COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010,
COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000,
COMIMAGE_FLAGS_32BITPREFERRED =0x00020000,
COR_VERSION_MAJOR_V2 =2,
COR_VERSION_MAJOR =COR_VERSION_MAJOR_V2,
COR_VERSION_MINOR =5,
COR_DELETED_NAME_LENGTH =8,
COR_VTABLEGAP_NAME_LENGTH =8,
NATIVE_TYPE_MAX_CB =1,
COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE=0xFF,
IMAGE_COR_MIH_METHODRVA =0x01,
IMAGE_COR_MIH_EHRVA =0x02,
IMAGE_COR_MIH_BASICBLOCK =0x08,
COR_VTABLE_32BIT =0x01,
COR_VTABLE_64BIT =0x02,
COR_VTABLE_FROM_UNMANAGED =0x04,
COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x08,
COR_VTABLE_CALL_MOST_DERIVED =0x10,
IMAGE_COR_EATJ_THUNK_SIZE =32,
MAX_CLASS_NAME =1024,
MAX_PACKAGE_NAME =1024,
} ReplacesCorHdrNumericDefines;
typedef struct IMAGE_COR20_HEADER
{
DWORD cb;
WORD MajorRuntimeVersion;
WORD MinorRuntimeVersion;
IMAGE_DATA_DIRECTORY MetaData;
DWORD Flags;
union {
DWORD EntryPointToken;
DWORD EntryPointRVA;
} DUMMYUNIONNAME;
IMAGE_DATA_DIRECTORY Resources;
IMAGE_DATA_DIRECTORY StrongNameSignature;
IMAGE_DATA_DIRECTORY CodeManagerTable;
IMAGE_DATA_DIRECTORY VTableFixups;
IMAGE_DATA_DIRECTORY ExportAddressTableJumps;
IMAGE_DATA_DIRECTORY ManagedNativeHeader;
} IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER;
NTSYSAPI
_Success_(return != 0)
WORD
NTAPI
RtlCaptureStackBackTrace(
_In_ DWORD FramesToSkip,
_In_ DWORD FramesToCapture,
_Out_writes_to_(FramesToCapture,return) PVOID* BackTrace,
_Out_opt_ PDWORD BackTraceHash
);
NTSYSAPI
VOID
NTAPI
RtlCaptureContext(
_Out_ PCONTEXT ContextRecord
);
NTSYSAPI
VOID
NTAPI
RtlUnwind(
_In_opt_ PVOID TargetFrame,
_In_opt_ PVOID TargetIp,
_In_opt_ PEXCEPTION_RECORD ExceptionRecord,
_In_ PVOID ReturnValue
);
NTSYSAPI
VOID
NTAPI
RtlRaiseException(
_In_ PEXCEPTION_RECORD ExceptionRecord
);
NTSYSAPI
PVOID
NTAPI
RtlPcToFileHeader(
_In_ PVOID PcValue,
_Out_ PVOID* BaseOfImage
);
_Check_return_
NTSYSAPI
SIZE_T
NTAPI
RtlCompareMemory(
_In_ const VOID* Source1,
_In_ const VOID* Source2,
_In_ SIZE_T Length
);
typedef struct _SINGLE_LIST_ENTRY SLIST_ENTRY, *PSLIST_ENTRY;
NTSYSAPI
VOID
NTAPI
RtlInitializeSListHead (
_Out_ PSLIST_HEADER ListHead
);
_Must_inspect_result_
NTSYSAPI
PSLIST_ENTRY
NTAPI
RtlFirstEntrySList (
_In_ const SLIST_HEADER *ListHead
);
NTSYSAPI
PSLIST_ENTRY
NTAPI
RtlInterlockedPopEntrySList (
_Inout_ PSLIST_HEADER ListHead
);
NTSYSAPI
PSLIST_ENTRY
NTAPI
RtlInterlockedPushEntrySList (
_Inout_ PSLIST_HEADER ListHead,
_Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry
);
NTSYSAPI
PSLIST_ENTRY
NTAPI
RtlInterlockedPushListSListEx (
_Inout_ PSLIST_HEADER ListHead,
_Inout_ __drv_aliasesMem PSLIST_ENTRY List,
_Inout_ PSLIST_ENTRY ListEnd,
_In_ DWORD Count
);
NTSYSAPI
PSLIST_ENTRY
NTAPI
RtlInterlockedFlushSList (
_Inout_ PSLIST_HEADER ListHead
);
NTSYSAPI
WORD
NTAPI
RtlQueryDepthSList (
_In_ PSLIST_HEADER ListHead
);
NTSYSAPI
ULONG_PTR
NTAPI
RtlGetReturnAddressHijackTarget (
VOID
);
typedef union _RTL_RUN_ONCE {
PVOID Ptr;
} RTL_RUN_ONCE, *PRTL_RUN_ONCE;
typedef struct _RTL_BARRIER {
DWORD Reserved1;
DWORD Reserved2;
ULONG_PTR Reserved3[2];
DWORD Reserved4;
DWORD Reserved5;
} RTL_BARRIER, *PRTL_BARRIER;
DECLSPEC_NORETURN
VOID
__fastfail(
_In_ unsigned int Code
);
FORCEINLINE
DWORD
HEAP_MAKE_TAG_FLAGS (
_In_ DWORD TagBase,
_In_ DWORD Tag
)
{
return ((DWORD)((TagBase) + ((Tag) << HEAP_TAG_SHIFT)));
}
_Check_return_
FORCEINLINE
int
RtlConstantTimeEqualMemory(
_In_reads_bytes_(len) const void* v1,
_In_reads_bytes_(len) const void* v2,
unsigned long len
)
{
char x = 0;
unsigned long i = 0;
volatile const char* p1 = (volatile const char*) v1;
volatile const char* p2 = (volatile const char*) v2;
for (; i < len; i += 1) {
x |= p1[i] ^ p2[i];
}
return x == 0;
}
FORCEINLINE
PVOID
RtlSecureZeroMemory(
_Out_writes_bytes_all_(cnt) PVOID ptr,
_In_ SIZE_T cnt
)
{
volatile char *vptr = (volatile char *)ptr;
while (cnt) {
*vptr = 0;
vptr++;
cnt--;
}
return ptr;
}
typedef struct _MESSAGE_RESOURCE_ENTRY {
WORD Length;
WORD Flags;
BYTE Text[ 1 ];
} MESSAGE_RESOURCE_ENTRY, *PMESSAGE_RESOURCE_ENTRY;
typedef struct _MESSAGE_RESOURCE_BLOCK {
DWORD LowId;
DWORD HighId;
DWORD OffsetToEntries;
} MESSAGE_RESOURCE_BLOCK, *PMESSAGE_RESOURCE_BLOCK;
typedef struct _MESSAGE_RESOURCE_DATA {
DWORD NumberOfBlocks;
MESSAGE_RESOURCE_BLOCK Blocks[ 1 ];
} MESSAGE_RESOURCE_DATA, *PMESSAGE_RESOURCE_DATA;
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[ 128 ];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
typedef struct _OSVERSIONINFOW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[ 128 ];
} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
typedef OSVERSIONINFOA OSVERSIONINFO;
typedef POSVERSIONINFOA POSVERSIONINFO;
typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
typedef struct _OSVERSIONINFOEXA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
typedef struct _OSVERSIONINFOEXW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
NTSYSAPI
ULONGLONG
NTAPI
VerSetConditionMask(
_In_ ULONGLONG ConditionMask,
_In_ DWORD TypeMask,
_In_ BYTE Condition
);
NTSYSAPI
BOOLEAN
NTAPI
RtlGetProductInfo(
_In_ DWORD OSMajorVersion,
_In_ DWORD OSMinorVersion,
_In_ DWORD SpMajorVersion,
_In_ DWORD SpMinorVersion,
_Out_ PDWORD ReturnedProductType
);
typedef enum _RTL_UMS_THREAD_INFO_CLASS {
UmsThreadInvalidInfoClass = 0,
UmsThreadUserContext,
UmsThreadPriority,
UmsThreadAffinity,
UmsThreadTeb,
UmsThreadIsSuspended,
UmsThreadIsTerminated,
UmsThreadMaxInfoClass
} RTL_UMS_THREAD_INFO_CLASS, *PRTL_UMS_THREAD_INFO_CLASS;
typedef enum _RTL_UMS_SCHEDULER_REASON {
UmsSchedulerStartup = 0,
UmsSchedulerThreadBlocked,
UmsSchedulerThreadYield,
} RTL_UMS_SCHEDULER_REASON, *PRTL_UMS_SCHEDULER_REASON;
typedef
_Function_class_(RTL_UMS_SCHEDULER_ENTRY_POINT)
VOID
NTAPI
RTL_UMS_SCHEDULER_ENTRY_POINT(
_In_ RTL_UMS_SCHEDULER_REASON Reason,
_In_ ULONG_PTR ActivationPayload,
_In_ PVOID SchedulerParam
);
typedef RTL_UMS_SCHEDULER_ENTRY_POINT *PRTL_UMS_SCHEDULER_ENTRY_POINT;
NTSYSAPI
DWORD
NTAPI
RtlCrc32(
_In_reads_bytes_(Size) const void *Buffer,
_In_ size_t Size,
_In_ DWORD InitialCrc
);
NTSYSAPI
ULONGLONG
NTAPI
RtlCrc64(
_In_reads_bytes_(Size) const void *Buffer,
_In_ size_t Size,
_In_ ULONGLONG InitialCrc
);
typedef enum _OS_DEPLOYEMENT_STATE_VALUES {
OS_DEPLOYMENT_STANDARD = 1,
OS_DEPLOYMENT_COMPACT
} OS_DEPLOYEMENT_STATE_VALUES;
NTSYSAPI
OS_DEPLOYEMENT_STATE_VALUES
NTAPI
RtlOsDeploymentState(
_In_ DWORD Flags
);
typedef struct _NV_MEMORY_RANGE {
VOID *BaseAddress;
SIZE_T Length;
} NV_MEMORY_RANGE, *PNV_MEMORY_RANGE;
typedef struct CORRELATION_VECTOR {
CHAR Version;
CHAR Vector[RTL_CORRELATION_VECTOR_STRING_LENGTH];
} CORRELATION_VECTOR;
typedef CORRELATION_VECTOR *PCORRELATION_VECTOR;
NTSYSAPI
DWORD
NTAPI
RtlInitializeCorrelationVector(
_Out_ PCORRELATION_VECTOR CorrelationVector,
_In_ int Version,
_In_opt_ const GUID * Guid
);
NTSYSAPI
DWORD
NTAPI
RtlIncrementCorrelationVector(
_Inout_ PCORRELATION_VECTOR CorrelationVector
);
NTSYSAPI
DWORD
NTAPI
RtlExtendCorrelationVector(
_Inout_ PCORRELATION_VECTOR CorrelationVector
);
NTSYSAPI
DWORD
NTAPI
RtlValidateCorrelationVector(
_In_ PCORRELATION_VECTOR Vector
);
typedef struct _CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG {
DWORD Size;
PCWSTR TriggerId;
} CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG, *PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG;
FORCEINLINE
VOID
CUSTOM_SYSTEM_EVENT_TRIGGER_INIT(
_Out_ PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG Config,
_In_opt_ PCWSTR TriggerId
)
{
RtlZeroMemory(Config, sizeof(CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG));
Config->Size = sizeof(CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG);
Config->TriggerId = TriggerId;
}
_Must_inspect_result_
_IRQL_requires_max_(PASSIVE_LEVEL)
DWORD
NTAPI
RtlRaiseCustomSystemEventTrigger(
_In_ PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG TriggerConfig
);
typedef enum _IMAGE_POLICY_ENTRY_TYPE {
ImagePolicyEntryTypeNone = 0,
ImagePolicyEntryTypeBool,
ImagePolicyEntryTypeInt8,
ImagePolicyEntryTypeUInt8,
ImagePolicyEntryTypeInt16,
ImagePolicyEntryTypeUInt16,
ImagePolicyEntryTypeInt32,
ImagePolicyEntryTypeUInt32,
ImagePolicyEntryTypeInt64,
ImagePolicyEntryTypeUInt64,
ImagePolicyEntryTypeAnsiString,
ImagePolicyEntryTypeUnicodeString,
ImagePolicyEntryTypeOverride,
ImagePolicyEntryTypeMaximum
} IMAGE_POLICY_ENTRY_TYPE;
typedef enum _IMAGE_POLICY_ID {
ImagePolicyIdNone = 0,
ImagePolicyIdEtw,
ImagePolicyIdDebug,
ImagePolicyIdCrashDump,
ImagePolicyIdCrashDumpKey,
ImagePolicyIdCrashDumpKeyGuid,
ImagePolicyIdParentSd,
ImagePolicyIdParentSdRev,
ImagePolicyIdSvn,
ImagePolicyIdDeviceId,
ImagePolicyIdCapability,
ImagePolicyIdScenarioId,
ImagePolicyIdMaximum
} IMAGE_POLICY_ID;
typedef struct _IMAGE_POLICY_ENTRY {
IMAGE_POLICY_ENTRY_TYPE Type;
IMAGE_POLICY_ID PolicyId;
union {
const VOID* None;
BOOLEAN BoolValue;
INT8 Int8Value;
UINT8 UInt8Value;
INT16 Int16Value;
UINT16 UInt16Value;
INT32 Int32Value;
UINT32 UInt32Value;
INT64 Int64Value;
UINT64 UInt64Value;
PCSTR AnsiStringValue;
PCWSTR UnicodeStringValue;
} u;
} IMAGE_POLICY_ENTRY;
typedef const IMAGE_POLICY_ENTRY* PCIMAGE_POLICY_ENTRY;
NTSYSAPI
BOOLEAN
NTAPI
RtlIsZeroMemory (
_In_ PVOID Buffer,
_In_ SIZE_T Length
);
__drv_maxIRQL(APC_LEVEL)
NTSYSAPI
BOOLEAN
NTAPI
RtlNormalizeSecurityDescriptor (
_Inout_ PSECURITY_DESCRIPTOR *SecurityDescriptor,
_In_ DWORD SecurityDescriptorLength,
_Out_opt_ PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
_Out_opt_ PDWORD NewSecurityDescriptorLength,
_In_ BOOLEAN CheckOnly
);
typedef enum _RTL_SYSTEM_GLOBAL_DATA_ID {
GlobalDataIdUnknown = 0,
GlobalDataIdRngSeedVersion,
GlobalDataIdInterruptTime,
GlobalDataIdTimeZoneBias,
GlobalDataIdImageNumberLow,
GlobalDataIdImageNumberHigh,
GlobalDataIdTimeZoneId,
GlobalDataIdNtMajorVersion,
GlobalDataIdNtMinorVersion,
GlobalDataIdSystemExpirationDate,
GlobalDataIdKdDebuggerEnabled,
GlobalDataIdCyclesPerYield,
GlobalDataIdSafeBootMode,
GlobalDataIdLastSystemRITEventTickCount,
GlobalDataIdConsoleSharedDataFlags,
GlobalDataIdNtSystemRootDrive,
GlobalDataIdQpcShift,
GlobalDataIdQpcBypassEnabled,
GlobalDataIdQpcData,
GlobalDataIdQpcBias
} RTL_SYSTEM_GLOBAL_DATA_ID, *PRTL_SYSTEM_GLOBAL_DATA_ID;
NTSYSAPI
DWORD
NTAPI
RtlGetSystemGlobalData (
_In_ RTL_SYSTEM_GLOBAL_DATA_ID DataId,
_Inout_ PVOID Buffer,
_In_ DWORD Size
);
NTSYSAPI
DWORD
NTAPI
RtlSetSystemGlobalData (
_In_ RTL_SYSTEM_GLOBAL_DATA_ID DataId,
_In_ PVOID Buffer,
_In_ DWORD Size
);
typedef struct _RTL_CRITICAL_SECTION_DEBUG {
WORD Type;
WORD CreatorBackTraceIndex;
struct _RTL_CRITICAL_SECTION *CriticalSection;
LIST_ENTRY ProcessLocksList;
DWORD EntryCount;
DWORD ContentionCount;
DWORD Flags;
WORD CreatorBackTraceIndexHigh;
WORD Identifier;
} RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG, RTL_RESOURCE_DEBUG, *PRTL_RESOURCE_DEBUG;
typedef struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
ULONG_PTR SpinCount;
} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
typedef struct _RTL_SRWLOCK {
PVOID Ptr;
} RTL_SRWLOCK, *PRTL_SRWLOCK;
typedef struct _RTL_CONDITION_VARIABLE {
PVOID Ptr;
} RTL_CONDITION_VARIABLE, *PRTL_CONDITION_VARIABLE;
typedef
VOID
(NTAPI *PAPCFUNC)(
_In_ ULONG_PTR Parameter
);
typedef LONG (NTAPI *PVECTORED_EXCEPTION_HANDLER)(
struct _EXCEPTION_POINTERS *ExceptionInfo
);
typedef enum _HEAP_INFORMATION_CLASS {
HeapCompatibilityInformation = 0,
HeapEnableTerminationOnCorruption = 1
,
HeapOptimizeResources = 3
,
HeapTag = 7
} HEAP_INFORMATION_CLASS;
typedef struct _HEAP_OPTIMIZE_RESOURCES_INFORMATION {
DWORD Version;
DWORD Flags;
} HEAP_OPTIMIZE_RESOURCES_INFORMATION, *PHEAP_OPTIMIZE_RESOURCES_INFORMATION;
typedef VOID (NTAPI * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN );
typedef VOID (NTAPI * WORKERCALLBACKFUNC) (PVOID );
typedef VOID (NTAPI * APC_CALLBACK_FUNCTION) (DWORD , PVOID, PVOID);
typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
typedef
VOID
(NTAPI *PFLS_CALLBACK_FUNCTION) (
_In_ PVOID lpFlsData
);
typedef
BOOLEAN
(NTAPI *PSECURE_MEMORY_CACHE_CALLBACK) (
_In_reads_bytes_(Range) PVOID Addr,
_In_ SIZE_T Range
);
typedef enum _ACTIVATION_CONTEXT_INFO_CLASS {
ActivationContextBasicInformation = 1,
ActivationContextDetailedInformation = 2,
AssemblyDetailedInformationInActivationContext = 3,
FileInformationInAssemblyOfAssemblyInActivationContext = 4,
RunlevelInformationInActivationContext = 5,
CompatibilityInformationInActivationContext = 6,
ActivationContextManifestResourceName = 7,
MaxActivationContextInfoClass,
AssemblyDetailedInformationInActivationContxt = 3,
FileInformationInAssemblyOfAssemblyInActivationContxt = 4
} ACTIVATION_CONTEXT_INFO_CLASS;
typedef struct _ACTIVATION_CONTEXT_QUERY_INDEX {
DWORD ulAssemblyIndex;
DWORD ulFileIndexInAssembly;
} ACTIVATION_CONTEXT_QUERY_INDEX, * PACTIVATION_CONTEXT_QUERY_INDEX;
typedef const struct _ACTIVATION_CONTEXT_QUERY_INDEX * PCACTIVATION_CONTEXT_QUERY_INDEX;
typedef struct _ASSEMBLY_FILE_DETAILED_INFORMATION {
DWORD ulFlags;
DWORD ulFilenameLength;
DWORD ulPathLength;
PCWSTR lpFileName;
PCWSTR lpFilePath;
} ASSEMBLY_FILE_DETAILED_INFORMATION, *PASSEMBLY_FILE_DETAILED_INFORMATION;
typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION;
typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {
DWORD ulFlags;
DWORD ulEncodedAssemblyIdentityLength;
DWORD ulManifestPathType;
DWORD ulManifestPathLength;
LARGE_INTEGER liManifestLastWriteTime;
DWORD ulPolicyPathType;
DWORD ulPolicyPathLength;
LARGE_INTEGER liPolicyLastWriteTime;
DWORD ulMetadataSatelliteRosterIndex;
DWORD ulManifestVersionMajor;
DWORD ulManifestVersionMinor;
DWORD ulPolicyVersionMajor;
DWORD ulPolicyVersionMinor;
DWORD ulAssemblyDirectoryNameLength;
PCWSTR lpAssemblyEncodedAssemblyIdentity;
PCWSTR lpAssemblyManifestPath;
PCWSTR lpAssemblyPolicyPath;
PCWSTR lpAssemblyDirectoryName;
DWORD ulFileCount;
} ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION, * PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
typedef const struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION * PCACTIVATION_CONTEXT_ASSEMBLY_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;
typedef const struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION * PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION ;
typedef enum
{
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS,
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION,
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MAXVERSIONTESTED
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
GUID Id;
ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type;
ULONGLONG MaxVersionTested;
} COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT;
typedef const struct _COMPATIBILITY_CONTEXT_ELEMENT *PCCOMPATIBILITY_CONTEXT_ELEMENT;
typedef struct _SUPPORTED_OS_INFO {
WORD MajorVersion;
WORD MinorVersion;
} SUPPORTED_OS_INFO, *PSUPPORTED_OS_INFO;
typedef struct _MAXVERSIONTESTED_INFO {
ULONGLONG MaxVersionTested;
} MAXVERSIONTESTED_INFO, *PMAXVERSIONTESTED_INFO;
typedef struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION {
DWORD dwFlags;
DWORD ulFormatVersion;
DWORD ulAssemblyCount;
DWORD ulRootManifestPathType;
DWORD ulRootManifestPathChars;
DWORD ulRootConfigurationPathType;
DWORD ulRootConfigurationPathChars;
DWORD ulAppDirPathType;
DWORD ulAppDirPathChars;
PCWSTR lpRootManifestPath;
PCWSTR lpRootConfigurationPath;
PCWSTR lpAppDirPath;
} ACTIVATION_CONTEXT_DETAILED_INFORMATION, *PACTIVATION_CONTEXT_DETAILED_INFORMATION;
typedef const struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION *PCACTIVATION_CONTEXT_DETAILED_INFORMATION;
typedef struct _HARDWARE_COUNTER_DATA {
HARDWARE_COUNTER_TYPE Type;
DWORD Reserved;
DWORD64 Value;
} HARDWARE_COUNTER_DATA, *PHARDWARE_COUNTER_DATA;
typedef struct _PERFORMANCE_DATA {
WORD Size;
BYTE Version;
BYTE HwCountersCount;
DWORD ContextSwitchCount;
DWORD64 WaitReasonBitMap;
DWORD64 CycleTime;
DWORD RetryCount;
DWORD Reserved;
HARDWARE_COUNTER_DATA HwCounters[MAX_HW_COUNTERS];
} PERFORMANCE_DATA, *PPERFORMANCE_DATA;
VOID
NTAPI
RtlGetDeviceFamilyInfoEnum(
_Out_opt_ ULONGLONG *pullUAPInfo,
_Out_opt_ DWORD *pulDeviceFamily,
_Out_opt_ DWORD *pulDeviceForm
);
DWORD
NTAPI
RtlConvertDeviceFamilyInfoToString(
_Inout_ PDWORD pulDeviceFamilyBufferSize,
_Inout_ PDWORD pulDeviceFormBufferSize,
_Out_writes_bytes_(*pulDeviceFamilyBufferSize) PWSTR DeviceFamily,
_Out_writes_bytes_(*pulDeviceFormBufferSize) PWSTR DeviceForm
);
DWORD
NTAPI
RtlSwitchedVVI(
_In_ PRTL_OSVERSIONINFOEXW VersionInfo,
_In_ DWORD TypeMask,
_In_ ULONGLONG ConditionMask
);
typedef struct _EVENTLOGRECORD {
DWORD Length;
DWORD Reserved;
DWORD RecordNumber;
DWORD TimeGenerated;
DWORD TimeWritten;
DWORD EventID;
WORD EventType;
WORD NumStrings;
WORD EventCategory;
WORD ReservedFlags;
DWORD ClosingRecordNumber;
DWORD StringOffset;
DWORD UserSidLength;
DWORD UserSidOffset;
DWORD DataLength;
DWORD DataOffset;
} EVENTLOGRECORD, *PEVENTLOGRECORD;
struct _EVENTSFORLOGFILE;
typedef struct _EVENTSFORLOGFILE EVENTSFORLOGFILE, *PEVENTSFORLOGFILE;
struct _PACKEDEVENTINFO;
typedef struct _PACKEDEVENTINFO PACKEDEVENTINFO, *PPACKEDEVENTINFO;
typedef enum _CM_SERVICE_NODE_TYPE {
DriverType = SERVICE_KERNEL_DRIVER,
FileSystemType = SERVICE_FILE_SYSTEM_DRIVER,
Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS,
Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
AdapterType = SERVICE_ADAPTER,
RecognizerType = SERVICE_RECOGNIZER_DRIVER
} SERVICE_NODE_TYPE;
typedef enum _CM_SERVICE_LOAD_TYPE {
BootLoad = SERVICE_BOOT_START,
SystemLoad = SERVICE_SYSTEM_START,
AutoLoad = SERVICE_AUTO_START,
DemandLoad = SERVICE_DEMAND_START,
DisableLoad = SERVICE_DISABLED
} SERVICE_LOAD_TYPE;
typedef enum _CM_ERROR_CONTROL_TYPE {
IgnoreError = SERVICE_ERROR_IGNORE,
NormalError = SERVICE_ERROR_NORMAL,
SevereError = SERVICE_ERROR_SEVERE,
CriticalError = SERVICE_ERROR_CRITICAL
} SERVICE_ERROR_TYPE;
typedef struct _TAPE_ERASE {
DWORD Type;
BOOLEAN Immediate;
} TAPE_ERASE, *PTAPE_ERASE;
typedef struct _TAPE_PREPARE {
DWORD Operation;
BOOLEAN Immediate;
} TAPE_PREPARE, *PTAPE_PREPARE;
typedef struct _TAPE_WRITE_MARKS {
DWORD Type;
DWORD Count;
BOOLEAN Immediate;
} TAPE_WRITE_MARKS, *PTAPE_WRITE_MARKS;
typedef struct _TAPE_GET_POSITION {
DWORD Type;
DWORD Partition;
LARGE_INTEGER Offset;
} TAPE_GET_POSITION, *PTAPE_GET_POSITION;
typedef struct _TAPE_SET_POSITION {
DWORD Method;
DWORD Partition;
LARGE_INTEGER Offset;
BOOLEAN Immediate;
} TAPE_SET_POSITION, *PTAPE_SET_POSITION;
typedef struct _TAPE_GET_DRIVE_PARAMETERS {
BOOLEAN ECC;
BOOLEAN Compression;
BOOLEAN DataPadding;
BOOLEAN ReportSetmarks;
DWORD DefaultBlockSize;
DWORD MaximumBlockSize;
DWORD MinimumBlockSize;
DWORD MaximumPartitionCount;
DWORD FeaturesLow;
DWORD FeaturesHigh;
DWORD EOTWarningZoneSize;
} TAPE_GET_DRIVE_PARAMETERS, *PTAPE_GET_DRIVE_PARAMETERS;
typedef struct _TAPE_SET_DRIVE_PARAMETERS {
BOOLEAN ECC;
BOOLEAN Compression;
BOOLEAN DataPadding;
BOOLEAN ReportSetmarks;
DWORD EOTWarningZoneSize;
} TAPE_SET_DRIVE_PARAMETERS, *PTAPE_SET_DRIVE_PARAMETERS;
typedef struct _TAPE_GET_MEDIA_PARAMETERS {
LARGE_INTEGER Capacity;
LARGE_INTEGER Remaining;
DWORD BlockSize;
DWORD PartitionCount;
BOOLEAN WriteProtected;
} TAPE_GET_MEDIA_PARAMETERS, *PTAPE_GET_MEDIA_PARAMETERS;
typedef struct _TAPE_SET_MEDIA_PARAMETERS {
DWORD BlockSize;
} TAPE_SET_MEDIA_PARAMETERS, *PTAPE_SET_MEDIA_PARAMETERS;
typedef struct _TAPE_CREATE_PARTITION {
DWORD Method;
DWORD Count;
DWORD Size;
} TAPE_CREATE_PARTITION, *PTAPE_CREATE_PARTITION;
typedef struct _TAPE_WMI_OPERATIONS {
DWORD Method;
DWORD DataBufferSize;
PVOID DataBuffer;
} TAPE_WMI_OPERATIONS, *PTAPE_WMI_OPERATIONS;
typedef enum _TAPE_DRIVE_PROBLEM_TYPE {
TapeDriveProblemNone, TapeDriveReadWriteWarning,
TapeDriveReadWriteError, TapeDriveReadWarning,
TapeDriveWriteWarning, TapeDriveReadError,
TapeDriveWriteError, TapeDriveHardwareError,
TapeDriveUnsupportedMedia, TapeDriveScsiConnectionError,
TapeDriveTimetoClean, TapeDriveCleanDriveNow,
TapeDriveMediaLifeExpired, TapeDriveSnappedTape
} TAPE_DRIVE_PROBLEM_TYPE;
typedef GUID UOW, *PUOW;
typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID;
typedef ULONG NOTIFICATION_MASK;
typedef struct _TRANSACTION_NOTIFICATION {
PVOID TransactionKey;
ULONG TransactionNotification;
LARGE_INTEGER TmVirtualClock;
ULONG ArgumentLength;
} TRANSACTION_NOTIFICATION, *PTRANSACTION_NOTIFICATION;
typedef struct _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {
GUID EnlistmentId;
UOW UOW;
} TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT, *PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
typedef struct _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {
GUID TmIdentity;
ULONG Flags;
} TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT, *PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID;
typedef struct _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {
SAVEPOINT_ID SavepointId;
} TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT, *PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
typedef struct _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {
ULONG PropagationCookie;
GUID UOW;
GUID TmIdentity;
ULONG BufferLength;
} TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT, *PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
typedef struct _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {
ULONG MarshalCookie;
GUID UOW;
} TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT, *PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
typedef TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT, *PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT;
typedef struct _KCRM_MARSHAL_HEADER {
ULONG VersionMajor;
ULONG VersionMinor;
ULONG NumProtocols;
ULONG Unused;
} KCRM_MARSHAL_HEADER, *PKCRM_MARSHAL_HEADER, *RESTRICTED_POINTER PRKCRM_MARSHAL_HEADER;
typedef struct _KCRM_TRANSACTION_BLOB {
UOW UOW;
GUID TmIdentity;
ULONG IsolationLevel;
ULONG IsolationFlags;
ULONG Timeout;
WCHAR Description[MAX_TRANSACTION_DESCRIPTION_LENGTH];
} KCRM_TRANSACTION_BLOB, *PKCRM_TRANSACTION_BLOB, *RESTRICTED_POINTER PRKCRM_TRANSACTION_BLOB;
typedef struct _KCRM_PROTOCOL_BLOB {
CRM_PROTOCOL_ID ProtocolId;
_Field_range_ (0,ULONG_MAX/2) ULONG StaticInfoLength;
ULONG TransactionIdInfoLength;
ULONG Unused1;
ULONG Unused2;
} KCRM_PROTOCOL_BLOB, *PKCRM_PROTOCOL_BLOB, *RESTRICTED_POINTER PRKCRM_PROTOCOL_BLOB;
typedef enum _TRANSACTION_OUTCOME {
TransactionOutcomeUndetermined = 1,
TransactionOutcomeCommitted,
TransactionOutcomeAborted,
} TRANSACTION_OUTCOME;
typedef enum _TRANSACTION_STATE {
TransactionStateNormal = 1,
TransactionStateIndoubt,
TransactionStateCommittedNotify,
} TRANSACTION_STATE;
typedef struct _TRANSACTION_BASIC_INFORMATION {
GUID TransactionId;
DWORD State;
DWORD Outcome;
} TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION;
typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
GUID TmIdentity;
LARGE_INTEGER VirtualClock;
} TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION;
typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION {
GUID LogIdentity;
} TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION;
typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
DWORD LogPathLength;
_Field_size_(LogPathLength) WCHAR LogPath[1];
} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION;
typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
ULONGLONG LastRecoveredLsn;
} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
typedef struct _TRANSACTIONMANAGER_OLDEST_INFORMATION {
GUID OldestTransactionGuid;
} TRANSACTIONMANAGER_OLDEST_INFORMATION, *PTRANSACTIONMANAGER_OLDEST_INFORMATION;
typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
DWORD IsolationLevel;
DWORD IsolationFlags;
LARGE_INTEGER Timeout;
DWORD Outcome;
DWORD DescriptionLength;
WCHAR Description[1];
} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION;
typedef struct _TRANSACTION_BIND_INFORMATION {
HANDLE TmHandle;
} TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION;
typedef struct _TRANSACTION_ENLISTMENT_PAIR {
GUID EnlistmentId;
GUID ResourceManagerId;
} TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR;
typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION {
DWORD NumberOfEnlistments;
TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1];
} TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION;
typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair;
} TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
typedef struct _RESOURCEMANAGER_BASIC_INFORMATION {
GUID ResourceManagerId;
DWORD DescriptionLength;
WCHAR Description[1];
} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION;
typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
HANDLE IoCompletionPortHandle;
ULONG_PTR CompletionKey;
} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION;
typedef enum _TRANSACTION_INFORMATION_CLASS {
TransactionBasicInformation,
TransactionPropertiesInformation,
TransactionEnlistmentInformation,
TransactionSuperiorEnlistmentInformation
,
TransactionBindInformation,
TransactionDTCPrivateInformation
,
} TRANSACTION_INFORMATION_CLASS;
typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
TransactionManagerBasicInformation,
TransactionManagerLogInformation,
TransactionManagerLogPathInformation,
TransactionManagerRecoveryInformation = 4
,
TransactionManagerOnlineProbeInformation = 3,
TransactionManagerOldestTransactionInformation = 5
} TRANSACTIONMANAGER_INFORMATION_CLASS;
typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
ResourceManagerBasicInformation,
ResourceManagerCompletionInformation,
} RESOURCEMANAGER_INFORMATION_CLASS;
typedef struct _ENLISTMENT_BASIC_INFORMATION {
GUID EnlistmentId;
GUID TransactionId;
GUID ResourceManagerId;
} ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION;
typedef struct _ENLISTMENT_CRM_INFORMATION {
GUID CrmTransactionManagerId;
GUID CrmResourceManagerId;
GUID CrmEnlistmentId;
} ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION;
typedef enum _ENLISTMENT_INFORMATION_CLASS {
EnlistmentBasicInformation,
EnlistmentRecoveryInformation,
EnlistmentCrmInformation
} ENLISTMENT_INFORMATION_CLASS;
typedef struct _TRANSACTION_LIST_ENTRY {
UOW UOW;
} TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY;
typedef struct _TRANSACTION_LIST_INFORMATION {
DWORD NumberOfTransactions;
TRANSACTION_LIST_ENTRY TransactionInformation[1];
} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION;
typedef enum _KTMOBJECT_TYPE {
KTMOBJECT_TRANSACTION,
KTMOBJECT_TRANSACTION_MANAGER,
KTMOBJECT_RESOURCE_MANAGER,
KTMOBJECT_ENLISTMENT,
KTMOBJECT_INVALID
} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
typedef struct _KTMOBJECT_CURSOR {
GUID LastQuery;
DWORD ObjectIdCount;
GUID ObjectIds[1];
} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
typedef DWORD TP_VERSION, *PTP_VERSION;
typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANCE;
typedef VOID (NTAPI *PTP_SIMPLE_CALLBACK)(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context
);
typedef struct _TP_POOL TP_POOL, *PTP_POOL;
typedef enum _TP_CALLBACK_PRIORITY {
TP_CALLBACK_PRIORITY_HIGH,
TP_CALLBACK_PRIORITY_NORMAL,
TP_CALLBACK_PRIORITY_LOW,
TP_CALLBACK_PRIORITY_INVALID,
TP_CALLBACK_PRIORITY_COUNT = TP_CALLBACK_PRIORITY_INVALID
} TP_CALLBACK_PRIORITY;
typedef struct _TP_POOL_STACK_INFORMATION {
SIZE_T StackReserve;
SIZE_T StackCommit;
}TP_POOL_STACK_INFORMATION, *PTP_POOL_STACK_INFORMATION;
typedef struct _TP_CLEANUP_GROUP TP_CLEANUP_GROUP, *PTP_CLEANUP_GROUP;
typedef VOID (NTAPI *PTP_CLEANUP_GROUP_CANCEL_CALLBACK)(
_Inout_opt_ PVOID ObjectContext,
_Inout_opt_ PVOID CleanupContext
);
typedef struct _TP_CALLBACK_ENVIRON_V3 {
TP_VERSION Version;
PTP_POOL Pool;
PTP_CLEANUP_GROUP CleanupGroup;
PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback;
PVOID RaceDll;
struct _ACTIVATION_CONTEXT *ActivationContext;
PTP_SIMPLE_CALLBACK FinalizationCallback;
union {
DWORD Flags;
struct {
DWORD LongFunction : 1;
DWORD Persistent : 1;
DWORD Private : 30;
} s;
} u;
TP_CALLBACK_PRIORITY CallbackPriority;
DWORD Size;
} TP_CALLBACK_ENVIRON_V3;
typedef TP_CALLBACK_ENVIRON_V3 TP_CALLBACK_ENVIRON, *PTP_CALLBACK_ENVIRON;
FORCEINLINE
VOID
TpInitializeCallbackEnviron(
_Out_ PTP_CALLBACK_ENVIRON CallbackEnviron
)
{
CallbackEnviron->Version = 3;
CallbackEnviron->Pool = NULL;
CallbackEnviron->CleanupGroup = NULL;
CallbackEnviron->CleanupGroupCancelCallback = NULL;
CallbackEnviron->RaceDll = NULL;
CallbackEnviron->ActivationContext = NULL;
CallbackEnviron->FinalizationCallback = NULL;
CallbackEnviron->u.Flags = 0;
CallbackEnviron->CallbackPriority = TP_CALLBACK_PRIORITY_NORMAL;
CallbackEnviron->Size = sizeof(TP_CALLBACK_ENVIRON);
}
FORCEINLINE
VOID
TpSetCallbackThreadpool(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron,
_In_ PTP_POOL Pool
)
{
CallbackEnviron->Pool = Pool;
}
FORCEINLINE
VOID
TpSetCallbackCleanupGroup(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron,
_In_ PTP_CLEANUP_GROUP CleanupGroup,
_In_opt_ PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback
)
{
CallbackEnviron->CleanupGroup = CleanupGroup;
CallbackEnviron->CleanupGroupCancelCallback = CleanupGroupCancelCallback;
}
FORCEINLINE
VOID
TpSetCallbackActivationContext(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron,
_In_opt_ struct _ACTIVATION_CONTEXT *ActivationContext
)
{
CallbackEnviron->ActivationContext = ActivationContext;
}
FORCEINLINE
VOID
TpSetCallbackNoActivationContext(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron
)
{
CallbackEnviron->ActivationContext = (struct _ACTIVATION_CONTEXT *)(LONG_PTR) -1;
}
FORCEINLINE
VOID
TpSetCallbackLongFunction(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron
)
{
CallbackEnviron->u.s.LongFunction = 1;
}
FORCEINLINE
VOID
TpSetCallbackRaceWithDll(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron,
_In_ PVOID DllHandle
)
{
CallbackEnviron->RaceDll = DllHandle;
}
FORCEINLINE
VOID
TpSetCallbackFinalizationCallback(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron,
_In_ PTP_SIMPLE_CALLBACK FinalizationCallback
)
{
CallbackEnviron->FinalizationCallback = FinalizationCallback;
}
FORCEINLINE
VOID
TpSetCallbackPriority(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron,
_In_ TP_CALLBACK_PRIORITY Priority
)
{
CallbackEnviron->CallbackPriority = Priority;
}
FORCEINLINE
VOID
TpSetCallbackPersistent(
_Inout_ PTP_CALLBACK_ENVIRON CallbackEnviron
)
{
CallbackEnviron->u.s.Persistent = 1;
}
FORCEINLINE
VOID
TpDestroyCallbackEnviron(
_In_ PTP_CALLBACK_ENVIRON CallbackEnviron
)
{
UNREFERENCED_PARAMETER(CallbackEnviron);
}
typedef struct _TP_WORK TP_WORK, *PTP_WORK;
typedef VOID (NTAPI *PTP_WORK_CALLBACK)(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context,
_Inout_ PTP_WORK Work
);
typedef struct _TP_TIMER TP_TIMER, *PTP_TIMER;
typedef VOID (NTAPI *PTP_TIMER_CALLBACK)(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context,
_Inout_ PTP_TIMER Timer
);
typedef DWORD TP_WAIT_RESULT;
typedef struct _TP_WAIT TP_WAIT, *PTP_WAIT;
typedef VOID (NTAPI *PTP_WAIT_CALLBACK)(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context,
_Inout_ PTP_WAIT Wait,
_In_ TP_WAIT_RESULT WaitResult
);
typedef struct _TP_IO TP_IO, *PTP_IO;
typedef UINT_PTR WPARAM;
typedef LONG_PTR LPARAM;
typedef LONG_PTR LRESULT;
typedef HANDLE NEAR *SPHANDLE;
typedef HANDLE FAR *LPHANDLE;
typedef HANDLE HGLOBAL;
typedef HANDLE HLOCAL;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;
typedef int (FAR WINAPI *FARPROC)();
typedef int (NEAR WINAPI *NEARPROC)();
typedef int (WINAPI *PROC)();
typedef WORD ATOM;
DECLARE_HANDLE(HKEY);
typedef HKEY *PHKEY;
DECLARE_HANDLE(HMETAFILE);
DECLARE_HANDLE(HINSTANCE);
typedef HINSTANCE HMODULE;
DECLARE_HANDLE(HRGN);
DECLARE_HANDLE(HRSRC);
DECLARE_HANDLE(HSPRITE);
DECLARE_HANDLE(HLSURF);
DECLARE_HANDLE(HSTR);
DECLARE_HANDLE(HTASK);
DECLARE_HANDLE(HWINSTA);
DECLARE_HANDLE(HKL);
typedef int HFILE;
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
DECLARE_HANDLE (HWND);
DECLARE_HANDLE (HHOOK);
typedef void NEAR* HGDIOBJ;
DECLARE_HANDLE(HACCEL);
DECLARE_HANDLE(HBITMAP);
DECLARE_HANDLE(HBRUSH);
DECLARE_HANDLE(HCOLORSPACE);
DECLARE_HANDLE(HDC);
DECLARE_HANDLE(HGLRC);
DECLARE_HANDLE(HDESK);
DECLARE_HANDLE(HENHMETAFILE);
DECLARE_HANDLE(HFONT);
DECLARE_HANDLE(HICON);
DECLARE_HANDLE(HMENU);
DECLARE_HANDLE(HPALETTE);
DECLARE_HANDLE(HPEN);
DECLARE_HANDLE(HWINEVENTHOOK);
DECLARE_HANDLE(HMONITOR);
DECLARE_HANDLE(HUMPD);
typedef HICON HCURSOR;
typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
typedef const RECT FAR* LPCRECT;
typedef struct _RECTL
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECTL, *PRECTL, *LPRECTL;
typedef const RECTL FAR* LPCRECTL;
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
typedef struct _POINTL
{
LONG x;
LONG y;
} POINTL, *PPOINTL;
typedef struct tagSIZE
{
LONG cx;
LONG cy;
} SIZE, *PSIZE, *LPSIZE;
typedef SIZE SIZEL;
typedef SIZE *PSIZEL, *LPSIZEL;
typedef struct tagPOINTS
{
SHORT x;
SHORT y;
} POINTS, *PPOINTS, *LPPOINTS;
typedef struct APP_LOCAL_DEVICE_ID
{
BYTE value[APP_LOCAL_DEVICE_ID_SIZE];
} APP_LOCAL_DEVICE_ID;
DECLARE_HANDLE(DPI_AWARENESS_CONTEXT);
typedef enum DPI_AWARENESS {
DPI_AWARENESS_INVALID = -1,
DPI_AWARENESS_UNAWARE = 0,
DPI_AWARENESS_SYSTEM_AWARE = 1,
DPI_AWARENESS_PER_MONITOR_AWARE = 2
} DPI_AWARENESS;
typedef enum DPI_HOSTING_BEHAVIOR {
DPI_HOSTING_BEHAVIOR_INVALID = -1,
DPI_HOSTING_BEHAVIOR_DEFAULT = 0,
DPI_HOSTING_BEHAVIOR_MIXED = 1
} DPI_HOSTING_BEHAVIOR;
typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
} DUMMYSTRUCTNAME;
PVOID Pointer;
} DUMMYUNIONNAME;
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
typedef struct _OVERLAPPED_ENTRY {
ULONG_PTR lpCompletionKey;
LPOVERLAPPED lpOverlapped;
ULONG_PTR Internal;
DWORD dwNumberOfBytesTransferred;
} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
typedef struct _WIN32_FIND_DATAA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
_Field_z_ CHAR cFileName[ MAX_PATH ];
_Field_z_ CHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
typedef struct _WIN32_FIND_DATAW {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
_Field_z_ WCHAR cFileName[ MAX_PATH ];
_Field_z_ WCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
typedef enum _FINDEX_INFO_LEVELS {
FindExInfoStandard,
FindExInfoBasic,
FindExInfoMaxInfoLevel
} FINDEX_INFO_LEVELS;
typedef enum _FINDEX_SEARCH_OPS {
FindExSearchNameMatch,
FindExSearchLimitToDirectories,
FindExSearchLimitToDevices,
FindExSearchMaxSearchOp
} FINDEX_SEARCH_OPS;
typedef enum _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS {
ReadDirectoryNotifyInformation = 1,
ReadDirectoryNotifyExtendedInformation,
ReadDirectoryNotifyFullInformation,
ReadDirectoryNotifyMaximumInformation
} READ_DIRECTORY_NOTIFY_INFORMATION_CLASS, *PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS;
typedef enum _GET_FILEEX_INFO_LEVELS {
GetFileExInfoStandard,
GetFileExMaxInfoLevel
} GET_FILEEX_INFO_LEVELS;
typedef enum _FILE_INFO_BY_HANDLE_CLASS {
FileBasicInfo,
FileStandardInfo,
FileNameInfo,
FileRenameInfo,
FileDispositionInfo,
FileAllocationInfo,
FileEndOfFileInfo,
FileStreamInfo,
FileCompressionInfo,
FileAttributeTagInfo,
FileIdBothDirectoryInfo,
FileIdBothDirectoryRestartInfo,
FileIoPriorityHintInfo,
FileRemoteProtocolInfo,
FileFullDirectoryInfo,
FileFullDirectoryRestartInfo,
FileStorageInfo,
FileAlignmentInfo,
FileIdInfo,
FileIdExtdDirectoryInfo,
FileIdExtdDirectoryRestartInfo,
FileDispositionInfoEx,
FileRenameInfoEx,
FileCaseSensitiveInfo,
FileNormalizedNameInfo,
MaximumFileInfoByHandleClass
} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
typedef
VOID
(WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)(
_In_ DWORD dwErrorCode,
_In_ DWORD dwNumberOfBytesTransfered,
_Inout_ LPOVERLAPPED lpOverlapped
);
typedef struct _PROCESS_HEAP_ENTRY {
PVOID lpData;
DWORD cbData;
BYTE cbOverhead;
BYTE iRegionIndex;
WORD wFlags;
union {
struct {
HANDLE hMem;
DWORD dwReserved[ 3 ];
} Block;
struct {
DWORD dwCommittedSize;
DWORD dwUnCommittedSize;
LPVOID lpFirstBlock;
LPVOID lpLastBlock;
} Region;
} DUMMYUNIONNAME;
} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY;
typedef struct _REASON_CONTEXT {
ULONG Version;
DWORD Flags;
union {
struct {
HMODULE LocalizedReasonModule;
ULONG LocalizedReasonId;
ULONG ReasonStringCount;
LPWSTR *ReasonStrings;
} Detailed;
LPWSTR SimpleReasonString;
} Reason;
} REASON_CONTEXT, *PREASON_CONTEXT;
typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(
LPVOID lpThreadParameter
);
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
typedef LPVOID (WINAPI *PENCLAVE_ROUTINE)(
LPVOID lpThreadParameter
);
typedef PENCLAVE_ROUTINE LPENCLAVE_ROUTINE;
typedef struct _EXCEPTION_DEBUG_INFO {
EXCEPTION_RECORD ExceptionRecord;
DWORD dwFirstChance;
} EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
typedef struct _CREATE_THREAD_DEBUG_INFO {
HANDLE hThread;
LPVOID lpThreadLocalBase;
LPTHREAD_START_ROUTINE lpStartAddress;
} CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
typedef struct _CREATE_PROCESS_DEBUG_INFO {
HANDLE hFile;
HANDLE hProcess;
HANDLE hThread;
LPVOID lpBaseOfImage;
DWORD dwDebugInfoFileOffset;
DWORD nDebugInfoSize;
LPVOID lpThreadLocalBase;
LPTHREAD_START_ROUTINE lpStartAddress;
LPVOID lpImageName;
WORD fUnicode;
} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
typedef struct _EXIT_THREAD_DEBUG_INFO {
DWORD dwExitCode;
} EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
typedef struct _EXIT_PROCESS_DEBUG_INFO {
DWORD dwExitCode;
} EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
typedef struct _LOAD_DLL_DEBUG_INFO {
HANDLE hFile;
LPVOID lpBaseOfDll;
DWORD dwDebugInfoFileOffset;
DWORD nDebugInfoSize;
LPVOID lpImageName;
WORD fUnicode;
} LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
typedef struct _UNLOAD_DLL_DEBUG_INFO {
LPVOID lpBaseOfDll;
} UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
typedef struct _OUTPUT_DEBUG_STRING_INFO {
LPSTR lpDebugStringData;
WORD fUnicode;
WORD nDebugStringLength;
} OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
typedef struct _RIP_INFO {
DWORD dwError;
DWORD dwType;
} RIP_INFO, *LPRIP_INFO;
typedef struct _DEBUG_EVENT {
DWORD dwDebugEventCode;
DWORD dwProcessId;
DWORD dwThreadId;
union {
EXCEPTION_DEBUG_INFO Exception;
CREATE_THREAD_DEBUG_INFO CreateThread;
CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
EXIT_THREAD_DEBUG_INFO ExitThread;
EXIT_PROCESS_DEBUG_INFO ExitProcess;
LOAD_DLL_DEBUG_INFO LoadDll;
UNLOAD_DLL_DEBUG_INFO UnloadDll;
OUTPUT_DEBUG_STRING_INFO DebugString;
RIP_INFO RipInfo;
} u;
} DEBUG_EVENT, *LPDEBUG_EVENT;
typedef PCONTEXT LPCONTEXT;
APICONTRACT
BOOL
APIENTRY
IsApiSetImplemented(
_In_ PCSTR Contract
);
WINBASEAPI
BOOL
WINAPI
SetEnvironmentStringsW(
_In_ _Pre_ _NullNull_terminated_ LPWCH NewEnvironment
);
WINBASEAPI
HANDLE
WINAPI
GetStdHandle(
_In_ DWORD nStdHandle
);
WINBASEAPI
BOOL
WINAPI
SetStdHandle(
_In_ DWORD nStdHandle,
_In_ HANDLE hHandle
);
WINBASEAPI
BOOL
WINAPI
SetStdHandleEx(
_In_ DWORD nStdHandle,
_In_ HANDLE hHandle,
_Out_opt_ PHANDLE phPrevValue
);
WINBASEAPI
LPSTR
WINAPI
GetCommandLineA(
VOID
);
WINBASEAPI
LPWSTR
WINAPI
GetCommandLineW(
VOID
);
WINBASEAPI
_NullNull_terminated_
LPCH
WINAPI
GetEnvironmentStrings(
VOID
);
WINBASEAPI
_NullNull_terminated_
LPWCH
WINAPI
GetEnvironmentStringsW(
VOID
);
WINBASEAPI
BOOL
WINAPI
FreeEnvironmentStringsA(
_In_ _Pre_ _NullNull_terminated_ LPCH penv
);
WINBASEAPI
BOOL
WINAPI
FreeEnvironmentStringsW(
_In_ _Pre_ _NullNull_terminated_ LPWCH penv
);
WINBASEAPI
_Success_(return != 0 && return < nSize)
DWORD
WINAPI
GetEnvironmentVariableA(
_In_opt_ LPCSTR lpName,
_Out_writes_to_opt_(nSize,return + 1) LPSTR lpBuffer,
_In_ DWORD nSize
);
WINBASEAPI
_Success_(return != 0 && return < nSize)
DWORD
WINAPI
GetEnvironmentVariableW(
_In_opt_ LPCWSTR lpName,
_Out_writes_to_opt_(nSize,return + 1) LPWSTR lpBuffer,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetEnvironmentVariableA(
_In_ LPCSTR lpName,
_In_opt_ LPCSTR lpValue
);
WINBASEAPI
BOOL
WINAPI
SetEnvironmentVariableW(
_In_ LPCWSTR lpName,
_In_opt_ LPCWSTR lpValue
);
WINBASEAPI
_Success_(return != 0 && return <= nSize)
DWORD
WINAPI
ExpandEnvironmentStringsA(
_In_ LPCSTR lpSrc,
_Out_writes_to_opt_(nSize,return) LPSTR lpDst,
_In_ DWORD nSize
);
WINBASEAPI
_Success_(return != 0 && return <= nSize)
DWORD
WINAPI
ExpandEnvironmentStringsW(
_In_ LPCWSTR lpSrc,
_Out_writes_to_opt_(nSize,return) LPWSTR lpDst,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetCurrentDirectoryA(
_In_ LPCSTR lpPathName
);
WINBASEAPI
BOOL
WINAPI
SetCurrentDirectoryW(
_In_ LPCWSTR lpPathName
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetCurrentDirectoryA(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPSTR lpBuffer
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetCurrentDirectoryW(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPWSTR lpBuffer
);
WINBASEAPI
DWORD
WINAPI
SearchPathW(
_In_opt_ LPCWSTR lpPath,
_In_ LPCWSTR lpFileName,
_In_opt_ LPCWSTR lpExtension,
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPWSTR lpBuffer,
_Out_opt_ LPWSTR* lpFilePart
);
WINBASEAPI
DWORD
APIENTRY
SearchPathA(
_In_opt_ LPCSTR lpPath,
_In_ LPCSTR lpFileName,
_In_opt_ LPCSTR lpExtension,
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPSTR lpBuffer,
_Out_opt_ LPSTR* lpFilePart
);
WINBASEAPI
BOOL
WINAPI
NeedCurrentDirectoryForExePathA(
_In_ LPCSTR ExeName
);
WINBASEAPI
BOOL
WINAPI
NeedCurrentDirectoryForExePathW(
_In_ LPCWSTR ExeName
);
WINBASEAPI
LONG
WINAPI
CompareFileTime(
_In_ CONST FILETIME* lpFileTime1,
_In_ CONST FILETIME* lpFileTime2
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryA(
_In_ LPCSTR lpPathName,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryW(
_In_ LPCWSTR lpPathName,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
HANDLE
WINAPI
CreateFileA(
_In_ LPCSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
);
WINBASEAPI
HANDLE
WINAPI
CreateFileW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
);
WINBASEAPI
BOOL
WINAPI
DefineDosDeviceW(
_In_ DWORD dwFlags,
_In_ LPCWSTR lpDeviceName,
_In_opt_ LPCWSTR lpTargetPath
);
WINBASEAPI
BOOL
WINAPI
DeleteFileA(
_In_ LPCSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
DeleteFileW(
_In_ LPCWSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
DeleteVolumeMountPointW(
_In_ LPCWSTR lpszVolumeMountPoint
);
WINBASEAPI
BOOL
WINAPI
FileTimeToLocalFileTime(
_In_ CONST FILETIME* lpFileTime,
_Out_ LPFILETIME lpLocalFileTime
);
WINBASEAPI
BOOL
WINAPI
FindClose(
_Inout_ HANDLE hFindFile
);
WINBASEAPI
BOOL
WINAPI
FindCloseChangeNotification(
_In_ HANDLE hChangeHandle
);
WINBASEAPI
HANDLE
WINAPI
FindFirstChangeNotificationA(
_In_ LPCSTR lpPathName,
_In_ BOOL bWatchSubtree,
_In_ DWORD dwNotifyFilter
);
WINBASEAPI
HANDLE
WINAPI
FindFirstChangeNotificationW(
_In_ LPCWSTR lpPathName,
_In_ BOOL bWatchSubtree,
_In_ DWORD dwNotifyFilter
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileA(
_In_ LPCSTR lpFileName,
_Out_ LPWIN32_FIND_DATAA lpFindFileData
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileW(
_In_ LPCWSTR lpFileName,
_Out_ LPWIN32_FIND_DATAW lpFindFileData
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileExA(
_In_ LPCSTR lpFileName,
_In_ FINDEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FIND_DATAA)) LPVOID lpFindFileData,
_In_ FINDEX_SEARCH_OPS fSearchOp,
_Reserved_ LPVOID lpSearchFilter,
_In_ DWORD dwAdditionalFlags
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileExW(
_In_ LPCWSTR lpFileName,
_In_ FINDEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FIND_DATAW)) LPVOID lpFindFileData,
_In_ FINDEX_SEARCH_OPS fSearchOp,
_Reserved_ LPVOID lpSearchFilter,
_In_ DWORD dwAdditionalFlags
);
WINBASEAPI
HANDLE
WINAPI
FindFirstVolumeW(
_Out_writes_(cchBufferLength) LPWSTR lpszVolumeName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
FindNextChangeNotification(
_In_ HANDLE hChangeHandle
);
WINBASEAPI
BOOL
WINAPI
FindNextFileA(
_In_ HANDLE hFindFile,
_Out_ LPWIN32_FIND_DATAA lpFindFileData
);
WINBASEAPI
BOOL
WINAPI
FindNextFileW(
_In_ HANDLE hFindFile,
_Out_ LPWIN32_FIND_DATAW lpFindFileData
);
WINBASEAPI
BOOL
WINAPI
FindNextVolumeW(
_Inout_ HANDLE hFindVolume,
_Out_writes_(cchBufferLength) LPWSTR lpszVolumeName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
FindVolumeClose(
_In_ HANDLE hFindVolume
);
WINBASEAPI
BOOL
WINAPI
FlushFileBuffers(
_In_ HANDLE hFile
);
WINBASEAPI
BOOL
WINAPI
GetDiskFreeSpaceA(
_In_opt_ LPCSTR lpRootPathName,
_Out_opt_ LPDWORD lpSectorsPerCluster,
_Out_opt_ LPDWORD lpBytesPerSector,
_Out_opt_ LPDWORD lpNumberOfFreeClusters,
_Out_opt_ LPDWORD lpTotalNumberOfClusters
);
WINBASEAPI
BOOL
WINAPI
GetDiskFreeSpaceW(
_In_opt_ LPCWSTR lpRootPathName,
_Out_opt_ LPDWORD lpSectorsPerCluster,
_Out_opt_ LPDWORD lpBytesPerSector,
_Out_opt_ LPDWORD lpNumberOfFreeClusters,
_Out_opt_ LPDWORD lpTotalNumberOfClusters
);
WINBASEAPI
BOOL
WINAPI
GetDiskFreeSpaceExA(
_In_opt_ LPCSTR lpDirectoryName,
_Out_opt_ PULARGE_INTEGER lpFreeBytesAvailableToCaller,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
WINBASEAPI
BOOL
WINAPI
GetDiskFreeSpaceExW(
_In_opt_ LPCWSTR lpDirectoryName,
_Out_opt_ PULARGE_INTEGER lpFreeBytesAvailableToCaller,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
typedef struct DISK_SPACE_INFORMATION {
ULONGLONG ActualTotalAllocationUnits;
ULONGLONG ActualAvailableAllocationUnits;
ULONGLONG ActualPoolUnavailableAllocationUnits;
ULONGLONG CallerTotalAllocationUnits;
ULONGLONG CallerAvailableAllocationUnits;
ULONGLONG CallerPoolUnavailableAllocationUnits;
ULONGLONG UsedAllocationUnits;
ULONGLONG TotalReservedAllocationUnits;
ULONGLONG VolumeStorageReserveAllocationUnits;
ULONGLONG AvailableCommittedAllocationUnits;
ULONGLONG PoolAvailableAllocationUnits;
DWORD SectorsPerAllocationUnit;
DWORD BytesPerSector;
} DISK_SPACE_INFORMATION;
WINBASEAPI
HRESULT
WINAPI
GetDiskSpaceInformationA(
_In_opt_ LPCSTR rootPath,
_Out_ DISK_SPACE_INFORMATION* diskSpaceInfo
);
WINBASEAPI
HRESULT
WINAPI
GetDiskSpaceInformationW(
_In_opt_ LPCWSTR rootPath,
_Out_ DISK_SPACE_INFORMATION* diskSpaceInfo
);
WINBASEAPI
UINT
WINAPI
GetDriveTypeA(
_In_opt_ LPCSTR lpRootPathName
);
WINBASEAPI
UINT
WINAPI
GetDriveTypeW(
_In_opt_ LPCWSTR lpRootPathName
);
typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
WINBASEAPI
DWORD
WINAPI
GetFileAttributesA(
_In_ LPCSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetFileAttributesW(
_In_ LPCWSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
GetFileAttributesExA(
_In_ LPCSTR lpFileName,
_In_ GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FILE_ATTRIBUTE_DATA)) LPVOID lpFileInformation
);
WINBASEAPI
BOOL
WINAPI
GetFileAttributesExW(
_In_ LPCWSTR lpFileName,
_In_ GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FILE_ATTRIBUTE_DATA)) LPVOID lpFileInformation
);
typedef struct _BY_HANDLE_FILE_INFORMATION {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD dwVolumeSerialNumber;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD nNumberOfLinks;
DWORD nFileIndexHigh;
DWORD nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
WINBASEAPI
BOOL
WINAPI
GetFileInformationByHandle(
_In_ HANDLE hFile,
_Out_ LPBY_HANDLE_FILE_INFORMATION lpFileInformation
);
WINBASEAPI
DWORD
WINAPI
GetFileSize(
_In_ HANDLE hFile,
_Out_opt_ LPDWORD lpFileSizeHigh
);
WINBASEAPI
BOOL
WINAPI
GetFileSizeEx(
_In_ HANDLE hFile,
_Out_ PLARGE_INTEGER lpFileSize
);
WINBASEAPI
DWORD
WINAPI
GetFileType(
_In_ HANDLE hFile
);
WINBASEAPI
DWORD
WINAPI
GetFinalPathNameByHandleA(
_In_ HANDLE hFile,
_Out_writes_(cchFilePath) LPSTR lpszFilePath,
_In_ DWORD cchFilePath,
_In_ DWORD dwFlags
);
WINBASEAPI
DWORD
WINAPI
GetFinalPathNameByHandleW(
_In_ HANDLE hFile,
_Out_writes_(cchFilePath) LPWSTR lpszFilePath,
_In_ DWORD cchFilePath,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
GetFileTime(
_In_ HANDLE hFile,
_Out_opt_ LPFILETIME lpCreationTime,
_Out_opt_ LPFILETIME lpLastAccessTime,
_Out_opt_ LPFILETIME lpLastWriteTime
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetFullPathNameW(
_In_ LPCWSTR lpFileName,
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPWSTR lpBuffer,
_Outptr_opt_ LPWSTR* lpFilePart
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetFullPathNameA(
_In_ LPCSTR lpFileName,
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPSTR lpBuffer,
_Outptr_opt_ LPSTR* lpFilePart
);
WINBASEAPI
DWORD
WINAPI
GetLogicalDrives(
VOID
);
WINBASEAPI
DWORD
WINAPI
GetLogicalDriveStringsW(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPWSTR lpBuffer
);
WINBASEAPI
_Success_(return != 0 && return < cchBuffer)
DWORD
WINAPI
GetLongPathNameA(
_In_ LPCSTR lpszShortPath,
_Out_writes_to_opt_(cchBuffer,return + 1) LPSTR lpszLongPath,
_In_ DWORD cchBuffer
);
WINBASEAPI
_Success_(return != 0 && return < cchBuffer)
DWORD
WINAPI
GetLongPathNameW(
_In_ LPCWSTR lpszShortPath,
_Out_writes_to_opt_(cchBuffer,return + 1) LPWSTR lpszLongPath,
_In_ DWORD cchBuffer
);
WINBASEAPI
BOOL
WINAPI
AreShortNamesEnabled(
_In_ HANDLE Handle,
_Out_ BOOL* Enabled
);
WINBASEAPI
_Success_(return != 0 && return < cchBuffer)
DWORD
WINAPI
GetShortPathNameW(
_In_ LPCWSTR lpszLongPath,
_Out_writes_to_opt_(cchBuffer,return + 1) LPWSTR lpszShortPath,
_In_ DWORD cchBuffer
);
WINBASEAPI
UINT
WINAPI
GetTempFileNameW(
_In_ LPCWSTR lpPathName,
_In_ LPCWSTR lpPrefixString,
_In_ UINT uUnique,
_Out_writes_(MAX_PATH) LPWSTR lpTempFileName
);
WINBASEAPI
BOOL
WINAPI
GetVolumeInformationByHandleW(
_In_ HANDLE hFile,
_Out_writes_opt_(nVolumeNameSize) LPWSTR lpVolumeNameBuffer,
_In_ DWORD nVolumeNameSize,
_Out_opt_ LPDWORD lpVolumeSerialNumber,
_Out_opt_ LPDWORD lpMaximumComponentLength,
_Out_opt_ LPDWORD lpFileSystemFlags,
_Out_writes_opt_(nFileSystemNameSize) LPWSTR lpFileSystemNameBuffer,
_In_ DWORD nFileSystemNameSize
);
WINBASEAPI
BOOL
WINAPI
GetVolumeInformationW(
_In_opt_ LPCWSTR lpRootPathName,
_Out_writes_opt_(nVolumeNameSize) LPWSTR lpVolumeNameBuffer,
_In_ DWORD nVolumeNameSize,
_Out_opt_ LPDWORD lpVolumeSerialNumber,
_Out_opt_ LPDWORD lpMaximumComponentLength,
_Out_opt_ LPDWORD lpFileSystemFlags,
_Out_writes_opt_(nFileSystemNameSize) LPWSTR lpFileSystemNameBuffer,
_In_ DWORD nFileSystemNameSize
);
WINBASEAPI
BOOL
WINAPI
GetVolumePathNameW(
_In_ LPCWSTR lpszFileName,
_Out_writes_(cchBufferLength) LPWSTR lpszVolumePathName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
LocalFileTimeToFileTime(
_In_ CONST FILETIME* lpLocalFileTime,
_Out_ LPFILETIME lpFileTime
);
WINBASEAPI
BOOL
WINAPI
LockFile(
_In_ HANDLE hFile,
_In_ DWORD dwFileOffsetLow,
_In_ DWORD dwFileOffsetHigh,
_In_ DWORD nNumberOfBytesToLockLow,
_In_ DWORD nNumberOfBytesToLockHigh
);
WINBASEAPI
BOOL
WINAPI
LockFileEx(
_In_ HANDLE hFile,
_In_ DWORD dwFlags,
_Reserved_ DWORD dwReserved,
_In_ DWORD nNumberOfBytesToLockLow,
_In_ DWORD nNumberOfBytesToLockHigh,
_Inout_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
DWORD
WINAPI
QueryDosDeviceW(
_In_opt_ LPCWSTR lpDeviceName,
_Out_writes_to_opt_(ucchMax,return) LPWSTR lpTargetPath,
_In_ DWORD ucchMax
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
ReadFile(
_In_ HANDLE hFile,
_Out_writes_bytes_to_opt_(nNumberOfBytesToRead, *lpNumberOfBytesRead) __out_data_source(FILE) LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_opt_ LPDWORD lpNumberOfBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
ReadFileEx(
_In_ HANDLE hFile,
_Out_writes_bytes_opt_(nNumberOfBytesToRead) __out_data_source(FILE) LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Inout_ LPOVERLAPPED lpOverlapped,
_In_ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
ReadFileScatter(
_In_ HANDLE hFile,
_In_ FILE_SEGMENT_ELEMENT aSegmentArray[],
_In_ DWORD nNumberOfBytesToRead,
_Reserved_ LPDWORD lpReserved,
_Inout_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryA(
_In_ LPCSTR lpPathName
);
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryW(
_In_ LPCWSTR lpPathName
);
WINBASEAPI
BOOL
WINAPI
SetEndOfFile(
_In_ HANDLE hFile
);
WINBASEAPI
BOOL
WINAPI
SetFileAttributesA(
_In_ LPCSTR lpFileName,
_In_ DWORD dwFileAttributes
);
WINBASEAPI
BOOL
WINAPI
SetFileAttributesW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwFileAttributes
);
WINBASEAPI
BOOL
WINAPI
SetFileInformationByHandle(
_In_ HANDLE hFile,
_In_ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
_In_reads_bytes_(dwBufferSize) LPVOID lpFileInformation,
_In_ DWORD dwBufferSize
);
WINBASEAPI
DWORD
WINAPI
SetFilePointer(
_In_ HANDLE hFile,
_In_ LONG lDistanceToMove,
_Inout_opt_ PLONG lpDistanceToMoveHigh,
_In_ DWORD dwMoveMethod
);
WINBASEAPI
BOOL
WINAPI
SetFilePointerEx(
_In_ HANDLE hFile,
_In_ LARGE_INTEGER liDistanceToMove,
_Out_opt_ PLARGE_INTEGER lpNewFilePointer,
_In_ DWORD dwMoveMethod
);
WINBASEAPI
BOOL
WINAPI
SetFileTime(
_In_ HANDLE hFile,
_In_opt_ CONST FILETIME* lpCreationTime,
_In_opt_ CONST FILETIME* lpLastAccessTime,
_In_opt_ CONST FILETIME* lpLastWriteTime
);
WINBASEAPI
BOOL
WINAPI
SetFileValidData(
_In_ HANDLE hFile,
_In_ LONGLONG ValidDataLength
);
WINBASEAPI
BOOL
WINAPI
UnlockFile(
_In_ HANDLE hFile,
_In_ DWORD dwFileOffsetLow,
_In_ DWORD dwFileOffsetHigh,
_In_ DWORD nNumberOfBytesToUnlockLow,
_In_ DWORD nNumberOfBytesToUnlockHigh
);
WINBASEAPI
BOOL
WINAPI
UnlockFileEx(
_In_ HANDLE hFile,
_Reserved_ DWORD dwReserved,
_In_ DWORD nNumberOfBytesToUnlockLow,
_In_ DWORD nNumberOfBytesToUnlockHigh,
_Inout_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
WriteFile(
_In_ HANDLE hFile,
_In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer,
_In_ DWORD nNumberOfBytesToWrite,
_Out_opt_ LPDWORD lpNumberOfBytesWritten,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
WriteFileEx(
_In_ HANDLE hFile,
_In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer,
_In_ DWORD nNumberOfBytesToWrite,
_Inout_ LPOVERLAPPED lpOverlapped,
_In_ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
WINBASEAPI
BOOL
WINAPI
WriteFileGather(
_In_ HANDLE hFile,
_In_ FILE_SEGMENT_ELEMENT aSegmentArray[],
_In_ DWORD nNumberOfBytesToWrite,
_Reserved_ LPDWORD lpReserved,
_Inout_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
DWORD
WINAPI
GetTempPathW(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPWSTR lpBuffer
);
WINBASEAPI
BOOL
WINAPI
GetVolumeNameForVolumeMountPointW(
_In_ LPCWSTR lpszVolumeMountPoint,
_Out_writes_(cchBufferLength) LPWSTR lpszVolumeName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
GetVolumePathNamesForVolumeNameW(
_In_ LPCWSTR lpszVolumeName,
_Out_writes_to_opt_(cchBufferLength,*lpcchReturnLength) _Post_ _NullNull_terminated_ LPWCH lpszVolumePathNames,
_In_ DWORD cchBufferLength,
_Out_ PDWORD lpcchReturnLength
);
typedef struct _CREATEFILE2_EXTENDED_PARAMETERS {
DWORD dwSize;
DWORD dwFileAttributes;
DWORD dwFileFlags;
DWORD dwSecurityQosFlags;
LPSECURITY_ATTRIBUTES lpSecurityAttributes;
HANDLE hTemplateFile;
} CREATEFILE2_EXTENDED_PARAMETERS, *PCREATEFILE2_EXTENDED_PARAMETERS, *LPCREATEFILE2_EXTENDED_PARAMETERS;
WINBASEAPI
HANDLE
WINAPI
CreateFile2(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_ DWORD dwCreationDisposition,
_In_opt_ LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams
);
WINBASEAPI
BOOL
WINAPI
SetFileIoOverlappedRange(
_In_ HANDLE FileHandle,
_In_ PUCHAR OverlappedRangeStart,
_In_ ULONG Length
);
WINBASEAPI
DWORD
WINAPI
GetCompressedFileSizeA(
_In_ LPCSTR lpFileName,
_Out_opt_ LPDWORD lpFileSizeHigh
);
WINBASEAPI
DWORD
WINAPI
GetCompressedFileSizeW(
_In_ LPCWSTR lpFileName,
_Out_opt_ LPDWORD lpFileSizeHigh
);
typedef enum _STREAM_INFO_LEVELS {
FindStreamInfoStandard,
FindStreamInfoMaxInfoLevel
} STREAM_INFO_LEVELS;
typedef struct _WIN32_FIND_STREAM_DATA {
LARGE_INTEGER StreamSize;
WCHAR cStreamName[ MAX_PATH + 36 ];
} WIN32_FIND_STREAM_DATA, *PWIN32_FIND_STREAM_DATA;
WINBASEAPI
HANDLE
WINAPI
FindFirstStreamW(
_In_ LPCWSTR lpFileName,
_In_ STREAM_INFO_LEVELS InfoLevel,
_Out_writes_bytes_(sizeof(WIN32_FIND_STREAM_DATA)) LPVOID lpFindStreamData,
_Reserved_ DWORD dwFlags
);
WINBASEAPI
BOOL
APIENTRY
FindNextStreamW(
_In_ HANDLE hFindStream,
_Out_writes_bytes_(sizeof(WIN32_FIND_STREAM_DATA)) LPVOID lpFindStreamData
);
WINBASEAPI
BOOL
WINAPI
AreFileApisANSI(
VOID
);
WINBASEAPI
DWORD
WINAPI
GetTempPathA(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength,return + 1) LPSTR lpBuffer
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileNameW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwFlags,
_Inout_ LPDWORD StringLength,
_Out_writes_(*StringLength) PWSTR LinkName
);
WINBASEAPI
BOOL
APIENTRY
FindNextFileNameW(
_In_ HANDLE hFindStream,
_Inout_ LPDWORD StringLength,
_Out_writes_(*StringLength) PWSTR LinkName
);
WINBASEAPI
BOOL
WINAPI
GetVolumeInformationA(
_In_opt_ LPCSTR lpRootPathName,
_Out_writes_opt_(nVolumeNameSize) LPSTR lpVolumeNameBuffer,
_In_ DWORD nVolumeNameSize,
_Out_opt_ LPDWORD lpVolumeSerialNumber,
_Out_opt_ LPDWORD lpMaximumComponentLength,
_Out_opt_ LPDWORD lpFileSystemFlags,
_Out_writes_opt_(nFileSystemNameSize) LPSTR lpFileSystemNameBuffer,
_In_ DWORD nFileSystemNameSize
);
WINBASEAPI
UINT
WINAPI
GetTempFileNameA(
_In_ LPCSTR lpPathName,
_In_ LPCSTR lpPrefixString,
_In_ UINT uUnique,
_Out_writes_(MAX_PATH) LPSTR lpTempFileName
);
WINBASEAPI
VOID
WINAPI
SetFileApisToOEM(
VOID
);
WINBASEAPI
VOID
WINAPI
SetFileApisToANSI(
VOID
);
WINBASEAPI
_Success_(return > 0 && return < BufferLength)
DWORD
WINAPI
GetTempPath2W(
_In_ DWORD BufferLength,
_Out_writes_to_opt_(BufferLength,return + 1) LPWSTR Buffer
);
WINBASEAPI
_Success_(return > 0 && return < BufferLength)
DWORD
WINAPI
GetTempPath2A(
_In_ DWORD BufferLength,
_Out_writes_to_opt_(BufferLength,return + 1) LPSTR Buffer
);
WINSTORAGEAPI
BOOL
WINAPI
CopyFileFromAppW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName,
_In_ BOOL bFailIfExists
)
;
WINSTORAGEAPI
BOOL
WINAPI
CreateDirectoryFromAppW(
_In_ LPCWSTR lpPathName,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
)
;
WINSTORAGEAPI
HANDLE
WINAPI
CreateFileFromAppW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
)
;
WINSTORAGEAPI
HANDLE
WINAPI
CreateFile2FromAppW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_ DWORD dwCreationDisposition,
_In_opt_ LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams
)
;
WINSTORAGEAPI
BOOL
WINAPI
DeleteFileFromAppW(
_In_ LPCWSTR lpFileName
)
;
WINSTORAGEAPI
HANDLE
WINAPI
FindFirstFileExFromAppW(
_In_ LPCWSTR lpFileName,
_In_ FINDEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FIND_DATAW)) LPVOID lpFindFileData,
_In_ FINDEX_SEARCH_OPS fSearchOp,
_Reserved_ LPVOID lpSearchFilter,
_In_ DWORD dwAdditionalFlags
)
;
WINSTORAGEAPI
BOOL
WINAPI
GetFileAttributesExFromAppW(
_In_ LPCWSTR lpFileName,
_In_ GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FILE_ATTRIBUTE_DATA)) LPVOID lpFileInformation
)
;
WINSTORAGEAPI
BOOL
WINAPI
MoveFileFromAppW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName
)
;
WINSTORAGEAPI
BOOL
WINAPI
RemoveDirectoryFromAppW(
_In_ LPCWSTR lpPathName
)
;
WINSTORAGEAPI
BOOL
WINAPI
ReplaceFileFromAppW(
_In_ LPCWSTR lpReplacedFileName,
_In_ LPCWSTR lpReplacementFileName,
_In_opt_ LPCWSTR lpBackupFileName,
_In_ DWORD dwReplaceFlags,
_Reserved_ LPVOID lpExclude,
_Reserved_ LPVOID lpReserved
)
;
WINSTORAGEAPI
BOOL
WINAPI
SetFileAttributesFromAppW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwFileAttributes
)
;
WINBASEAPI
BOOL
WINAPI
IsDebuggerPresent(
VOID
);
WINBASEAPI
VOID
WINAPI
DebugBreak(
VOID
);
WINBASEAPI
VOID
WINAPI
OutputDebugStringA(
_In_opt_ LPCSTR lpOutputString
);
WINBASEAPI
VOID
WINAPI
OutputDebugStringW(
_In_opt_ LPCWSTR lpOutputString
);
WINBASEAPI
BOOL
APIENTRY
ContinueDebugEvent(
_In_ DWORD dwProcessId,
_In_ DWORD dwThreadId,
_In_ DWORD dwContinueStatus
);
WINBASEAPI
BOOL
APIENTRY
WaitForDebugEvent(
_Out_ LPDEBUG_EVENT lpDebugEvent,
_In_ DWORD dwMilliseconds
);
WINBASEAPI
BOOL
APIENTRY
DebugActiveProcess(
_In_ DWORD dwProcessId
);
WINBASEAPI
BOOL
APIENTRY
DebugActiveProcessStop(
_In_ DWORD dwProcessId
);
WINBASEAPI
BOOL
WINAPI
CheckRemoteDebuggerPresent(
_In_ HANDLE hProcess,
_Out_ PBOOL pbDebuggerPresent
);
WINBASEAPI
BOOL
APIENTRY
WaitForDebugEventEx(
_Out_ LPDEBUG_EVENT lpDebugEvent,
_In_ DWORD dwMilliseconds
);
WINBASEAPI
_Ret_maybenull_
PVOID
WINAPI
EncodePointer(
_In_opt_ PVOID Ptr
);
WINBASEAPI
_Ret_maybenull_
PVOID
WINAPI
DecodePointer(
_In_opt_ PVOID Ptr
);
WINBASEAPI
_Ret_maybenull_
PVOID
WINAPI
EncodeSystemPointer(
_In_opt_ PVOID Ptr
);
WINBASEAPI
_Ret_maybenull_
PVOID
WINAPI
DecodeSystemPointer(
_In_opt_ PVOID Ptr
);
WINBASEAPI
HRESULT
WINAPI
EncodeRemotePointer(
_In_ HANDLE ProcessHandle,
_In_opt_ PVOID Ptr,
_Out_ PVOID* EncodedPtr
);
WINBASEAPI
HRESULT
WINAPI
DecodeRemotePointer(
_In_ HANDLE ProcessHandle,
_In_opt_ PVOID Ptr,
_Out_ PVOID* DecodedPtr
);
WINBASEAPI
BOOL
WINAPI
Beep(
_In_ DWORD dwFreq,
_In_ DWORD dwDuration
);
WINBASEAPI
BOOL
WINAPI
CloseHandle(
_In_ _Post_ptr_invalid_ HANDLE hObject
);
WINBASEAPI
BOOL
WINAPI
DuplicateHandle(
_In_ HANDLE hSourceProcessHandle,
_In_ HANDLE hSourceHandle,
_In_ HANDLE hTargetProcessHandle,
_Outptr_ LPHANDLE lpTargetHandle,
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ DWORD dwOptions
);
WINBASEAPI
BOOL
WINAPI
CompareObjectHandles(
_In_ HANDLE hFirstObjectHandle,
_In_ HANDLE hSecondObjectHandle
);
WINBASEAPI
BOOL
WINAPI
GetHandleInformation(
_In_ HANDLE hObject,
_Out_ LPDWORD lpdwFlags
);
WINBASEAPI
BOOL
WINAPI
SetHandleInformation(
_In_ HANDLE hObject,
_In_ DWORD dwMask,
_In_ DWORD dwFlags
);
typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(
_In_ struct _EXCEPTION_POINTERS *ExceptionInfo
);
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
WINBASEAPI
VOID
WINAPI
RaiseException(
_In_ DWORD dwExceptionCode,
_In_ DWORD dwExceptionFlags,
_In_ DWORD nNumberOfArguments,
_In_reads_opt_(nNumberOfArguments) CONST ULONG_PTR* lpArguments
);
__callback
WINBASEAPI
LONG
WINAPI
UnhandledExceptionFilter(
_In_ struct _EXCEPTION_POINTERS* ExceptionInfo
);
WINBASEAPI
LPTOP_LEVEL_EXCEPTION_FILTER
WINAPI
SetUnhandledExceptionFilter(
_In_opt_ LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);
WINBASEAPI
_Check_return_
_Post_equals_last_error_
DWORD
WINAPI
GetLastError(
VOID
);
WINBASEAPI
VOID
WINAPI
SetLastError(
_In_ DWORD dwErrCode
);
WINBASEAPI
UINT
WINAPI
GetErrorMode(
VOID
);
WINBASEAPI
UINT
WINAPI
SetErrorMode(
_In_ UINT uMode
);
WINBASEAPI
_Ret_maybenull_
PVOID
WINAPI
AddVectoredExceptionHandler(
_In_ ULONG First,
_In_ PVECTORED_EXCEPTION_HANDLER Handler
);
WINBASEAPI
ULONG
WINAPI
RemoveVectoredExceptionHandler(
_In_ PVOID Handle
);
WINBASEAPI
_Ret_maybenull_
PVOID
WINAPI
AddVectoredContinueHandler(
_In_ ULONG First,
_In_ PVECTORED_EXCEPTION_HANDLER Handler
);
WINBASEAPI
ULONG
WINAPI
RemoveVectoredContinueHandler(
_In_ PVOID Handle
);
WINBASEAPI
VOID
WINAPI
RaiseFailFastException(
_In_opt_ PEXCEPTION_RECORD pExceptionRecord,
_In_opt_ PCONTEXT pContextRecord,
_In_ DWORD dwFlags
);
WINBASEAPI
VOID
WINAPI
FatalAppExitA(
_In_ UINT uAction,
_In_ LPCSTR lpMessageText
);
WINBASEAPI
VOID
WINAPI
FatalAppExitW(
_In_ UINT uAction,
_In_ LPCWSTR lpMessageText
);
WINBASEAPI
DWORD
WINAPI
GetThreadErrorMode(
VOID
);
WINBASEAPI
BOOL
WINAPI
SetThreadErrorMode(
_In_ DWORD dwNewMode,
_In_opt_ LPDWORD lpOldMode
);
WINBASEAPI
VOID
WINAPI
TerminateProcessOnMemoryExhaustion(
_In_ SIZE_T FailedAllocationSize
);
WINBASEAPI
DWORD
WINAPI
FlsAlloc(
_In_opt_ PFLS_CALLBACK_FUNCTION lpCallback
);
WINBASEAPI
PVOID
WINAPI
FlsGetValue(
_In_ DWORD dwFlsIndex
);
WINBASEAPI
BOOL
WINAPI
FlsSetValue(
_In_ DWORD dwFlsIndex,
_In_opt_ PVOID lpFlsData
);
WINBASEAPI
BOOL
WINAPI
FlsFree(
_In_ DWORD dwFlsIndex
);
WINBASEAPI
BOOL
WINAPI
IsThreadAFiber(
VOID
);
WINBASEAPI
BOOL
WINAPI
CreatePipe(
_Out_ PHANDLE hReadPipe,
_Out_ PHANDLE hWritePipe,
_In_opt_ LPSECURITY_ATTRIBUTES lpPipeAttributes,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
ConnectNamedPipe(
_In_ HANDLE hNamedPipe,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
DisconnectNamedPipe(
_In_ HANDLE hNamedPipe
);
WINBASEAPI
BOOL
WINAPI
SetNamedPipeHandleState(
_In_ HANDLE hNamedPipe,
_In_opt_ LPDWORD lpMode,
_In_opt_ LPDWORD lpMaxCollectionCount,
_In_opt_ LPDWORD lpCollectDataTimeout
);
WINBASEAPI
BOOL
WINAPI
PeekNamedPipe(
_In_ HANDLE hNamedPipe,
_Out_writes_bytes_to_opt_(nBufferSize,*lpBytesRead) LPVOID lpBuffer,
_In_ DWORD nBufferSize,
_Out_opt_ LPDWORD lpBytesRead,
_Out_opt_ LPDWORD lpTotalBytesAvail,
_Out_opt_ LPDWORD lpBytesLeftThisMessage
);
WINBASEAPI
BOOL
WINAPI
TransactNamedPipe(
_In_ HANDLE hNamedPipe,
_In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
_In_ DWORD nInBufferSize,
_Out_writes_bytes_to_opt_(nOutBufferSize,*lpBytesRead) LPVOID lpOutBuffer,
_In_ DWORD nOutBufferSize,
_Out_ LPDWORD lpBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
HANDLE
WINAPI
CreateNamedPipeW(
_In_ LPCWSTR lpName,
_In_ DWORD dwOpenMode,
_In_ DWORD dwPipeMode,
_In_ DWORD nMaxInstances,
_In_ DWORD nOutBufferSize,
_In_ DWORD nInBufferSize,
_In_ DWORD nDefaultTimeOut,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
WaitNamedPipeW(
_In_ LPCWSTR lpNamedPipeName,
_In_ DWORD nTimeOut
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeClientComputerNameW(
_In_ HANDLE Pipe,
_Out_writes_bytes_(ClientComputerNameLength) LPWSTR ClientComputerName,
_In_ ULONG ClientComputerNameLength
);
WINADVAPI
_Must_inspect_result_
BOOL
WINAPI
ImpersonateNamedPipeClient(
_In_ HANDLE hNamedPipe
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeInfo(
_In_ HANDLE hNamedPipe,
_Out_opt_ LPDWORD lpFlags,
_Out_opt_ LPDWORD lpOutBufferSize,
_Out_opt_ LPDWORD lpInBufferSize,
_Out_opt_ LPDWORD lpMaxInstances
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeHandleStateW(
_In_ HANDLE hNamedPipe,
_Out_opt_ LPDWORD lpState,
_Out_opt_ LPDWORD lpCurInstances,
_Out_opt_ LPDWORD lpMaxCollectionCount,
_Out_opt_ LPDWORD lpCollectDataTimeout,
_Out_writes_opt_(nMaxUserNameSize) LPWSTR lpUserName,
_In_ DWORD nMaxUserNameSize
);
WINBASEAPI
BOOL
WINAPI
CallNamedPipeW(
_In_ LPCWSTR lpNamedPipeName,
_In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
_In_ DWORD nInBufferSize,
_Out_writes_bytes_to_opt_(nOutBufferSize,*lpBytesRead) LPVOID lpOutBuffer,
_In_ DWORD nOutBufferSize,
_Out_ LPDWORD lpBytesRead,
_In_ DWORD nTimeOut
);
WINBASEAPI
BOOL
WINAPI
QueryPerformanceCounter(
_Out_ LARGE_INTEGER* lpPerformanceCount
);
WINBASEAPI
BOOL
WINAPI
QueryPerformanceFrequency(
_Out_ LARGE_INTEGER* lpFrequency
);
typedef struct _HEAP_SUMMARY {
DWORD cb;
SIZE_T cbAllocated;
SIZE_T cbCommitted;
SIZE_T cbReserved;
SIZE_T cbMaxReserve;
} HEAP_SUMMARY, *PHEAP_SUMMARY;
typedef PHEAP_SUMMARY LPHEAP_SUMMARY;
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
HeapCreate(
_In_ DWORD flOptions,
_In_ SIZE_T dwInitialSize,
_In_ SIZE_T dwMaximumSize
);
WINBASEAPI
BOOL
WINAPI
HeapDestroy(
_In_ HANDLE hHeap
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(dwBytes)
DECLSPEC_ALLOCATOR
LPVOID
WINAPI
HeapAlloc(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags,
_In_ SIZE_T dwBytes
);
WINBASEAPI
_Success_(return != 0)
_Ret_maybenull_
_Post_writable_byte_size_(dwBytes)
DECLSPEC_ALLOCATOR
LPVOID
WINAPI
HeapReAlloc(
_Inout_ HANDLE hHeap,
_In_ DWORD dwFlags,
_Frees_ptr_opt_ LPVOID lpMem,
_In_ SIZE_T dwBytes
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
HeapFree(
_Inout_ HANDLE hHeap,
_In_ DWORD dwFlags,
__drv_freesMem(Mem) _Frees_ptr_opt_ LPVOID lpMem
);
WINBASEAPI
SIZE_T
WINAPI
HeapSize(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags,
_In_ LPCVOID lpMem
);
WINBASEAPI
HANDLE
WINAPI
GetProcessHeap(
VOID
);
WINBASEAPI
SIZE_T
WINAPI
HeapCompact(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
HeapSetInformation(
_In_opt_ HANDLE HeapHandle,
_In_ HEAP_INFORMATION_CLASS HeapInformationClass,
_In_reads_bytes_opt_(HeapInformationLength) PVOID HeapInformation,
_In_ SIZE_T HeapInformationLength
);
WINBASEAPI
BOOL
WINAPI
HeapValidate(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags,
_In_opt_ LPCVOID lpMem
);
BOOL
WINAPI
HeapSummary(
_In_ HANDLE hHeap,
_In_ DWORD dwFlags,
_Out_ LPHEAP_SUMMARY lpSummary
);
WINBASEAPI
DWORD
WINAPI
GetProcessHeaps(
_In_ DWORD NumberOfHeaps,
_Out_writes_to_(NumberOfHeaps,return) PHANDLE ProcessHeaps
);
WINBASEAPI
BOOL
WINAPI
HeapLock(
_In_ HANDLE hHeap
);
WINBASEAPI
BOOL
WINAPI
HeapUnlock(
_In_ HANDLE hHeap
);
WINBASEAPI
BOOL
WINAPI
HeapWalk(
_In_ HANDLE hHeap,
_Inout_ LPPROCESS_HEAP_ENTRY lpEntry
);
WINBASEAPI
BOOL
WINAPI
HeapQueryInformation(
_In_opt_ HANDLE HeapHandle,
_In_ HEAP_INFORMATION_CLASS HeapInformationClass,
_Out_writes_bytes_to_opt_(HeapInformationLength,*ReturnLength) PVOID HeapInformation,
_In_ SIZE_T HeapInformationLength,
_Out_opt_ PSIZE_T ReturnLength
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateIoCompletionPort(
_In_ HANDLE FileHandle,
_In_opt_ HANDLE ExistingCompletionPort,
_In_ ULONG_PTR CompletionKey,
_In_ DWORD NumberOfConcurrentThreads
);
WINBASEAPI
BOOL
WINAPI
GetQueuedCompletionStatus(
_In_ HANDLE CompletionPort,
_Out_ LPDWORD lpNumberOfBytesTransferred,
_Out_ PULONG_PTR lpCompletionKey,
_Out_ LPOVERLAPPED* lpOverlapped,
_In_ DWORD dwMilliseconds
);
WINBASEAPI
BOOL
WINAPI
GetQueuedCompletionStatusEx(
_In_ HANDLE CompletionPort,
_Out_writes_to_(ulCount,*ulNumEntriesRemoved) LPOVERLAPPED_ENTRY lpCompletionPortEntries,
_In_ ULONG ulCount,
_Out_ PULONG ulNumEntriesRemoved,
_In_ DWORD dwMilliseconds,
_In_ BOOL fAlertable
);
WINBASEAPI
BOOL
WINAPI
PostQueuedCompletionStatus(
_In_ HANDLE CompletionPort,
_In_ DWORD dwNumberOfBytesTransferred,
_In_ ULONG_PTR dwCompletionKey,
_In_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
DeviceIoControl(
_In_ HANDLE hDevice,
_In_ DWORD dwIoControlCode,
_In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
_In_ DWORD nInBufferSize,
_Out_writes_bytes_to_opt_(nOutBufferSize,*lpBytesReturned) LPVOID lpOutBuffer,
_In_ DWORD nOutBufferSize,
_Out_opt_ LPDWORD lpBytesReturned,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
GetOverlappedResult(
_In_ HANDLE hFile,
_In_ LPOVERLAPPED lpOverlapped,
_Out_ LPDWORD lpNumberOfBytesTransferred,
_In_ BOOL bWait
);
WINBASEAPI
BOOL
WINAPI
CancelIoEx(
_In_ HANDLE hFile,
_In_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
CancelIo(
_In_ HANDLE hFile
);
WINBASEAPI
BOOL
WINAPI
GetOverlappedResultEx(
_In_ HANDLE hFile,
_In_ LPOVERLAPPED lpOverlapped,
_Out_ LPDWORD lpNumberOfBytesTransferred,
_In_ DWORD dwMilliseconds,
_In_ BOOL bAlertable
);
WINBASEAPI
BOOL
WINAPI
CancelSynchronousIo(
_In_ HANDLE hThread
);
typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
WINBASEAPI
VOID
WINAPI
InitializeSRWLock(
_Out_ PSRWLOCK SRWLock
);
WINBASEAPI
_Releases_exclusive_lock_(*SRWLock)
VOID
WINAPI
ReleaseSRWLockExclusive(
_Inout_ PSRWLOCK SRWLock
);
WINBASEAPI
_Releases_shared_lock_(*SRWLock)
VOID
WINAPI
ReleaseSRWLockShared(
_Inout_ PSRWLOCK SRWLock
);
WINBASEAPI
_Acquires_exclusive_lock_(*SRWLock)
VOID
WINAPI
AcquireSRWLockExclusive(
_Inout_ PSRWLOCK SRWLock
);
WINBASEAPI
_Acquires_shared_lock_(*SRWLock)
VOID
WINAPI
AcquireSRWLockShared(
_Inout_ PSRWLOCK SRWLock
);
WINBASEAPI
_When_(return!=0, _Acquires_exclusive_lock_(*SRWLock))
BOOLEAN
WINAPI
TryAcquireSRWLockExclusive(
_Inout_ PSRWLOCK SRWLock
);
WINBASEAPI
_When_(return!=0, _Acquires_shared_lock_(*SRWLock))
BOOLEAN
WINAPI
TryAcquireSRWLockShared(
_Inout_ PSRWLOCK SRWLock
);
WINBASEAPI
VOID
WINAPI
InitializeCriticalSection(
_Out_ LPCRITICAL_SECTION lpCriticalSection
);
WINBASEAPI
VOID
WINAPI
EnterCriticalSection(
_Inout_ LPCRITICAL_SECTION lpCriticalSection
);
WINBASEAPI
VOID
WINAPI
LeaveCriticalSection(
_Inout_ LPCRITICAL_SECTION lpCriticalSection
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
InitializeCriticalSectionAndSpinCount(
_Out_ LPCRITICAL_SECTION lpCriticalSection,
_In_ DWORD dwSpinCount
);
WINBASEAPI
BOOL
WINAPI
InitializeCriticalSectionEx(
_Out_ LPCRITICAL_SECTION lpCriticalSection,
_In_ DWORD dwSpinCount,
_In_ DWORD Flags
);
WINBASEAPI
DWORD
WINAPI
SetCriticalSectionSpinCount(
_Inout_ LPCRITICAL_SECTION lpCriticalSection,
_In_ DWORD dwSpinCount
);
WINBASEAPI
BOOL
WINAPI
TryEnterCriticalSection(
_Inout_ LPCRITICAL_SECTION lpCriticalSection
);
WINBASEAPI
VOID
WINAPI
DeleteCriticalSection(
_Inout_ LPCRITICAL_SECTION lpCriticalSection
);
typedef RTL_RUN_ONCE INIT_ONCE;
typedef PRTL_RUN_ONCE PINIT_ONCE;
typedef PRTL_RUN_ONCE LPINIT_ONCE;
typedef
BOOL
(WINAPI *PINIT_ONCE_FN) (
_Inout_ PINIT_ONCE InitOnce,
_Inout_opt_ PVOID Parameter,
_Outptr_opt_result_maybenull_ PVOID *Context
);
WINBASEAPI
VOID
WINAPI
InitOnceInitialize(
_Out_ PINIT_ONCE InitOnce
);
WINBASEAPI
BOOL
WINAPI
InitOnceExecuteOnce(
_Inout_ PINIT_ONCE InitOnce,
_In_ __callback PINIT_ONCE_FN InitFn,
_Inout_opt_ PVOID Parameter,
_Outptr_opt_result_maybenull_ LPVOID* Context
);
WINBASEAPI
BOOL
WINAPI
InitOnceBeginInitialize(
_Inout_ LPINIT_ONCE lpInitOnce,
_In_ DWORD dwFlags,
_Out_ PBOOL fPending,
_Outptr_opt_result_maybenull_ LPVOID* lpContext
);
WINBASEAPI
BOOL
WINAPI
InitOnceComplete(
_Inout_ LPINIT_ONCE lpInitOnce,
_In_ DWORD dwFlags,
_In_opt_ LPVOID lpContext
);
typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE;
WINBASEAPI
VOID
WINAPI
InitializeConditionVariable(
_Out_ PCONDITION_VARIABLE ConditionVariable
);
WINBASEAPI
VOID
WINAPI
WakeConditionVariable(
_Inout_ PCONDITION_VARIABLE ConditionVariable
);
WINBASEAPI
VOID
WINAPI
WakeAllConditionVariable(
_Inout_ PCONDITION_VARIABLE ConditionVariable
);
WINBASEAPI
BOOL
WINAPI
SleepConditionVariableCS(
_Inout_ PCONDITION_VARIABLE ConditionVariable,
_Inout_ PCRITICAL_SECTION CriticalSection,
_In_ DWORD dwMilliseconds
);
WINBASEAPI
BOOL
WINAPI
SleepConditionVariableSRW(
_Inout_ PCONDITION_VARIABLE ConditionVariable,
_Inout_ PSRWLOCK SRWLock,
_In_ DWORD dwMilliseconds,
_In_ ULONG Flags
);
WINBASEAPI
BOOL
WINAPI
SetEvent(
_In_ HANDLE hEvent
);
WINBASEAPI
BOOL
WINAPI
ResetEvent(
_In_ HANDLE hEvent
);
WINBASEAPI
BOOL
WINAPI
ReleaseSemaphore(
_In_ HANDLE hSemaphore,
_In_ LONG lReleaseCount,
_Out_opt_ LPLONG lpPreviousCount
);
WINBASEAPI
BOOL
WINAPI
ReleaseMutex(
_In_ HANDLE hMutex
);
WINBASEAPI
DWORD
WINAPI
WaitForSingleObject(
_In_ HANDLE hHandle,
_In_ DWORD dwMilliseconds
);
WINBASEAPI
DWORD
WINAPI
SleepEx(
_In_ DWORD dwMilliseconds,
_In_ BOOL bAlertable
);
WINBASEAPI
DWORD
WINAPI
WaitForSingleObjectEx(
_In_ HANDLE hHandle,
_In_ DWORD dwMilliseconds,
_In_ BOOL bAlertable
);
WINBASEAPI
DWORD
WINAPI
WaitForMultipleObjectsEx(
_In_ DWORD nCount,
_In_reads_(nCount) CONST HANDLE* lpHandles,
_In_ BOOL bWaitAll,
_In_ DWORD dwMilliseconds,
_In_ BOOL bAlertable
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateMutexA(
_In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
_In_ BOOL bInitialOwner,
_In_opt_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateMutexW(
_In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
_In_ BOOL bInitialOwner,
_In_opt_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenMutexW(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateEventA(
_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
_In_ BOOL bManualReset,
_In_ BOOL bInitialState,
_In_opt_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateEventW(
_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
_In_ BOOL bManualReset,
_In_ BOOL bInitialState,
_In_opt_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenEventA(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenEventW(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenSemaphoreW(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCWSTR lpName
);
typedef
VOID
(APIENTRY *PTIMERAPCROUTINE)(
_In_opt_ LPVOID lpArgToCompletionRoutine,
_In_ DWORD dwTimerLowValue,
_In_ DWORD dwTimerHighValue
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenWaitableTimerW(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCWSTR lpTimerName
);
BOOL
WINAPI
SetWaitableTimerEx(
_In_ HANDLE hTimer,
_In_ const LARGE_INTEGER* lpDueTime,
_In_ LONG lPeriod,
_In_opt_ PTIMERAPCROUTINE pfnCompletionRoutine,
_In_opt_ LPVOID lpArgToCompletionRoutine,
_In_opt_ PREASON_CONTEXT WakeContext,
_In_ ULONG TolerableDelay
);
WINBASEAPI
BOOL
WINAPI
SetWaitableTimer(
_In_ HANDLE hTimer,
_In_ const LARGE_INTEGER* lpDueTime,
_In_ LONG lPeriod,
_In_opt_ PTIMERAPCROUTINE pfnCompletionRoutine,
_In_opt_ LPVOID lpArgToCompletionRoutine,
_In_ BOOL fResume
);
WINBASEAPI
BOOL
WINAPI
CancelWaitableTimer(
_In_ HANDLE hTimer
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateMutexExA(
_In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
_In_opt_ LPCSTR lpName,
_In_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateMutexExW(
_In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,
_In_opt_ LPCWSTR lpName,
_In_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateEventExA(
_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
_In_opt_ LPCSTR lpName,
_In_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateEventExW(
_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
_In_opt_ LPCWSTR lpName,
_In_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateSemaphoreExW(
_In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
_In_ LONG lInitialCount,
_In_ LONG lMaximumCount,
_In_opt_ LPCWSTR lpName,
_Reserved_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateWaitableTimerExW(
_In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes,
_In_opt_ LPCWSTR lpTimerName,
_In_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
typedef RTL_BARRIER SYNCHRONIZATION_BARRIER;
typedef PRTL_BARRIER PSYNCHRONIZATION_BARRIER;
typedef PRTL_BARRIER LPSYNCHRONIZATION_BARRIER;
BOOL
WINAPI
EnterSynchronizationBarrier(
_Inout_ LPSYNCHRONIZATION_BARRIER lpBarrier,
_In_ DWORD dwFlags
);
BOOL
WINAPI
InitializeSynchronizationBarrier(
_Out_ LPSYNCHRONIZATION_BARRIER lpBarrier,
_In_ LONG lTotalThreads,
_In_ LONG lSpinCount
);
BOOL
WINAPI
DeleteSynchronizationBarrier(
_Inout_ LPSYNCHRONIZATION_BARRIER lpBarrier
);
WINBASEAPI
VOID
WINAPI
Sleep(
_In_ DWORD dwMilliseconds
);
BOOL
WINAPI
WaitOnAddress(
_In_reads_bytes_(AddressSize) volatile VOID* Address,
_In_reads_bytes_(AddressSize) PVOID CompareAddress,
_In_ SIZE_T AddressSize,
_In_opt_ DWORD dwMilliseconds
);
VOID
WINAPI
WakeByAddressSingle(
_In_ PVOID Address
);
VOID
WINAPI
WakeByAddressAll(
_In_ PVOID Address
);
WINBASEAPI
DWORD
WINAPI
SignalObjectAndWait(
_In_ HANDLE hObjectToSignal,
_In_ HANDLE hObjectToWaitOn,
_In_ DWORD dwMilliseconds,
_In_ BOOL bAlertable
);
WINBASEAPI
DWORD
WINAPI
WaitForMultipleObjects(
_In_ DWORD nCount,
_In_reads_(nCount) CONST HANDLE* lpHandles,
_In_ BOOL bWaitAll,
_In_ DWORD dwMilliseconds
);
WINBASEAPI
HANDLE
WINAPI
CreateSemaphoreW(
_In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
_In_ LONG lInitialCount,
_In_ LONG lMaximumCount,
_In_opt_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateWaitableTimerW(
_In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes,
_In_ BOOL bManualReset,
_In_opt_ LPCWSTR lpTimerName
);
WINBASEAPI
VOID
WINAPI
InitializeSListHead(
_Out_ PSLIST_HEADER ListHead
);
WINBASEAPI
PSLIST_ENTRY
WINAPI
InterlockedPopEntrySList(
_Inout_ PSLIST_HEADER ListHead
);
WINBASEAPI
PSLIST_ENTRY
WINAPI
InterlockedPushEntrySList(
_Inout_ PSLIST_HEADER ListHead,
_Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry
);
WINBASEAPI
PSLIST_ENTRY
WINAPI
InterlockedPushListSListEx(
_Inout_ PSLIST_HEADER ListHead,
_Inout_ PSLIST_ENTRY List,
_Inout_ PSLIST_ENTRY ListEnd,
_In_ ULONG Count
);
WINBASEAPI
PSLIST_ENTRY
WINAPI
InterlockedFlushSList(
_Inout_ PSLIST_HEADER ListHead
);
WINBASEAPI
USHORT
WINAPI
QueryDepthSList(
_In_ PSLIST_HEADER ListHead
);
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
typedef struct _STARTUPINFOA {
DWORD cb;
LPSTR lpReserved;
LPSTR lpDesktop;
LPSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOA, *LPSTARTUPINFOA;
typedef struct _STARTUPINFOW {
DWORD cb;
LPWSTR lpReserved;
LPWSTR lpDesktop;
LPWSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOW, *LPSTARTUPINFOW;
typedef STARTUPINFOA STARTUPINFO;
typedef LPSTARTUPINFOA LPSTARTUPINFO;
WINBASEAPI
DWORD
WINAPI
QueueUserAPC(
_In_ PAPCFUNC pfnAPC,
_In_ HANDLE hThread,
_In_ ULONG_PTR dwData
);
typedef enum _QUEUE_USER_APC_FLAGS {
QUEUE_USER_APC_FLAGS_NONE = 0x00000000,
QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x00000001,
QUEUE_USER_APC_CALLBACK_DATA_CONTEXT = 0x00010000,
} QUEUE_USER_APC_FLAGS;
typedef struct _APC_CALLBACK_DATA {
ULONG_PTR Parameter;
PCONTEXT ContextRecord;
ULONG_PTR Reserved0;
ULONG_PTR Reserved1;
} APC_CALLBACK_DATA, *PAPC_CALLBACK_DATA;
WINBASEAPI
BOOL
WINAPI
QueueUserAPC2(
_In_ PAPCFUNC ApcRoutine,
_In_ HANDLE Thread,
_In_ ULONG_PTR Data,
_In_ QUEUE_USER_APC_FLAGS Flags
);
WINBASEAPI
BOOL
WINAPI
GetProcessTimes(
_In_ HANDLE hProcess,
_Out_ LPFILETIME lpCreationTime,
_Out_ LPFILETIME lpExitTime,
_Out_ LPFILETIME lpKernelTime,
_Out_ LPFILETIME lpUserTime
);
WINBASEAPI
HANDLE
WINAPI
GetCurrentProcess(
VOID
);
WINBASEAPI
DWORD
WINAPI
GetCurrentProcessId(
VOID
);
WINBASEAPI
DECLSPEC_NORETURN
VOID
WINAPI
ExitProcess(
_In_ UINT uExitCode
);
WINBASEAPI
BOOL
WINAPI
TerminateProcess(
_In_ HANDLE hProcess,
_In_ UINT uExitCode
);
WINBASEAPI
BOOL
WINAPI
GetExitCodeProcess(
_In_ HANDLE hProcess,
_Out_ LPDWORD lpExitCode
);
WINBASEAPI
BOOL
WINAPI
SwitchToThread(
VOID
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ __drv_aliasesMem LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateRemoteThread(
_In_ HANDLE hProcess,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
WINBASEAPI
HANDLE
WINAPI
GetCurrentThread(
VOID
);
WINBASEAPI
DWORD
WINAPI
GetCurrentThreadId(
VOID
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenThread(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ DWORD dwThreadId
);
WINBASEAPI
BOOL
WINAPI
SetThreadPriority(
_In_ HANDLE hThread,
_In_ int nPriority
);
WINBASEAPI
BOOL
WINAPI
SetThreadPriorityBoost(
_In_ HANDLE hThread,
_In_ BOOL bDisablePriorityBoost
);
WINBASEAPI
BOOL
WINAPI
GetThreadPriorityBoost(
_In_ HANDLE hThread,
_Out_ PBOOL pDisablePriorityBoost
);
WINBASEAPI
int
WINAPI
GetThreadPriority(
_In_ HANDLE hThread
);
WINBASEAPI
DECLSPEC_NORETURN
VOID
WINAPI
ExitThread(
_In_ DWORD dwExitCode
);
WINBASEAPI
BOOL
WINAPI
TerminateThread(
_In_ HANDLE hThread,
_In_ DWORD dwExitCode
);
WINBASEAPI
_Success_(return != 0)
BOOL
WINAPI
GetExitCodeThread(
_In_ HANDLE hThread,
_Out_ LPDWORD lpExitCode
);
WINBASEAPI
DWORD
WINAPI
SuspendThread(
_In_ HANDLE hThread
);
WINBASEAPI
DWORD
WINAPI
ResumeThread(
_In_ HANDLE hThread
);
_Must_inspect_result_
WINBASEAPI
DWORD
WINAPI
TlsAlloc(
VOID
);
WINBASEAPI
LPVOID
WINAPI
TlsGetValue(
_In_ DWORD dwTlsIndex
);
WINBASEAPI
BOOL
WINAPI
TlsSetValue(
_In_ DWORD dwTlsIndex,
_In_opt_ LPVOID lpTlsValue
);
WINBASEAPI
BOOL
WINAPI
TlsFree(
_In_ DWORD dwTlsIndex
);
WINBASEAPI
BOOL
WINAPI
CreateProcessA(
_In_opt_ LPCSTR lpApplicationName,
_Inout_opt_ LPSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCSTR lpCurrentDirectory,
_In_ LPSTARTUPINFOA lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
WINBASEAPI
BOOL
WINAPI
CreateProcessW(
_In_opt_ LPCWSTR lpApplicationName,
_Inout_opt_ LPWSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCWSTR lpCurrentDirectory,
_In_ LPSTARTUPINFOW lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
WINBASEAPI
BOOL
WINAPI
SetProcessShutdownParameters(
_In_ DWORD dwLevel,
_In_ DWORD dwFlags
);
WINBASEAPI
DWORD
WINAPI
GetProcessVersion(
_In_ DWORD ProcessId
);
WINBASEAPI
VOID
WINAPI
GetStartupInfoW(
_Out_ LPSTARTUPINFOW lpStartupInfo
);
WINADVAPI
BOOL
WINAPI
CreateProcessAsUserW(
_In_opt_ HANDLE hToken,
_In_opt_ LPCWSTR lpApplicationName,
_Inout_opt_ LPWSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCWSTR lpCurrentDirectory,
_In_ LPSTARTUPINFOW lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
FORCEINLINE
HANDLE
GetCurrentProcessToken (
VOID
)
{
return (HANDLE)(LONG_PTR) -4;
}
FORCEINLINE
HANDLE
GetCurrentThreadToken (
VOID
)
{
return (HANDLE)(LONG_PTR) -5;
}
FORCEINLINE
HANDLE
GetCurrentThreadEffectiveToken (
VOID
)
{
return (HANDLE)(LONG_PTR) -6;
}
WINADVAPI
_Must_inspect_result_
BOOL
APIENTRY
SetThreadToken(
_In_opt_ PHANDLE Thread,
_In_opt_ HANDLE Token
);
WINADVAPI
BOOL
WINAPI
OpenProcessToken(
_In_ HANDLE ProcessHandle,
_In_ DWORD DesiredAccess,
_Outptr_ PHANDLE TokenHandle
);
WINADVAPI
BOOL
WINAPI
OpenThreadToken(
_In_ HANDLE ThreadHandle,
_In_ DWORD DesiredAccess,
_In_ BOOL OpenAsSelf,
_Outptr_ PHANDLE TokenHandle
);
WINBASEAPI
BOOL
WINAPI
SetPriorityClass(
_In_ HANDLE hProcess,
_In_ DWORD dwPriorityClass
);
WINBASEAPI
DWORD
WINAPI
GetPriorityClass(
_In_ HANDLE hProcess
);
WINBASEAPI
BOOL
WINAPI
SetThreadStackGuarantee(
_Inout_ PULONG StackSizeInBytes
);
WINBASEAPI
BOOL
WINAPI
ProcessIdToSessionId(
_In_ DWORD dwProcessId,
_Out_ DWORD* pSessionId
);
typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST;
WINBASEAPI
DWORD
WINAPI
GetProcessId(
_In_ HANDLE Process
);
WINBASEAPI
DWORD
WINAPI
GetThreadId(
_In_ HANDLE Thread
);
WINBASEAPI
VOID
WINAPI
FlushProcessWriteBuffers(
VOID
);
WINBASEAPI
DWORD
WINAPI
GetProcessIdOfThread(
_In_ HANDLE Thread
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
InitializeProcThreadAttributeList(
_Out_writes_bytes_to_opt_(*lpSize,*lpSize) LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
_In_ DWORD dwAttributeCount,
_Reserved_ DWORD dwFlags,
_When_(lpAttributeList == nullptr,_Out_) _When_(lpAttributeList != nullptr,_Inout_) PSIZE_T lpSize
);
WINBASEAPI
VOID
WINAPI
DeleteProcThreadAttributeList(
_Inout_ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList
);
WINBASEAPI
BOOL
WINAPI
UpdateProcThreadAttribute(
_Inout_ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
_In_ DWORD dwFlags,
_In_ DWORD_PTR Attribute,
_In_reads_bytes_opt_(cbSize) PVOID lpValue,
_In_ SIZE_T cbSize,
_Out_writes_bytes_opt_(cbSize) PVOID lpPreviousValue,
_In_opt_ PSIZE_T lpReturnSize
);
WINBASEAPI
BOOL
WINAPI
SetProcessDynamicEHContinuationTargets(
_In_ HANDLE Process,
_In_ USHORT NumberOfTargets,
_Inout_updates_(NumberOfTargets) PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets
);
WINBASEAPI
BOOL
WINAPI
SetProcessDynamicEnforcedCetCompatibleRanges(
_In_ HANDLE Process,
_In_ USHORT NumberOfRanges,
_Inout_updates_(NumberOfRanges) PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges
);
WINBASEAPI
BOOL
WINAPI
SetProcessAffinityUpdateMode(
_In_ HANDLE hProcess,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
QueryProcessAffinityUpdateMode(
_In_ HANDLE hProcess,
_Out_opt_ LPDWORD lpdwFlags
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateRemoteThreadEx(
_In_ HANDLE hProcess,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_In_opt_ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
_Out_opt_ LPDWORD lpThreadId
);
WINBASEAPI
VOID
WINAPI
GetCurrentThreadStackLimits(
_Out_ PULONG_PTR LowLimit,
_Out_ PULONG_PTR HighLimit
);
WINBASEAPI
BOOL
WINAPI
GetThreadContext(
_In_ HANDLE hThread,
_Inout_ LPCONTEXT lpContext
);
WINBASEAPI
BOOL
WINAPI
GetProcessMitigationPolicy(
_In_ HANDLE hProcess,
_In_ PROCESS_MITIGATION_POLICY MitigationPolicy,
_Out_writes_bytes_(dwLength) PVOID lpBuffer,
_In_ SIZE_T dwLength
);
WINBASEAPI
BOOL
WINAPI
SetThreadContext(
_In_ HANDLE hThread,
_In_ CONST CONTEXT* lpContext
);
WINBASEAPI
BOOL
WINAPI
SetProcessMitigationPolicy(
_In_ PROCESS_MITIGATION_POLICY MitigationPolicy,
_In_reads_bytes_(dwLength) PVOID lpBuffer,
_In_ SIZE_T dwLength
);
WINBASEAPI
BOOL
WINAPI
FlushInstructionCache(
_In_ HANDLE hProcess,
_In_reads_bytes_opt_(dwSize) LPCVOID lpBaseAddress,
_In_ SIZE_T dwSize
);
WINBASEAPI
BOOL
WINAPI
GetThreadTimes(
_In_ HANDLE hThread,
_Out_ LPFILETIME lpCreationTime,
_Out_ LPFILETIME lpExitTime,
_Out_ LPFILETIME lpKernelTime,
_Out_ LPFILETIME lpUserTime
);
WINBASEAPI
HANDLE
WINAPI
OpenProcess(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ DWORD dwProcessId
);
WINBASEAPI
BOOL
WINAPI
IsProcessorFeaturePresent(
_In_ DWORD ProcessorFeature
);
WINBASEAPI
BOOL
WINAPI
GetProcessHandleCount(
_In_ HANDLE hProcess,
_Out_ PDWORD pdwHandleCount
);
WINBASEAPI
DWORD
WINAPI
GetCurrentProcessorNumber(
VOID
);
WINBASEAPI
BOOL
WINAPI
SetThreadIdealProcessorEx(
_In_ HANDLE hThread,
_In_ PPROCESSOR_NUMBER lpIdealProcessor,
_Out_opt_ PPROCESSOR_NUMBER lpPreviousIdealProcessor
);
WINBASEAPI
BOOL
WINAPI
GetThreadIdealProcessorEx(
_In_ HANDLE hThread,
_Out_ PPROCESSOR_NUMBER lpIdealProcessor
);
WINBASEAPI
VOID
WINAPI
GetCurrentProcessorNumberEx(
_Out_ PPROCESSOR_NUMBER ProcNumber
);
WINBASEAPI
BOOL
WINAPI
GetProcessPriorityBoost(
_In_ HANDLE hProcess,
_Out_ PBOOL pDisablePriorityBoost
);
WINBASEAPI
BOOL
WINAPI
SetProcessPriorityBoost(
_In_ HANDLE hProcess,
_In_ BOOL bDisablePriorityBoost
);
WINBASEAPI
BOOL
WINAPI
GetThreadIOPendingFlag(
_In_ HANDLE hThread,
_Out_ PBOOL lpIOIsPending
);
WINBASEAPI
BOOL
WINAPI
GetSystemTimes(
_Out_opt_ PFILETIME lpIdleTime,
_Out_opt_ PFILETIME lpKernelTime,
_Out_opt_ PFILETIME lpUserTime
);
typedef enum _THREAD_INFORMATION_CLASS {
ThreadMemoryPriority,
ThreadAbsoluteCpuPriority,
ThreadDynamicCodePolicy,
ThreadPowerThrottling,
ThreadInformationClassMax
} THREAD_INFORMATION_CLASS;
typedef struct _MEMORY_PRIORITY_INFORMATION {
ULONG MemoryPriority;
} MEMORY_PRIORITY_INFORMATION, *PMEMORY_PRIORITY_INFORMATION;
WINBASEAPI
BOOL
WINAPI
GetThreadInformation(
_In_ HANDLE hThread,
_In_ THREAD_INFORMATION_CLASS ThreadInformationClass,
_Out_writes_bytes_(ThreadInformationSize) LPVOID ThreadInformation,
_In_ DWORD ThreadInformationSize
);
WINBASEAPI
BOOL
WINAPI
SetThreadInformation(
_In_ HANDLE hThread,
_In_ THREAD_INFORMATION_CLASS ThreadInformationClass,
_In_reads_bytes_(ThreadInformationSize) LPVOID ThreadInformation,
_In_ DWORD ThreadInformationSize
);
typedef struct _THREAD_POWER_THROTTLING_STATE {
ULONG Version;
ULONG ControlMask;
ULONG StateMask;
} THREAD_POWER_THROTTLING_STATE;
WINBASEAPI
BOOL
WINAPI
IsProcessCritical(
_In_ HANDLE hProcess,
_Out_ PBOOL Critical
);
WINBASEAPI
BOOL
WINAPI
SetProtectedPolicy(
_In_ LPCGUID PolicyGuid,
_In_ ULONG_PTR PolicyValue,
_Out_opt_ PULONG_PTR OldPolicyValue
);
WINBASEAPI
BOOL
WINAPI
QueryProtectedPolicy(
_In_ LPCGUID PolicyGuid,
_Out_ PULONG_PTR PolicyValue
);
WINBASEAPI
DWORD
WINAPI
SetThreadIdealProcessor(
_In_ HANDLE hThread,
_In_ DWORD dwIdealProcessor
);
typedef enum _PROCESS_INFORMATION_CLASS {
ProcessMemoryPriority,
ProcessMemoryExhaustionInfo,
ProcessAppMemoryInfo,
ProcessInPrivateInfo,
ProcessPowerThrottling,
ProcessReservedValue1,
ProcessTelemetryCoverageInfo,
ProcessProtectionLevelInfo,
ProcessLeapSecondInfo,
ProcessMachineTypeInfo,
ProcessOverrideSubsequentPrefetchParameter,
ProcessMaxOverridePrefetchParameter,
ProcessInformationClassMax
} PROCESS_INFORMATION_CLASS;
typedef struct _APP_MEMORY_INFORMATION {
ULONG64 AvailableCommit;
ULONG64 PrivateCommitUsage;
ULONG64 PeakPrivateCommitUsage;
ULONG64 TotalCommitUsage;
} APP_MEMORY_INFORMATION, *PAPP_MEMORY_INFORMATION;
typedef enum _MACHINE_ATTRIBUTES {
UserEnabled = 0x00000001,
KernelEnabled = 0x00000002,
Wow64Container = 0x00000004
} MACHINE_ATTRIBUTES;
DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
typedef struct _PROCESS_MACHINE_INFORMATION {
USHORT ProcessMachine;
USHORT Res0;
MACHINE_ATTRIBUTES MachineAttributes;
} PROCESS_MACHINE_INFORMATION;
typedef struct OVERRIDE_PREFETCH_PARAMETER {
UINT32 Value;
} OVERRIDE_PREFETCH_PARAMETER;
typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE {
PMETypeFailFastOnCommitFailure,
PMETypeMax
} PROCESS_MEMORY_EXHAUSTION_TYPE, *PPROCESS_MEMORY_EXHAUSTION_TYPE;
typedef struct _PROCESS_MEMORY_EXHAUSTION_INFO {
USHORT Version;
USHORT Reserved;
PROCESS_MEMORY_EXHAUSTION_TYPE Type;
ULONG_PTR Value;
} PROCESS_MEMORY_EXHAUSTION_INFO, *PPROCESS_MEMORY_EXHAUSTION_INFO;
typedef struct _PROCESS_POWER_THROTTLING_STATE {
ULONG Version;
ULONG ControlMask;
ULONG StateMask;
} PROCESS_POWER_THROTTLING_STATE, *PPROCESS_POWER_THROTTLING_STATE;
typedef struct PROCESS_PROTECTION_LEVEL_INFORMATION {
DWORD ProtectionLevel;
} PROCESS_PROTECTION_LEVEL_INFORMATION;
typedef struct _PROCESS_LEAP_SECOND_INFO {
ULONG Flags;
ULONG Reserved;
} PROCESS_LEAP_SECOND_INFO, *PPROCESS_LEAP_SECOND_INFO;
WINBASEAPI
BOOL
WINAPI
SetProcessInformation(
_In_ HANDLE hProcess,
_In_ PROCESS_INFORMATION_CLASS ProcessInformationClass,
_In_reads_bytes_(ProcessInformationSize) LPVOID ProcessInformation,
_In_ DWORD ProcessInformationSize
);
WINBASEAPI
BOOL
WINAPI
GetProcessInformation(
_In_ HANDLE hProcess,
_In_ PROCESS_INFORMATION_CLASS ProcessInformationClass,
_Out_writes_bytes_(ProcessInformationSize) LPVOID ProcessInformation,
_In_ DWORD ProcessInformationSize
);
_Success_(return != FALSE)
BOOL
WINAPI
GetSystemCpuSetInformation(
_Out_writes_bytes_to_opt_(BufferLength,*ReturnedLength) PSYSTEM_CPU_SET_INFORMATION Information,
_In_ ULONG BufferLength,
_Always_(_Out_) PULONG ReturnedLength,
_In_opt_ HANDLE Process,
_Reserved_ ULONG Flags
);
_Success_(return != FALSE)
BOOL
WINAPI
GetProcessDefaultCpuSets(
_In_ HANDLE Process,
_Out_writes_to_opt_(CpuSetIdCount,*RequiredIdCount) PULONG CpuSetIds,
_In_ ULONG CpuSetIdCount,
_Always_(_Out_) PULONG RequiredIdCount
);
_Success_(return != FALSE)
BOOL
WINAPI
SetProcessDefaultCpuSets(
_In_ HANDLE Process,
_In_reads_opt_(CpuSetIdCount) const ULONG* CpuSetIds,
_In_ ULONG CpuSetIdCount
);
_Success_(return != FALSE)
BOOL
WINAPI
GetThreadSelectedCpuSets(
_In_ HANDLE Thread,
_Out_writes_to_opt_(CpuSetIdCount,*RequiredIdCount) PULONG CpuSetIds,
_In_ ULONG CpuSetIdCount,
_Always_(_Out_) PULONG RequiredIdCount
);
_Success_(return != FALSE)
BOOL
WINAPI
SetThreadSelectedCpuSets(
_In_ HANDLE Thread,
_In_reads_(CpuSetIdCount) const ULONG* CpuSetIds,
_In_ ULONG CpuSetIdCount
);
WINADVAPI
BOOL
WINAPI
CreateProcessAsUserA(
_In_opt_ HANDLE hToken,
_In_opt_ LPCSTR lpApplicationName,
_Inout_opt_ LPSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCSTR lpCurrentDirectory,
_In_ LPSTARTUPINFOA lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
WINBASEAPI
BOOL
WINAPI
GetProcessShutdownParameters(
_Out_ LPDWORD lpdwLevel,
_Out_ LPDWORD lpdwFlags
);
_Success_(return != FALSE)
BOOL
WINAPI
GetProcessDefaultCpuSetMasks(
_In_ HANDLE Process,
_Out_writes_to_opt_(CpuSetMaskCount, *RequiredMaskCount) PGROUP_AFFINITY CpuSetMasks,
_In_ USHORT CpuSetMaskCount,
_Out_ PUSHORT RequiredMaskCount
);
_Success_(return != FALSE)
BOOL
WINAPI
SetProcessDefaultCpuSetMasks(
_In_ HANDLE Process,
_In_reads_opt_(CpuSetMaskCount) PGROUP_AFFINITY CpuSetMasks,
_In_ USHORT CpuSetMaskCount
);
_Success_(return != FALSE)
BOOL
WINAPI
GetThreadSelectedCpuSetMasks(
_In_ HANDLE Thread,
_Out_writes_to_opt_(CpuSetMaskCount, *RequiredMaskCount) PGROUP_AFFINITY CpuSetMasks,
_In_ USHORT CpuSetMaskCount,
_Out_ PUSHORT RequiredMaskCount
);
_Success_(return != FALSE)
BOOL
WINAPI
SetThreadSelectedCpuSetMasks(
_In_ HANDLE Thread,
_In_reads_opt_(CpuSetMaskCount) PGROUP_AFFINITY CpuSetMasks,
_In_ USHORT CpuSetMaskCount
);
HRESULT
WINAPI
GetMachineTypeAttributes(
_In_ USHORT Machine,
_Out_ MACHINE_ATTRIBUTES* MachineTypeAttributes
);
WINBASEAPI
HRESULT
WINAPI
SetThreadDescription(
_In_ HANDLE hThread,
_In_ PCWSTR lpThreadDescription
);
WINBASEAPI
HRESULT
WINAPI
GetThreadDescription(
_In_ HANDLE hThread,
_Outptr_result_z_ PWSTR* ppszThreadDescription
);
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO, *LPSYSTEM_INFO;
typedef struct _MEMORYSTATUSEX {
DWORD dwLength;
DWORD dwMemoryLoad;
DWORDLONG ullTotalPhys;
DWORDLONG ullAvailPhys;
DWORDLONG ullTotalPageFile;
DWORDLONG ullAvailPageFile;
DWORDLONG ullTotalVirtual;
DWORDLONG ullAvailVirtual;
DWORDLONG ullAvailExtendedVirtual;
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
WINBASEAPI
BOOL
WINAPI
GlobalMemoryStatusEx(
_Out_ LPMEMORYSTATUSEX lpBuffer
);
WINBASEAPI
VOID
WINAPI
GetSystemInfo(
_Out_ LPSYSTEM_INFO lpSystemInfo
);
WINBASEAPI
VOID
WINAPI
GetSystemTime(
_Out_ LPSYSTEMTIME lpSystemTime
);
WINBASEAPI
VOID
WINAPI
GetSystemTimeAsFileTime(
_Out_ LPFILETIME lpSystemTimeAsFileTime
);
WINBASEAPI
VOID
WINAPI
GetLocalTime(
_Out_ LPSYSTEMTIME lpSystemTime
);
WINBASEAPI
BOOL
WINAPI
IsUserCetAvailableInEnvironment(
_In_ DWORD UserCetEnvironment
);
WINBASEAPI
BOOL
WINAPI
GetSystemLeapSecondInformation(
_Out_ PBOOL Enabled,
_Out_ PDWORD Flags
);
NOT_BUILD_WINDOWS_DEPRECATE
WINBASEAPI
__drv_preferredFunction("IsWindows*", "Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.")
DWORD
WINAPI
GetVersion(
VOID
);
WINBASEAPI
BOOL
WINAPI
SetLocalTime(
_In_ CONST SYSTEMTIME* lpSystemTime
);
__drv_preferredFunction("GetTickCount64", "GetTickCount overflows roughly every 49 days. Code that does not take that into account can loop indefinitely. GetTickCount64 operates on 64 bit values and does not have that problem")
WINBASEAPI
DWORD
WINAPI
GetTickCount(
VOID
);
WINBASEAPI
ULONGLONG
WINAPI
GetTickCount64(
VOID
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetSystemTimeAdjustment(
_Out_ PDWORD lpTimeAdjustment,
_Out_ PDWORD lpTimeIncrement,
_Out_ PBOOL lpTimeAdjustmentDisabled
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetSystemTimeAdjustmentPrecise(
_Out_ PDWORD64 lpTimeAdjustment,
_Out_ PDWORD64 lpTimeIncrement,
_Out_ PBOOL lpTimeAdjustmentDisabled
);
WINBASEAPI
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemDirectoryA(
_Out_writes_to_opt_(uSize,return + 1) LPSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemDirectoryW(
_Out_writes_to_opt_(uSize,return + 1) LPWSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
_Must_inspect_result_
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetWindowsDirectoryA(
_Out_writes_to_opt_(uSize,return + 1) LPSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
_Must_inspect_result_
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetWindowsDirectoryW(
_Out_writes_to_opt_(uSize,return + 1) LPWSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemWindowsDirectoryA(
_Out_writes_to_opt_(uSize,return + 1) LPSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemWindowsDirectoryW(
_Out_writes_to_opt_(uSize,return + 1) LPWSTR lpBuffer,
_In_ UINT uSize
);
typedef enum _COMPUTER_NAME_FORMAT {
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
ComputerNameMax
} COMPUTER_NAME_FORMAT ;
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetComputerNameExA(
_In_ COMPUTER_NAME_FORMAT NameType,
_Out_writes_to_opt_(*nSize,*nSize + 1) LPSTR lpBuffer,
_Inout_ LPDWORD nSize
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetComputerNameExW(
_In_ COMPUTER_NAME_FORMAT NameType,
_Out_writes_to_opt_(*nSize,*nSize + 1) LPWSTR lpBuffer,
_Inout_ LPDWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetComputerNameExW(
_In_ COMPUTER_NAME_FORMAT NameType,
_In_ LPCWSTR lpBuffer
);
WINBASEAPI
BOOL
WINAPI
SetSystemTime(
_In_ CONST SYSTEMTIME* lpSystemTime
);
NOT_BUILD_WINDOWS_DEPRECATE
WINBASEAPI
__drv_preferredFunction("IsWindows*", "Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.")
BOOL
WINAPI
GetVersionExA(
_Inout_ LPOSVERSIONINFOA lpVersionInformation
);
NOT_BUILD_WINDOWS_DEPRECATE
WINBASEAPI
__drv_preferredFunction("IsWindows*", "Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.")
BOOL
WINAPI
GetVersionExW(
_Inout_ LPOSVERSIONINFOW lpVersionInformation
);
WINBASEAPI
BOOL
WINAPI
GetLogicalProcessorInformation(
_Out_writes_bytes_to_opt_(*ReturnedLength,*ReturnedLength) PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer,
_Inout_ PDWORD ReturnedLength
);
WINBASEAPI
BOOL
WINAPI
GetLogicalProcessorInformationEx(
_In_ LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
_Out_writes_bytes_to_opt_(*ReturnedLength,*ReturnedLength) PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
_Inout_ PDWORD ReturnedLength
);
WINBASEAPI
VOID
WINAPI
GetNativeSystemInfo(
_Out_ LPSYSTEM_INFO lpSystemInfo
);
WINBASEAPI
VOID
WINAPI
GetSystemTimePreciseAsFileTime(
_Out_ LPFILETIME lpSystemTimeAsFileTime
);
WINBASEAPI
BOOL
WINAPI
GetProductInfo(
_In_ DWORD dwOSMajorVersion,
_In_ DWORD dwOSMinorVersion,
_In_ DWORD dwSpMajorVersion,
_In_ DWORD dwSpMinorVersion,
_Out_ PDWORD pdwReturnedProductType
);
NTSYSAPI
ULONGLONG
NTAPI
VerSetConditionMask(
_In_ ULONGLONG ConditionMask,
_In_ ULONG TypeMask,
_In_ UCHAR Condition
);
WINBASEAPI
BOOL
WINAPI
GetOsSafeBootMode(
_Out_ PDWORD Flags
);
WINBASEAPI
UINT
WINAPI
EnumSystemFirmwareTables(
_In_ DWORD FirmwareTableProviderSignature,
_Out_writes_bytes_to_opt_(BufferSize,return) PVOID pFirmwareTableEnumBuffer,
_In_ DWORD BufferSize
);
WINBASEAPI
UINT
WINAPI
GetSystemFirmwareTable(
_In_ DWORD FirmwareTableProviderSignature,
_In_ DWORD FirmwareTableID,
_Out_writes_bytes_to_opt_(BufferSize,return) PVOID pFirmwareTableBuffer,
_In_ DWORD BufferSize
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
DnsHostnameToComputerNameExW(
_In_ LPCWSTR Hostname,
_Out_writes_to_opt_(*nSize,*nSize + 1) LPWSTR ComputerName,
_Inout_ LPDWORD nSize
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetPhysicallyInstalledSystemMemory(
_Out_ PULONGLONG TotalMemoryInKilobytes
);
WINBASEAPI
BOOL
WINAPI
SetComputerNameEx2W(
_In_ COMPUTER_NAME_FORMAT NameType,
_In_ DWORD Flags,
_In_ LPCWSTR lpBuffer
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
SetSystemTimeAdjustment(
_In_ DWORD dwTimeAdjustment,
_In_ BOOL bTimeAdjustmentDisabled
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
SetSystemTimeAdjustmentPrecise(
_In_ DWORD64 dwTimeAdjustment,
_In_ BOOL bTimeAdjustmentDisabled
);
WINBASEAPI
BOOL
WINAPI
InstallELAMCertificateInfo(
_In_ HANDLE ELAMFile
);
WINBASEAPI
BOOL
WINAPI
GetProcessorSystemCycleTime(
_In_ USHORT Group,
_Out_writes_bytes_to_opt_(*ReturnedLength,*ReturnedLength) PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION Buffer,
_Inout_ PDWORD ReturnedLength
);
WINBASEAPI
BOOL
WINAPI
GetOsManufacturingMode(
_Out_ PBOOL pbEnabled
);
WINBASEAPI
HRESULT
WINAPI
GetIntegratedDisplaySize(
_Out_ double* sizeInInches
);
WINBASEAPI
BOOL
WINAPI
SetComputerNameA(
_In_ LPCSTR lpComputerName
);
WINBASEAPI
BOOL
WINAPI
SetComputerNameW(
_In_ LPCWSTR lpComputerName
);
WINBASEAPI
BOOL
WINAPI
SetComputerNameExA(
_In_ COMPUTER_NAME_FORMAT NameType,
_In_ LPCSTR lpBuffer
);
typedef enum DEVELOPER_DRIVE_ENABLEMENT_STATE {
DeveloperDriveEnablementStateError,
DeveloperDriveEnabled,
DeveloperDriveDisabledBySystemPolicy,
DeveloperDriveDisabledByGroupPolicy
} DEVELOPER_DRIVE_ENABLEMENT_STATE;
WINBASEAPI
DEVELOPER_DRIVE_ENABLEMENT_STATE
WINAPI
GetDeveloperDriveEnablementState(
VOID
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(dwSize)
LPVOID
WINAPI
VirtualAlloc(
_In_opt_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flAllocationType,
_In_ DWORD flProtect
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
VirtualProtect(
_In_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flNewProtect,
_Out_ PDWORD lpflOldProtect
);
_When_(((dwFreeType&(MEM_RELEASE|MEM_DECOMMIT)))==(MEM_RELEASE|MEM_DECOMMIT),
__drv_reportError("Passing both MEM_RELEASE and MEM_DECOMMIT to VirtualFree is not allowed. This results in the failure of this call"))
_When_(dwFreeType==0,
__drv_reportError("Passing zero as the dwFreeType parameter to VirtualFree is not allowed. This results in the failure of this call"))
_When_(((dwFreeType&MEM_RELEASE))!=0 && dwSize!=0,
__drv_reportError("Passing MEM_RELEASE and a non-zero dwSize parameter to VirtualFree is not allowed. This results in the failure of this call"))
_Success_(return != FALSE)
WINBASEAPI
BOOL
WINAPI
VirtualFree(
_Pre_notnull_ _When_(dwFreeType == MEM_DECOMMIT,_Post_invalid_) _When_(dwFreeType == MEM_RELEASE,_Post_ptr_invalid_) LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD dwFreeType
);
WINBASEAPI
SIZE_T
WINAPI
VirtualQuery(
_In_opt_ LPCVOID lpAddress,
_Out_writes_bytes_to_(dwLength,return) PMEMORY_BASIC_INFORMATION lpBuffer,
_In_ SIZE_T dwLength
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(dwSize)
LPVOID
WINAPI
VirtualAllocEx(
_In_ HANDLE hProcess,
_In_opt_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flAllocationType,
_In_ DWORD flProtect
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
VirtualProtectEx(
_In_ HANDLE hProcess,
_In_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flNewProtect,
_Out_ PDWORD lpflOldProtect
);
WINBASEAPI
SIZE_T
WINAPI
VirtualQueryEx(
_In_ HANDLE hProcess,
_In_opt_ LPCVOID lpAddress,
_Out_writes_bytes_to_(dwLength,return) PMEMORY_BASIC_INFORMATION lpBuffer,
_In_ SIZE_T dwLength
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
ReadProcessMemory(
_In_ HANDLE hProcess,
_In_ LPCVOID lpBaseAddress,
_Out_writes_bytes_to_(nSize,*lpNumberOfBytesRead) LPVOID lpBuffer,
_In_ SIZE_T nSize,
_Out_opt_ SIZE_T* lpNumberOfBytesRead
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
WriteProcessMemory(
_In_ HANDLE hProcess,
_In_ LPVOID lpBaseAddress,
_In_reads_bytes_(nSize) LPCVOID lpBuffer,
_In_ SIZE_T nSize,
_Out_opt_ SIZE_T* lpNumberOfBytesWritten
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateFileMappingW(
_In_ HANDLE hFile,
_In_opt_ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
_In_ DWORD flProtect,
_In_ DWORD dwMaximumSizeHigh,
_In_ DWORD dwMaximumSizeLow,
_In_opt_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenFileMappingW(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCWSTR lpName
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
LPVOID
WINAPI
MapViewOfFile(
_In_ HANDLE hFileMappingObject,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwFileOffsetHigh,
_In_ DWORD dwFileOffsetLow,
_In_ SIZE_T dwNumberOfBytesToMap
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
LPVOID
WINAPI
MapViewOfFileEx(
_In_ HANDLE hFileMappingObject,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwFileOffsetHigh,
_In_ DWORD dwFileOffsetLow,
_In_ SIZE_T dwNumberOfBytesToMap,
_In_opt_ LPVOID lpBaseAddress
);
_When_(((dwFreeType&(MEM_RELEASE|MEM_DECOMMIT)))==(MEM_RELEASE|MEM_DECOMMIT),
__drv_reportError("Passing both MEM_RELEASE and MEM_DECOMMIT to VirtualFree is not allowed. This results in the failure of this call"))
_When_(dwFreeType==0,
__drv_reportError("Passing zero as the dwFreeType parameter to VirtualFree is not allowed. This results in the failure of this call"))
_When_(((dwFreeType&MEM_RELEASE))!=0 && dwSize!=0,
__drv_reportError("Passing MEM_RELEASE and a non-zero dwSize parameter to VirtualFree is not allowed. This results in the failure of this call"))
_When_(((dwFreeType&MEM_DECOMMIT))!=0,
__drv_reportError("Calling VirtualFreeEx without the MEM_RELEASE flag frees memory but not address descriptors (VADs); results in address space leaks"))
_Success_(return != FALSE)
WINBASEAPI
BOOL
WINAPI
VirtualFreeEx(
_In_ HANDLE hProcess,
_Pre_notnull_ _When_(dwFreeType == MEM_DECOMMIT,_Post_invalid_) _When_(dwFreeType == MEM_RELEASE,_Post_ptr_invalid_) LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD dwFreeType
);
WINBASEAPI
BOOL
WINAPI
FlushViewOfFile(
_In_ LPCVOID lpBaseAddress,
_In_ SIZE_T dwNumberOfBytesToFlush
);
WINBASEAPI
BOOL
WINAPI
UnmapViewOfFile(
_In_ LPCVOID lpBaseAddress
);
WINBASEAPI
SIZE_T
WINAPI
GetLargePageMinimum(
VOID
);
WINBASEAPI
BOOL
WINAPI
GetProcessWorkingSetSize(
_In_ HANDLE hProcess,
_Out_ PSIZE_T lpMinimumWorkingSetSize,
_Out_ PSIZE_T lpMaximumWorkingSetSize
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetProcessWorkingSetSizeEx(
_In_ HANDLE hProcess,
_Out_ PSIZE_T lpMinimumWorkingSetSize,
_Out_ PSIZE_T lpMaximumWorkingSetSize,
_Out_ PDWORD Flags
);
WINBASEAPI
BOOL
WINAPI
SetProcessWorkingSetSize(
_In_ HANDLE hProcess,
_In_ SIZE_T dwMinimumWorkingSetSize,
_In_ SIZE_T dwMaximumWorkingSetSize
);
WINBASEAPI
BOOL
WINAPI
SetProcessWorkingSetSizeEx(
_In_ HANDLE hProcess,
_In_ SIZE_T dwMinimumWorkingSetSize,
_In_ SIZE_T dwMaximumWorkingSetSize,
_In_ DWORD Flags
);
WINBASEAPI
BOOL
WINAPI
VirtualLock(
_In_ LPVOID lpAddress,
_In_ SIZE_T dwSize
);
WINBASEAPI
BOOL
WINAPI
VirtualUnlock(
_In_ LPVOID lpAddress,
_In_ SIZE_T dwSize
);
WINBASEAPI
_Success_(return == 0)
UINT
WINAPI
GetWriteWatch(
_In_ DWORD dwFlags,
_In_ PVOID lpBaseAddress,
_In_ SIZE_T dwRegionSize,
_Out_writes_to_opt_(*lpdwCount,*lpdwCount) PVOID* lpAddresses,
_Inout_opt_ ULONG_PTR* lpdwCount,
_Out_opt_ LPDWORD lpdwGranularity
);
WINBASEAPI
UINT
WINAPI
ResetWriteWatch(
_In_ LPVOID lpBaseAddress,
_In_ SIZE_T dwRegionSize
);
typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
LowMemoryResourceNotification,
HighMemoryResourceNotification
} MEMORY_RESOURCE_NOTIFICATION_TYPE;
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateMemoryResourceNotification(
_In_ MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
QueryMemoryResourceNotification(
_In_ HANDLE ResourceNotificationHandle,
_Out_ PBOOL ResourceState
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetSystemFileCacheSize(
_Out_ PSIZE_T lpMinimumFileCacheSize,
_Out_ PSIZE_T lpMaximumFileCacheSize,
_Out_ PDWORD lpFlags
);
WINBASEAPI
BOOL
WINAPI
SetSystemFileCacheSize(
_In_ SIZE_T MinimumFileCacheSize,
_In_ SIZE_T MaximumFileCacheSize,
_In_ DWORD Flags
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateFileMappingNumaW(
_In_ HANDLE hFile,
_In_opt_ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
_In_ DWORD flProtect,
_In_ DWORD dwMaximumSizeHigh,
_In_ DWORD dwMaximumSizeLow,
_In_opt_ LPCWSTR lpName,
_In_ DWORD nndPreferred
);
typedef struct _WIN32_MEMORY_RANGE_ENTRY {
PVOID VirtualAddress;
SIZE_T NumberOfBytes;
} WIN32_MEMORY_RANGE_ENTRY, *PWIN32_MEMORY_RANGE_ENTRY;
WINBASEAPI
BOOL
WINAPI
PrefetchVirtualMemory(
_In_ HANDLE hProcess,
_In_ ULONG_PTR NumberOfEntries,
_In_reads_(NumberOfEntries) PWIN32_MEMORY_RANGE_ENTRY VirtualAddresses,
_In_ ULONG Flags
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateFileMappingFromApp(
_In_ HANDLE hFile,
_In_opt_ PSECURITY_ATTRIBUTES SecurityAttributes,
_In_ ULONG PageProtection,
_In_ ULONG64 MaximumSize,
_In_opt_ PCWSTR Name
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
PVOID
WINAPI
MapViewOfFileFromApp(
_In_ HANDLE hFileMappingObject,
_In_ ULONG DesiredAccess,
_In_ ULONG64 FileOffset,
_In_ SIZE_T NumberOfBytesToMap
);
WINBASEAPI
BOOL
WINAPI
UnmapViewOfFileEx(
_In_ PVOID BaseAddress,
_In_ ULONG UnmapFlags
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
AllocateUserPhysicalPages(
_In_ HANDLE hProcess,
_Inout_ PULONG_PTR NumberOfPages,
_Out_writes_to_(*NumberOfPages,*NumberOfPages) PULONG_PTR PageArray
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
FreeUserPhysicalPages(
_In_ HANDLE hProcess,
_Inout_ PULONG_PTR NumberOfPages,
_In_reads_(*NumberOfPages) PULONG_PTR PageArray
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
MapUserPhysicalPages(
_In_ PVOID VirtualAddress,
_In_ ULONG_PTR NumberOfPages,
_In_reads_opt_(NumberOfPages) PULONG_PTR PageArray
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
AllocateUserPhysicalPagesNuma(
_In_ HANDLE hProcess,
_Inout_ PULONG_PTR NumberOfPages,
_Out_writes_to_(*NumberOfPages,*NumberOfPages) PULONG_PTR PageArray,
_In_ DWORD nndPreferred
);
WINBASEAPI
_Post_writable_byte_size_(dwSize)
LPVOID
WINAPI
VirtualAllocExNuma(
_In_ HANDLE hProcess,
_In_opt_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flAllocationType,
_In_ DWORD flProtect,
_In_ DWORD nndPreferred
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetMemoryErrorHandlingCapabilities(
_Out_ PULONG Capabilities
);
_Function_class_(BAD_MEMORY_CALLBACK_ROUTINE)
typedef
VOID
WINAPI
BAD_MEMORY_CALLBACK_ROUTINE(
VOID
);
typedef BAD_MEMORY_CALLBACK_ROUTINE *PBAD_MEMORY_CALLBACK_ROUTINE;
WINBASEAPI
_Success_(return != NULL)
PVOID
WINAPI
RegisterBadMemoryNotification(
_In_ PBAD_MEMORY_CALLBACK_ROUTINE Callback
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
UnregisterBadMemoryNotification(
_In_ PVOID RegistrationHandle
);
typedef enum OFFER_PRIORITY {
VmOfferPriorityVeryLow = 1,
VmOfferPriorityLow,
VmOfferPriorityBelowNormal,
VmOfferPriorityNormal
} OFFER_PRIORITY;
DWORD
WINAPI
OfferVirtualMemory(
_Inout_updates_(Size) PVOID VirtualAddress,
_In_ SIZE_T Size,
_In_ OFFER_PRIORITY Priority
);
DWORD
WINAPI
ReclaimVirtualMemory(
_In_reads_(Size) void const* VirtualAddress,
_In_ SIZE_T Size
);
DWORD
WINAPI
DiscardVirtualMemory(
_Inout_updates_(Size) PVOID VirtualAddress,
_In_ SIZE_T Size
);
WINBASEAPI
BOOL
WINAPI
SetProcessValidCallTargets(
_In_ HANDLE hProcess,
_In_ PVOID VirtualAddress,
_In_ SIZE_T RegionSize,
_In_ ULONG NumberOfOffsets,
_Inout_updates_(NumberOfOffsets) PCFG_CALL_TARGET_INFO OffsetInformation
);
WINBASEAPI
BOOL
WINAPI
SetProcessValidCallTargetsForMappedView(
_In_ HANDLE Process,
_In_ PVOID VirtualAddress,
_In_ SIZE_T RegionSize,
_In_ ULONG NumberOfOffsets,
_Inout_updates_(NumberOfOffsets) PCFG_CALL_TARGET_INFO OffsetInformation,
_In_ HANDLE Section,
_In_ ULONG64 ExpectedFileOffset
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(Size)
PVOID
WINAPI
VirtualAllocFromApp(
_In_opt_ PVOID BaseAddress,
_In_ SIZE_T Size,
_In_ ULONG AllocationType,
_In_ ULONG Protection
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
VirtualProtectFromApp(
_In_ PVOID Address,
_In_ SIZE_T Size,
_In_ ULONG NewProtection,
_Out_ PULONG OldProtection
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenFileMappingFromApp(
_In_ ULONG DesiredAccess,
_In_ BOOL InheritHandle,
_In_ PCWSTR Name
);
typedef enum WIN32_MEMORY_INFORMATION_CLASS {
MemoryRegionInfo
} WIN32_MEMORY_INFORMATION_CLASS;
typedef struct WIN32_MEMORY_REGION_INFORMATION {
PVOID AllocationBase;
ULONG AllocationProtect;
union {
ULONG Flags;
struct {
ULONG Private : 1;
ULONG MappedDataFile : 1;
ULONG MappedImage : 1;
ULONG MappedPageFile : 1;
ULONG MappedPhysical : 1;
ULONG DirectMapped : 1;
ULONG Reserved : 26;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
SIZE_T RegionSize;
SIZE_T CommitSize;
} WIN32_MEMORY_REGION_INFORMATION;
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
QueryVirtualMemoryInformation(
_In_ HANDLE Process,
_In_ const VOID* VirtualAddress,
_In_ WIN32_MEMORY_INFORMATION_CLASS MemoryInformationClass,
_Out_writes_bytes_(MemoryInformationSize) PVOID MemoryInformation,
_In_ SIZE_T MemoryInformationSize,
_Out_opt_ PSIZE_T ReturnSize
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
PVOID
WINAPI
MapViewOfFileNuma2(
_In_ HANDLE FileMappingHandle,
_In_ HANDLE ProcessHandle,
_In_ ULONG64 Offset,
_In_opt_ PVOID BaseAddress,
_In_ SIZE_T ViewSize,
_In_ ULONG AllocationType,
_In_ ULONG PageProtection,
_In_ ULONG PreferredNode
);
FORCEINLINE
_Ret_maybenull_ __out_data_source(FILE)
PVOID
MapViewOfFile2(
_In_ HANDLE FileMappingHandle,
_In_ HANDLE ProcessHandle,
_In_ ULONG64 Offset,
_In_opt_ PVOID BaseAddress,
_In_ SIZE_T ViewSize,
_In_ ULONG AllocationType,
_In_ ULONG PageProtection
)
{
return MapViewOfFileNuma2(FileMappingHandle,
ProcessHandle,
Offset,
BaseAddress,
ViewSize,
AllocationType,
PageProtection,
NUMA_NO_PREFERRED_NODE);
}
WINBASEAPI
BOOL
WINAPI
UnmapViewOfFile2(
_In_ HANDLE Process,
_In_ PVOID BaseAddress,
_In_ ULONG UnmapFlags
);
WINBASEAPI
BOOL
WINAPI
VirtualUnlockEx(
_In_opt_ HANDLE Process,
_In_ LPVOID Address,
_In_ SIZE_T Size
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(Size)
PVOID
WINAPI
VirtualAlloc2(
_In_opt_ HANDLE Process,
_In_opt_ PVOID BaseAddress,
_In_ SIZE_T Size,
_In_ ULONG AllocationType,
_In_ ULONG PageProtection,
_Inout_updates_opt_(ParameterCount) MEM_EXTENDED_PARAMETER* ExtendedParameters,
_In_ ULONG ParameterCount
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
PVOID
WINAPI
MapViewOfFile3(
_In_ HANDLE FileMapping,
_In_opt_ HANDLE Process,
_In_opt_ PVOID BaseAddress,
_In_ ULONG64 Offset,
_In_ SIZE_T ViewSize,
_In_ ULONG AllocationType,
_In_ ULONG PageProtection,
_Inout_updates_opt_(ParameterCount) MEM_EXTENDED_PARAMETER* ExtendedParameters,
_In_ ULONG ParameterCount
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(Size)
PVOID
WINAPI
VirtualAlloc2FromApp(
_In_opt_ HANDLE Process,
_In_opt_ PVOID BaseAddress,
_In_ SIZE_T Size,
_In_ ULONG AllocationType,
_In_ ULONG PageProtection,
_Inout_updates_opt_(ParameterCount) MEM_EXTENDED_PARAMETER* ExtendedParameters,
_In_ ULONG ParameterCount
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
PVOID
WINAPI
MapViewOfFile3FromApp(
_In_ HANDLE FileMapping,
_In_opt_ HANDLE Process,
_In_opt_ PVOID BaseAddress,
_In_ ULONG64 Offset,
_In_ SIZE_T ViewSize,
_In_ ULONG AllocationType,
_In_ ULONG PageProtection,
_Inout_updates_opt_(ParameterCount) MEM_EXTENDED_PARAMETER* ExtendedParameters,
_In_ ULONG ParameterCount
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateFileMapping2(
_In_ HANDLE File,
_In_opt_ SECURITY_ATTRIBUTES* SecurityAttributes,
_In_ ULONG DesiredAccess,
_In_ ULONG PageProtection,
_In_ ULONG AllocationAttributes,
_In_ ULONG64 MaximumSize,
_In_opt_ PCWSTR Name,
_Inout_updates_opt_(ParameterCount) MEM_EXTENDED_PARAMETER* ExtendedParameters,
_In_ ULONG ParameterCount
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
AllocateUserPhysicalPages2(
_In_ HANDLE ObjectHandle,
_Inout_ PULONG_PTR NumberOfPages,
_Out_writes_(*NumberOfPages) PULONG_PTR PageArray,
_Inout_updates_opt_(ExtendedParameterCount) PMEM_EXTENDED_PARAMETER ExtendedParameters,
_In_ ULONG ExtendedParameterCount
);
typedef enum WIN32_MEMORY_PARTITION_INFORMATION_CLASS {
MemoryPartitionInfo,
MemoryPartitionDedicatedMemoryInfo
} WIN32_MEMORY_PARTITION_INFORMATION_CLASS;
typedef struct DECLSPEC_ALIGN(8) WIN32_MEMORY_PARTITION_INFORMATION {
ULONG Flags;
ULONG NumaNode;
ULONG Channel;
ULONG NumberOfNumaNodes;
ULONG64 ResidentAvailablePages;
ULONG64 CommittedPages;
ULONG64 CommitLimit;
ULONG64 PeakCommitment;
ULONG64 TotalNumberOfPages;
ULONG64 AvailablePages;
ULONG64 ZeroPages;
ULONG64 FreePages;
ULONG64 StandbyPages;
ULONG64 Reserved[16];
ULONG64 MaximumCommitLimit;
ULONG64 Reserved2;
ULONG PartitionId;
} WIN32_MEMORY_PARTITION_INFORMATION;
WINBASEAPI
HANDLE
WINAPI
OpenDedicatedMemoryPartition(
_In_ HANDLE Partition,
_In_ ULONG64 DedicatedMemoryTypeId,
_In_ ACCESS_MASK DesiredAccess,
_In_ BOOL InheritHandle
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
QueryPartitionInformation(
_In_ HANDLE Partition,
_In_ WIN32_MEMORY_PARTITION_INFORMATION_CLASS PartitionInformationClass,
_Inout_updates_bytes_(PartitionInformationLength) PVOID PartitionInformation,
_In_ ULONG PartitionInformationLength
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
IsEnclaveTypeSupported(
_In_ DWORD flEnclaveType
);
WINBASEAPI
_Ret_maybenull_
_Post_writable_byte_size_(dwSize)
LPVOID
WINAPI
CreateEnclave(
_In_ HANDLE hProcess,
_In_opt_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ SIZE_T dwInitialCommitment,
_In_ DWORD flEnclaveType,
_In_reads_bytes_(dwInfoLength) LPCVOID lpEnclaveInformation,
_In_ DWORD dwInfoLength,
_Out_opt_ LPDWORD lpEnclaveError
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
LoadEnclaveData(
_In_ HANDLE hProcess,
_In_ LPVOID lpAddress,
_In_reads_bytes_(nSize) LPCVOID lpBuffer,
_In_ SIZE_T nSize,
_In_ DWORD flProtect,
_In_reads_bytes_(dwInfoLength) LPCVOID lpPageInformation,
_In_ DWORD dwInfoLength,
_Out_ PSIZE_T lpNumberOfBytesWritten,
_Out_opt_ LPDWORD lpEnclaveError
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
InitializeEnclave(
_In_ HANDLE hProcess,
_In_ LPVOID lpAddress,
_In_reads_bytes_(dwInfoLength) LPCVOID lpEnclaveInformation,
_In_ DWORD dwInfoLength,
_Out_opt_ LPDWORD lpEnclaveError
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
LoadEnclaveImageA(
_In_ LPVOID lpEnclaveAddress,
_In_ LPCSTR lpImageName
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
LoadEnclaveImageW(
_In_ LPVOID lpEnclaveAddress,
_In_ LPCWSTR lpImageName
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
CallEnclave(
_In_ LPENCLAVE_ROUTINE lpRoutine,
_In_ LPVOID lpParameter,
_In_ BOOL fWaitForThread,
_Out_ LPVOID* lpReturnValue
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
TerminateEnclave(
_In_ LPVOID lpAddress,
_In_ BOOL fWait
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
DeleteEnclave(
_In_ LPVOID lpAddress
);
WINBASEAPI
BOOL
WINAPI
QueueUserWorkItem(
_In_ LPTHREAD_START_ROUTINE Function,
_In_opt_ PVOID Context,
_In_ ULONG Flags
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
UnregisterWaitEx(
_In_ HANDLE WaitHandle,
_In_opt_ HANDLE CompletionEvent
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateTimerQueue(
VOID
);
WINBASEAPI
BOOL
WINAPI
CreateTimerQueueTimer(
_Outptr_ PHANDLE phNewTimer,
_In_opt_ HANDLE TimerQueue,
_In_ WAITORTIMERCALLBACK Callback,
_In_opt_ PVOID Parameter,
_In_ DWORD DueTime,
_In_ DWORD Period,
_In_ ULONG Flags
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
ChangeTimerQueueTimer(
_In_opt_ HANDLE TimerQueue,
_Inout_ HANDLE Timer,
_In_ ULONG DueTime,
_In_ ULONG Period
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
DeleteTimerQueueTimer(
_In_opt_ HANDLE TimerQueue,
_In_ HANDLE Timer,
_In_opt_ HANDLE CompletionEvent
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
DeleteTimerQueue(
_In_ HANDLE TimerQueue
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
DeleteTimerQueueEx(
_In_ HANDLE TimerQueue,
_In_opt_ HANDLE CompletionEvent
);
typedef
VOID
(WINAPI *PTP_WIN32_IO_CALLBACK)(
_Inout_ PTP_CALLBACK_INSTANCE Instance,
_Inout_opt_ PVOID Context,
_Inout_opt_ PVOID Overlapped,
_In_ ULONG IoResult,
_In_ ULONG_PTR NumberOfBytesTransferred,
_Inout_ PTP_IO Io
);
WINBASEAPI
_Must_inspect_result_
PTP_POOL
WINAPI
CreateThreadpool(
_Reserved_ PVOID reserved
);
WINBASEAPI
VOID
WINAPI
SetThreadpoolThreadMaximum(
_Inout_ PTP_POOL ptpp,
_In_ DWORD cthrdMost
);
WINBASEAPI
BOOL
WINAPI
SetThreadpoolThreadMinimum(
_Inout_ PTP_POOL ptpp,
_In_ DWORD cthrdMic
);
WINBASEAPI
BOOL
WINAPI
SetThreadpoolStackInformation(
_Inout_ PTP_POOL ptpp,
_In_ PTP_POOL_STACK_INFORMATION ptpsi
);
WINBASEAPI
BOOL
WINAPI
QueryThreadpoolStackInformation(
_In_ PTP_POOL ptpp,
_Out_ PTP_POOL_STACK_INFORMATION ptpsi
);
WINBASEAPI
VOID
WINAPI
CloseThreadpool(
_Inout_ PTP_POOL ptpp
);
WINBASEAPI
_Must_inspect_result_
PTP_CLEANUP_GROUP
WINAPI
CreateThreadpoolCleanupGroup(
VOID
);
WINBASEAPI
VOID
WINAPI
CloseThreadpoolCleanupGroupMembers(
_Inout_ PTP_CLEANUP_GROUP ptpcg,
_In_ BOOL fCancelPendingCallbacks,
_Inout_opt_ PVOID pvCleanupContext
);
WINBASEAPI
VOID
WINAPI
CloseThreadpoolCleanupGroup(
_Inout_ PTP_CLEANUP_GROUP ptpcg
);
WINBASEAPI
VOID
WINAPI
SetEventWhenCallbackReturns(
_Inout_ PTP_CALLBACK_INSTANCE pci,
_In_ HANDLE evt
);
WINBASEAPI
VOID
WINAPI
ReleaseSemaphoreWhenCallbackReturns(
_Inout_ PTP_CALLBACK_INSTANCE pci,
_In_ HANDLE sem,
_In_ DWORD crel
);
WINBASEAPI
VOID
WINAPI
ReleaseMutexWhenCallbackReturns(
_Inout_ PTP_CALLBACK_INSTANCE pci,
_In_ HANDLE mut
);
WINBASEAPI
VOID
WINAPI
LeaveCriticalSectionWhenCallbackReturns(
_Inout_ PTP_CALLBACK_INSTANCE pci,
_Inout_ PCRITICAL_SECTION pcs
);
WINBASEAPI
VOID
WINAPI
FreeLibraryWhenCallbackReturns(
_Inout_ PTP_CALLBACK_INSTANCE pci,
_In_ HMODULE mod
);
WINBASEAPI
BOOL
WINAPI
CallbackMayRunLong(
_Inout_ PTP_CALLBACK_INSTANCE pci
);
WINBASEAPI
VOID
WINAPI
DisassociateCurrentThreadFromCallback(
_Inout_ PTP_CALLBACK_INSTANCE pci
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
TrySubmitThreadpoolCallback(
_In_ PTP_SIMPLE_CALLBACK pfns,
_Inout_opt_ PVOID pv,
_In_opt_ PTP_CALLBACK_ENVIRON pcbe
);
WINBASEAPI
_Must_inspect_result_
PTP_WORK
WINAPI
CreateThreadpoolWork(
_In_ PTP_WORK_CALLBACK pfnwk,
_Inout_opt_ PVOID pv,
_In_opt_ PTP_CALLBACK_ENVIRON pcbe
);
WINBASEAPI
VOID
WINAPI
SubmitThreadpoolWork(
_Inout_ PTP_WORK pwk
);
WINBASEAPI
VOID
WINAPI
WaitForThreadpoolWorkCallbacks(
_Inout_ PTP_WORK pwk,
_In_ BOOL fCancelPendingCallbacks
);
WINBASEAPI
VOID
WINAPI
CloseThreadpoolWork(
_Inout_ PTP_WORK pwk
);
WINBASEAPI
_Must_inspect_result_
PTP_TIMER
WINAPI
CreateThreadpoolTimer(
_In_ PTP_TIMER_CALLBACK pfnti,
_Inout_opt_ PVOID pv,
_In_opt_ PTP_CALLBACK_ENVIRON pcbe
);
WINBASEAPI
VOID
WINAPI
SetThreadpoolTimer(
_Inout_ PTP_TIMER pti,
_In_opt_ PFILETIME pftDueTime,
_In_ DWORD msPeriod,
_In_opt_ DWORD msWindowLength
);
WINBASEAPI
BOOL
WINAPI
IsThreadpoolTimerSet(
_Inout_ PTP_TIMER pti
);
WINBASEAPI
VOID
WINAPI
WaitForThreadpoolTimerCallbacks(
_Inout_ PTP_TIMER pti,
_In_ BOOL fCancelPendingCallbacks
);
WINBASEAPI
VOID
WINAPI
CloseThreadpoolTimer(
_Inout_ PTP_TIMER pti
);
WINBASEAPI
_Must_inspect_result_
PTP_WAIT
WINAPI
CreateThreadpoolWait(
_In_ PTP_WAIT_CALLBACK pfnwa,
_Inout_opt_ PVOID pv,
_In_opt_ PTP_CALLBACK_ENVIRON pcbe
);
WINBASEAPI
VOID
WINAPI
SetThreadpoolWait(
_Inout_ PTP_WAIT pwa,
_In_opt_ HANDLE h,
_In_opt_ PFILETIME pftTimeout
);
WINBASEAPI
VOID
WINAPI
WaitForThreadpoolWaitCallbacks(
_Inout_ PTP_WAIT pwa,
_In_ BOOL fCancelPendingCallbacks
);
WINBASEAPI
VOID
WINAPI
CloseThreadpoolWait(
_Inout_ PTP_WAIT pwa
);
WINBASEAPI
_Must_inspect_result_
PTP_IO
WINAPI
CreateThreadpoolIo(
_In_ HANDLE fl,
_In_ PTP_WIN32_IO_CALLBACK pfnio,
_Inout_opt_ PVOID pv,
_In_opt_ PTP_CALLBACK_ENVIRON pcbe
);
WINBASEAPI
VOID
WINAPI
StartThreadpoolIo(
_Inout_ PTP_IO pio
);
WINBASEAPI
VOID
WINAPI
CancelThreadpoolIo(
_Inout_ PTP_IO pio
);
WINBASEAPI
VOID
WINAPI
WaitForThreadpoolIoCallbacks(
_Inout_ PTP_IO pio,
_In_ BOOL fCancelPendingCallbacks
);
WINBASEAPI
VOID
WINAPI
CloseThreadpoolIo(
_Inout_ PTP_IO pio
);
WINBASEAPI
BOOL
WINAPI
SetThreadpoolTimerEx(
_Inout_ PTP_TIMER pti,
_In_opt_ PFILETIME pftDueTime,
_In_ DWORD msPeriod,
_In_opt_ DWORD msWindowLength
);
WINBASEAPI
BOOL
WINAPI
SetThreadpoolWaitEx(
_Inout_ PTP_WAIT pwa,
_In_opt_ HANDLE h,
_In_opt_ PFILETIME pftTimeout,
_Reserved_ PVOID Reserved
);
WINBASEAPI
BOOL
WINAPI
IsProcessInJob(
_In_ HANDLE ProcessHandle,
_In_opt_ HANDLE JobHandle,
_Out_ PBOOL Result
);
typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
LONG64 MaxIops;
LONG64 MaxBandwidth;
LONG64 ReservationIops;
PCWSTR VolumeName;
ULONG BaseIoSize;
ULONG ControlFlags;
} JOBOBJECT_IO_RATE_CONTROL_INFORMATION;
WINBASEAPI
HANDLE
WINAPI
CreateJobObjectW(
_In_opt_ LPSECURITY_ATTRIBUTES lpJobAttributes,
_In_opt_ LPCWSTR lpName
);
WINBASEAPI
VOID
WINAPI
FreeMemoryJobObject(
_In_ _Frees_ptr_ VOID* Buffer
);
WINBASEAPI
HANDLE
WINAPI
OpenJobObjectW(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCWSTR lpName
);
WINBASEAPI
BOOL
WINAPI
AssignProcessToJobObject(
_In_ HANDLE hJob,
_In_ HANDLE hProcess
);
WINBASEAPI
BOOL
WINAPI
TerminateJobObject(
_In_ HANDLE hJob,
_In_ UINT uExitCode
);
WINBASEAPI
BOOL
WINAPI
SetInformationJobObject(
_In_ HANDLE hJob,
_In_ JOBOBJECTINFOCLASS JobObjectInformationClass,
_In_reads_bytes_(cbJobObjectInformationLength) LPVOID lpJobObjectInformation,
_In_ DWORD cbJobObjectInformationLength
);
WINBASEAPI
DWORD
WINAPI
SetIoRateControlInformationJobObject(
_In_ HANDLE hJob,
_In_ JOBOBJECT_IO_RATE_CONTROL_INFORMATION* IoRateControlInfo
);
WINBASEAPI
BOOL
WINAPI
QueryInformationJobObject(
_In_opt_ HANDLE hJob,
_In_ JOBOBJECTINFOCLASS JobObjectInformationClass,
_Out_writes_bytes_to_(cbJobObjectInformationLength, *lpReturnLength) LPVOID lpJobObjectInformation,
_In_ DWORD cbJobObjectInformationLength,
_Out_opt_ LPDWORD lpReturnLength
);
WINBASEAPI
DWORD
WINAPI
QueryIoRateControlInformationJobObject(
_In_opt_ HANDLE hJob,
_In_opt_ PCWSTR VolumeName,
_Outptr_result_buffer_(*InfoBlockCount) JOBOBJECT_IO_RATE_CONTROL_INFORMATION** InfoBlocks,
_Out_ ULONG* InfoBlockCount
);
WINBASEAPI
BOOLEAN
WINAPI
Wow64EnableWow64FsRedirection(
_In_ BOOLEAN Wow64FsEnableRedirection
);
WINBASEAPI
BOOL
WINAPI
Wow64DisableWow64FsRedirection(
_Out_ PVOID* OldValue
);
WINBASEAPI
BOOL
WINAPI
Wow64RevertWow64FsRedirection(
_In_ PVOID OlValue
);
WINBASEAPI
BOOL
WINAPI
IsWow64Process(
_In_ HANDLE hProcess,
_Out_ PBOOL Wow64Process
);
WINBASEAPI
_Must_inspect_result_
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemWow64DirectoryA(
_Out_writes_to_opt_(uSize,return + 1) LPSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
_Must_inspect_result_
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemWow64DirectoryW(
_Out_writes_to_opt_(uSize,return + 1) LPWSTR lpBuffer,
_In_ UINT uSize
);
WINBASEAPI
USHORT
WINAPI
Wow64SetThreadDefaultGuestMachine(
_In_ USHORT Machine
);
WINBASEAPI
BOOL
WINAPI
IsWow64Process2(
_In_ HANDLE hProcess,
_Out_ USHORT* pProcessMachine,
_Out_opt_ USHORT* pNativeMachine
);
WINBASEAPI
_Must_inspect_result_
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemWow64Directory2A(
_Out_writes_to_opt_(uSize,return + 1) LPSTR lpBuffer,
_In_ UINT uSize,
_In_ WORD ImageFileMachineType
);
WINBASEAPI
_Must_inspect_result_
_Success_(return != 0 && return < uSize)
UINT
WINAPI
GetSystemWow64Directory2W(
_Out_writes_to_opt_(uSize,return + 1) LPWSTR lpBuffer,
_In_ UINT uSize,
_In_ WORD ImageFileMachineType
);
WINBASEAPI
_Must_inspect_result_
HRESULT
WINAPI
IsWow64GuestMachineSupported(
_In_ USHORT WowGuestMachine,
_Out_ BOOL* MachineIsSupported
);
WINBASEAPI
BOOL
WINAPI
Wow64GetThreadContext(
_In_ HANDLE hThread,
_Inout_ PWOW64_CONTEXT lpContext
);
WINBASEAPI
BOOL
WINAPI
Wow64SetThreadContext(
_In_ HANDLE hThread,
_In_ CONST WOW64_CONTEXT* lpContext
);
WINBASEAPI
DWORD
WINAPI
Wow64SuspendThread(
_In_ HANDLE hThread
);
typedef struct tagENUMUILANG {
ULONG NumOfEnumUILang;
ULONG SizeOfEnumUIBuffer;
LANGID *pEnumUIBuffer;
} ENUMUILANG, *PENUMUILANG;
typedef BOOL (CALLBACK* ENUMRESLANGPROCA)(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ LPCSTR lpName,
_In_ WORD wLanguage,
_In_ LONG_PTR lParam);
typedef BOOL (CALLBACK* ENUMRESLANGPROCW)(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ LPCWSTR lpName,
_In_ WORD wLanguage,
_In_ LONG_PTR lParam);
typedef BOOL (CALLBACK* ENUMRESNAMEPROCA)(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ LPSTR lpName,
_In_ LONG_PTR lParam);
typedef BOOL (CALLBACK* ENUMRESNAMEPROCW)(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ LPWSTR lpName,
_In_ LONG_PTR lParam);
typedef BOOL (CALLBACK* ENUMRESTYPEPROCA)(
_In_opt_ HMODULE hModule,
_In_ LPSTR lpType,
_In_ LONG_PTR lParam
);
typedef BOOL (CALLBACK* ENUMRESTYPEPROCW)(
_In_opt_ HMODULE hModule,
_In_ LPWSTR lpType,
_In_ LONG_PTR lParam
);
WINBASEAPI
BOOL
WINAPI
DisableThreadLibraryCalls(
_In_ HMODULE hLibModule
);
WINBASEAPI
_Ret_maybenull_
HRSRC
WINAPI
FindResourceExW(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ LPCWSTR lpName,
_In_ WORD wLanguage
);
WINBASEAPI
int
WINAPI
FindStringOrdinal(
_In_ DWORD dwFindStringOrdinalFlags,
_In_reads_(cchSource) LPCWSTR lpStringSource,
_In_ int cchSource,
_In_reads_(cchValue) LPCWSTR lpStringValue,
_In_ int cchValue,
_In_ BOOL bIgnoreCase
);
WINBASEAPI
BOOL
WINAPI
FreeLibrary(
_In_ HMODULE hLibModule
);
WINBASEAPI
DECLSPEC_NORETURN
VOID
WINAPI
FreeLibraryAndExitThread(
_In_ HMODULE hLibModule,
_In_ DWORD dwExitCode
);
WINBASEAPI
BOOL
WINAPI
FreeResource(
_In_ HGLOBAL hResData
);
WINBASEAPI
_Success_(return != 0)
_Ret_range_(1,nSize)
DWORD
WINAPI
GetModuleFileNameA(
_In_opt_ HMODULE hModule,
_Out_writes_to_(nSize,((return < nSize) ? (return + 1) : nSize)) LPSTR lpFilename,
_In_ DWORD nSize
);
WINBASEAPI
_Success_(return != 0)
_Ret_range_(1,nSize)
DWORD
WINAPI
GetModuleFileNameW(
_In_opt_ HMODULE hModule,
_Out_writes_to_(nSize,((return < nSize) ? (return + 1) : nSize)) LPWSTR lpFilename,
_In_ DWORD nSize
);
WINBASEAPI
_When_(lpModuleName == NULL,_Ret_notnull_)
_When_(lpModuleName != NULL,_Ret_maybenull_)
HMODULE
WINAPI
GetModuleHandleA(
_In_opt_ LPCSTR lpModuleName
);
WINBASEAPI
_When_(lpModuleName == NULL,_Ret_notnull_)
_When_(lpModuleName != NULL,_Ret_maybenull_)
HMODULE
WINAPI
GetModuleHandleW(
_In_opt_ LPCWSTR lpModuleName
);
typedef
BOOL
(WINAPI*
PGET_MODULE_HANDLE_EXA)(
_In_ DWORD dwFlags,
_In_opt_ LPCSTR lpModuleName,
_Outptr_ HMODULE* phModule
);
typedef
BOOL
(WINAPI*
PGET_MODULE_HANDLE_EXW)(
_In_ DWORD dwFlags,
_In_opt_ LPCWSTR lpModuleName,
_Outptr_ HMODULE* phModule
);
WINBASEAPI
BOOL
WINAPI
GetModuleHandleExA(
_In_ DWORD dwFlags,
_In_opt_ LPCSTR lpModuleName,
_Out_ HMODULE* phModule
);
WINBASEAPI
BOOL
WINAPI
GetModuleHandleExW(
_In_ DWORD dwFlags,
_In_opt_ LPCWSTR lpModuleName,
_Out_ HMODULE* phModule
);
WINBASEAPI
FARPROC
WINAPI
GetProcAddress(
_In_ HMODULE hModule,
_In_ LPCSTR lpProcName
);
typedef struct _REDIRECTION_FUNCTION_DESCRIPTOR {
PCSTR DllName;
PCSTR FunctionName;
PVOID RedirectionTarget;
} REDIRECTION_FUNCTION_DESCRIPTOR, *PREDIRECTION_FUNCTION_DESCRIPTOR;
typedef const REDIRECTION_FUNCTION_DESCRIPTOR *PCREDIRECTION_FUNCTION_DESCRIPTOR;
typedef struct _REDIRECTION_DESCRIPTOR {
ULONG Version;
ULONG FunctionCount;
PCREDIRECTION_FUNCTION_DESCRIPTOR Redirections;
} REDIRECTION_DESCRIPTOR, *PREDIRECTION_DESCRIPTOR;
typedef const REDIRECTION_DESCRIPTOR *PCREDIRECTION_DESCRIPTOR;
WINBASEAPI
_Ret_maybenull_
HMODULE
WINAPI
LoadLibraryExA(
_In_ LPCSTR lpLibFileName,
_Reserved_ HANDLE hFile,
_In_ DWORD dwFlags
);
WINBASEAPI
_Ret_maybenull_
HMODULE
WINAPI
LoadLibraryExW(
_In_ LPCWSTR lpLibFileName,
_Reserved_ HANDLE hFile,
_In_ DWORD dwFlags
);
WINBASEAPI
_Ret_maybenull_
HGLOBAL
WINAPI
LoadResource(
_In_opt_ HMODULE hModule,
_In_ HRSRC hResInfo
);
WINUSERAPI
int
WINAPI
LoadStringA(
_In_opt_ HINSTANCE hInstance,
_In_ UINT uID,
_Out_writes_to_(cchBufferMax,return + 1) LPSTR lpBuffer,
_In_ int cchBufferMax
);
WINUSERAPI
int
WINAPI
LoadStringW(
_In_opt_ HINSTANCE hInstance,
_In_ UINT uID,
_Out_writes_to_(cchBufferMax,return + 1) LPWSTR lpBuffer,
_In_ int cchBufferMax
);
WINBASEAPI
LPVOID
WINAPI
LockResource(
_In_ HGLOBAL hResData
);
WINBASEAPI
DWORD
WINAPI
SizeofResource(
_In_opt_ HMODULE hModule,
_In_ HRSRC hResInfo
);
typedef PVOID DLL_DIRECTORY_COOKIE, *PDLL_DIRECTORY_COOKIE;
WINBASEAPI
DLL_DIRECTORY_COOKIE
WINAPI
AddDllDirectory(
_In_ PCWSTR NewDirectory
);
WINBASEAPI
BOOL
WINAPI
RemoveDllDirectory(
_In_ DLL_DIRECTORY_COOKIE Cookie
);
WINBASEAPI
BOOL
WINAPI
SetDefaultDllDirectories(
_In_ DWORD DirectoryFlags
);
WINBASEAPI
BOOL
APIENTRY
EnumResourceLanguagesExA(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ LPCSTR lpName,
_In_ ENUMRESLANGPROCA lpEnumFunc,
_In_opt_ LONG_PTR lParam,
DWORD dwFlags,
LANGID LangId
);
WINBASEAPI
BOOL
APIENTRY
EnumResourceLanguagesExW(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ LPCWSTR lpName,
_In_ ENUMRESLANGPROCW lpEnumFunc,
_In_opt_ LONG_PTR lParam,
DWORD dwFlags,
LANGID LangId
);
WINBASEAPI
BOOL
WINAPI
EnumResourceNamesExA(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ ENUMRESNAMEPROCA lpEnumFunc,
_In_ LONG_PTR lParam,
DWORD dwFlags,
LANGID LangId
);
WINBASEAPI
BOOL
WINAPI
EnumResourceNamesExW(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ ENUMRESNAMEPROCW lpEnumFunc,
_In_ LONG_PTR lParam,
DWORD dwFlags,
LANGID LangId
);
WINBASEAPI
BOOL
WINAPI
EnumResourceTypesExA(
_In_opt_ HMODULE hModule,
_In_ ENUMRESTYPEPROCA lpEnumFunc,
_In_ LONG_PTR lParam,
DWORD dwFlags,
LANGID LangId
);
WINBASEAPI
BOOL
WINAPI
EnumResourceTypesExW(
_In_opt_ HMODULE hModule,
_In_ ENUMRESTYPEPROCW lpEnumFunc,
_In_ LONG_PTR lParam,
DWORD dwFlags,
LANGID LangId
);
WINBASEAPI
_Ret_maybenull_
HRSRC
WINAPI
FindResourceW(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpType
);
WINBASEAPI
_Ret_maybenull_
HMODULE
WINAPI
LoadLibraryA(
_In_ LPCSTR lpLibFileName
);
WINBASEAPI
_Ret_maybenull_
HMODULE
WINAPI
LoadLibraryW(
_In_ LPCWSTR lpLibFileName
);
WINBASEAPI
BOOL
WINAPI
EnumResourceNamesW(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ ENUMRESNAMEPROCW lpEnumFunc,
_In_ LONG_PTR lParam
);
WINBASEAPI
BOOL
WINAPI
EnumResourceNamesA(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ ENUMRESNAMEPROCA lpEnumFunc,
_In_ LONG_PTR lParam
);
WINADVAPI
BOOL
WINAPI
AccessCheck(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_In_ PGENERIC_MAPPING GenericMapping,
_Out_writes_bytes_to_opt_(*PrivilegeSetLength,*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet,
_Inout_ LPDWORD PrivilegeSetLength,
_Out_ LPDWORD GrantedAccess,
_Out_ LPBOOL AccessStatus
);
WINADVAPI
BOOL
WINAPI
AccessCheckAndAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_opt_ LPVOID HandleId,
_In_ LPWSTR ObjectTypeName,
_In_opt_ LPWSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ DWORD DesiredAccess,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_ LPDWORD GrantedAccess,
_Out_ LPBOOL AccessStatus,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AccessCheckByType(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_Out_writes_bytes_to_opt_(*PrivilegeSetLength,*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet,
_Inout_ LPDWORD PrivilegeSetLength,
_Out_ LPDWORD GrantedAccess,
_Out_ LPBOOL AccessStatus
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeResultList(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_Out_writes_bytes_to_opt_(*PrivilegeSetLength,*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet,
_Inout_ LPDWORD PrivilegeSetLength,
_Out_writes_(ObjectTypeListLength) LPDWORD GrantedAccessList,
_Out_writes_(ObjectTypeListLength) LPDWORD AccessStatusList
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeAndAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ LPCWSTR ObjectTypeName,
_In_opt_ LPCWSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ DWORD DesiredAccess,
_In_ AUDIT_EVENT_TYPE AuditType,
_In_ DWORD Flags,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_ LPDWORD GrantedAccess,
_Out_ LPBOOL AccessStatus,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeResultListAndAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ LPCWSTR ObjectTypeName,
_In_opt_ LPCWSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ DWORD DesiredAccess,
_In_ AUDIT_EVENT_TYPE AuditType,
_In_ DWORD Flags,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_writes_(ObjectTypeListLength) LPDWORD GrantedAccessList,
_Out_writes_(ObjectTypeListLength) LPDWORD AccessStatusList,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeResultListAndAuditAlarmByHandleW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ HANDLE ClientToken,
_In_ LPCWSTR ObjectTypeName,
_In_opt_ LPCWSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ DWORD DesiredAccess,
_In_ AUDIT_EVENT_TYPE AuditType,
_In_ DWORD Flags,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_writes_(ObjectTypeListLength) LPDWORD GrantedAccessList,
_Out_writes_(ObjectTypeListLength) LPDWORD AccessStatusList,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AddAccessAllowedAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AccessMask,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AddAccessAllowedAceEx(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AddAccessAllowedObjectAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_opt_ GUID* ObjectTypeGuid,
_In_opt_ GUID* InheritedObjectTypeGuid,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AddAccessDeniedAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AccessMask,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AddAccessDeniedAceEx(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AddAccessDeniedObjectAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_opt_ GUID* ObjectTypeGuid,
_In_opt_ GUID* InheritedObjectTypeGuid,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AddAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD dwStartingAceIndex,
_In_reads_bytes_(nAceListLength) LPVOID pAceList,
_In_ DWORD nAceListLength
);
WINADVAPI
BOOL
WINAPI
AddAuditAccessAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD dwAccessMask,
_In_ PSID pSid,
_In_ BOOL bAuditSuccess,
_In_ BOOL bAuditFailure
);
WINADVAPI
BOOL
WINAPI
AddAuditAccessAceEx(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD dwAccessMask,
_In_ PSID pSid,
_In_ BOOL bAuditSuccess,
_In_ BOOL bAuditFailure
);
WINADVAPI
BOOL
WINAPI
AddAuditAccessObjectAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_opt_ GUID* ObjectTypeGuid,
_In_opt_ GUID* InheritedObjectTypeGuid,
_In_ PSID pSid,
_In_ BOOL bAuditSuccess,
_In_ BOOL bAuditFailure
);
WINADVAPI
BOOL
WINAPI
AddMandatoryAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD MandatoryPolicy,
_In_ PSID pLabelSid
);
WINADVAPI
BOOL
WINAPI
AddResourceAttributeAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_ PSID pSid,
_In_ PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo,
_Out_ PDWORD pReturnLength
);
WINADVAPI
BOOL
WINAPI
AddScopedPolicyIDAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ DWORD AccessMask,
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
AdjustTokenGroups(
_In_ HANDLE TokenHandle,
_In_ BOOL ResetToDefault,
_In_opt_ PTOKEN_GROUPS NewState,
_In_ DWORD BufferLength,
_Out_writes_bytes_to_opt_(BufferLength,*ReturnLength) PTOKEN_GROUPS PreviousState,
_Out_opt_ PDWORD ReturnLength
);
WINADVAPI
BOOL
WINAPI
AdjustTokenPrivileges(
_In_ HANDLE TokenHandle,
_In_ BOOL DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ DWORD BufferLength,
_Out_writes_bytes_to_opt_(BufferLength,*ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_Out_opt_ PDWORD ReturnLength
);
WINADVAPI
BOOL
WINAPI
AllocateAndInitializeSid(
_In_ PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
_In_ BYTE nSubAuthorityCount,
_In_ DWORD nSubAuthority0,
_In_ DWORD nSubAuthority1,
_In_ DWORD nSubAuthority2,
_In_ DWORD nSubAuthority3,
_In_ DWORD nSubAuthority4,
_In_ DWORD nSubAuthority5,
_In_ DWORD nSubAuthority6,
_In_ DWORD nSubAuthority7,
_Outptr_ PSID* pSid
);
WINADVAPI
BOOL
WINAPI
AllocateLocallyUniqueId(
_Out_ PLUID Luid
);
WINADVAPI
BOOL
WINAPI
AreAllAccessesGranted(
_In_ DWORD GrantedAccess,
_In_ DWORD DesiredAccess
);
WINADVAPI
BOOL
WINAPI
AreAnyAccessesGranted(
_In_ DWORD GrantedAccess,
_In_ DWORD DesiredAccess
);
WINADVAPI
BOOL
APIENTRY
CheckTokenMembership(
_In_opt_ HANDLE TokenHandle,
_In_ PSID SidToCheck,
_Out_ PBOOL IsMember
);
WINADVAPI
BOOL
APIENTRY
CheckTokenCapability(
_In_opt_ HANDLE TokenHandle,
_In_ PSID CapabilitySidToCheck,
_Out_ PBOOL HasCapability
);
WINADVAPI
BOOL
APIENTRY
GetAppContainerAce(
_In_ PACL Acl,
_In_ DWORD StartingAceIndex,
_Outptr_ PVOID* AppContainerAce,
_Out_opt_ DWORD* AppContainerAceIndex
);
WINADVAPI
BOOL
APIENTRY
CheckTokenMembershipEx(
_In_opt_ HANDLE TokenHandle,
_In_ PSID SidToCheck,
_In_ DWORD Flags,
_Out_ PBOOL IsMember
);
WINADVAPI
BOOL
WINAPI
ConvertToAutoInheritPrivateObjectSecurity(
_In_opt_ PSECURITY_DESCRIPTOR ParentDescriptor,
_In_ PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,
_Outptr_ PSECURITY_DESCRIPTOR* NewSecurityDescriptor,
_In_opt_ GUID* ObjectType,
_In_ BOOLEAN IsDirectoryObject,
_In_ PGENERIC_MAPPING GenericMapping
);
WINADVAPI
BOOL
WINAPI
CopySid(
_In_ DWORD nDestinationSidLength,
_Out_writes_bytes_(nDestinationSidLength) PSID pDestinationSid,
_In_ PSID pSourceSid
);
WINADVAPI
BOOL
WINAPI
CreatePrivateObjectSecurity(
_In_opt_ PSECURITY_DESCRIPTOR ParentDescriptor,
_In_opt_ PSECURITY_DESCRIPTOR CreatorDescriptor,
_Outptr_ PSECURITY_DESCRIPTOR* NewDescriptor,
_In_ BOOL IsDirectoryObject,
_In_opt_ HANDLE Token,
_In_ PGENERIC_MAPPING GenericMapping
);
WINADVAPI
BOOL
WINAPI
CreatePrivateObjectSecurityEx(
_In_opt_ PSECURITY_DESCRIPTOR ParentDescriptor,
_In_opt_ PSECURITY_DESCRIPTOR CreatorDescriptor,
_Outptr_ PSECURITY_DESCRIPTOR* NewDescriptor,
_In_opt_ GUID* ObjectType,
_In_ BOOL IsContainerObject,
_In_ ULONG AutoInheritFlags,
_In_opt_ HANDLE Token,
_In_ PGENERIC_MAPPING GenericMapping
);
WINADVAPI
BOOL
WINAPI
CreatePrivateObjectSecurityWithMultipleInheritance(
_In_opt_ PSECURITY_DESCRIPTOR ParentDescriptor,
_In_opt_ PSECURITY_DESCRIPTOR CreatorDescriptor,
_Outptr_ PSECURITY_DESCRIPTOR* NewDescriptor,
_In_reads_opt_(GuidCount) GUID** ObjectTypes,
_In_ ULONG GuidCount,
_In_ BOOL IsContainerObject,
_In_ ULONG AutoInheritFlags,
_In_opt_ HANDLE Token,
_In_ PGENERIC_MAPPING GenericMapping
);
WINADVAPI
BOOL
APIENTRY
CreateRestrictedToken(
_In_ HANDLE ExistingTokenHandle,
_In_ DWORD Flags,
_In_ DWORD DisableSidCount,
_In_reads_opt_(DisableSidCount) PSID_AND_ATTRIBUTES SidsToDisable,
_In_ DWORD DeletePrivilegeCount,
_In_reads_opt_(DeletePrivilegeCount) PLUID_AND_ATTRIBUTES PrivilegesToDelete,
_In_ DWORD RestrictedSidCount,
_In_reads_opt_(RestrictedSidCount) PSID_AND_ATTRIBUTES SidsToRestrict,
_Outptr_ PHANDLE NewTokenHandle
);
WINADVAPI
_Success_(return != FALSE)
BOOL
WINAPI
CreateWellKnownSid(
_In_ WELL_KNOWN_SID_TYPE WellKnownSidType,
_In_opt_ PSID DomainSid,
_Out_writes_bytes_to_opt_(*cbSid,*cbSid) PSID pSid,
_Inout_ DWORD* cbSid
);
WINADVAPI
_Success_(return != FALSE)
BOOL
WINAPI
EqualDomainSid(
_In_ PSID pSid1,
_In_ PSID pSid2,
_Out_ BOOL* pfEqual
);
WINADVAPI
BOOL
WINAPI
DeleteAce(
_Inout_ PACL pAcl,
_In_ DWORD dwAceIndex
);
WINADVAPI
BOOL
WINAPI
DestroyPrivateObjectSecurity(
_Pre_valid_ _Post_invalid_ PSECURITY_DESCRIPTOR* ObjectDescriptor
);
WINADVAPI
BOOL
WINAPI
DuplicateToken(
_In_ HANDLE ExistingTokenHandle,
_In_ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
_Outptr_ PHANDLE DuplicateTokenHandle
);
WINADVAPI
BOOL
WINAPI
DuplicateTokenEx(
_In_ HANDLE hExistingToken,
_In_ DWORD dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpTokenAttributes,
_In_ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
_In_ TOKEN_TYPE TokenType,
_Outptr_ PHANDLE phNewToken
);
WINADVAPI
BOOL
WINAPI
EqualPrefixSid(
_In_ PSID pSid1,
_In_ PSID pSid2
);
WINADVAPI
BOOL
WINAPI
EqualSid(
_In_ PSID pSid1,
_In_ PSID pSid2
);
WINADVAPI
BOOL
WINAPI
FindFirstFreeAce(
_In_ PACL pAcl,
_Outptr_ LPVOID* pAce
);
WINADVAPI
PVOID
WINAPI
FreeSid(
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
GetAce(
_In_ PACL pAcl,
_In_ DWORD dwAceIndex,
_Outptr_ LPVOID* pAce
);
WINADVAPI
BOOL
WINAPI
GetAclInformation(
_In_ PACL pAcl,
_Out_writes_bytes_(nAclInformationLength) LPVOID pAclInformation,
_In_ DWORD nAclInformationLength,
_In_ ACL_INFORMATION_CLASS dwAclInformationClass
);
WINADVAPI
BOOL
WINAPI
GetFileSecurityW(
_In_ LPCWSTR lpFileName,
_In_ SECURITY_INFORMATION RequestedInformation,
_Out_writes_bytes_to_opt_(nLength,*lpnLengthNeeded) PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ DWORD nLength,
_Out_ LPDWORD lpnLengthNeeded
);
WINADVAPI
BOOL
WINAPI
GetKernelObjectSecurity(
_In_ HANDLE Handle,
_In_ SECURITY_INFORMATION RequestedInformation,
_Out_writes_bytes_opt_(nLength) PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ DWORD nLength,
_Out_ LPDWORD lpnLengthNeeded
);
WINADVAPI
_Post_satisfies_(return >= 8 && return <= SECURITY_MAX_SID_SIZE)
_Success_(1)
DWORD
WINAPI
GetLengthSid(
_In_ _Post_readable_byte_size_(return) PSID pSid
);
WINADVAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetPrivateObjectSecurity(
_In_ PSECURITY_DESCRIPTOR ObjectDescriptor,
_In_ SECURITY_INFORMATION SecurityInformation,
_Out_writes_bytes_to_opt_(DescriptorLength,*ReturnLength) PSECURITY_DESCRIPTOR ResultantDescriptor,
_In_ DWORD DescriptorLength,
_Out_ PDWORD ReturnLength
);
WINADVAPI
BOOL
WINAPI
GetSecurityDescriptorControl(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Out_ PSECURITY_DESCRIPTOR_CONTROL pControl,
_Out_ LPDWORD lpdwRevision
);
WINADVAPI
BOOL
WINAPI
GetSecurityDescriptorDacl(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Out_ LPBOOL lpbDaclPresent,
_Outptr_ PACL* pDacl,
_Out_ LPBOOL lpbDaclDefaulted
);
WINADVAPI
BOOL
WINAPI
GetSecurityDescriptorGroup(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Outptr_ PSID* pGroup,
_Out_ LPBOOL lpbGroupDefaulted
);
WINADVAPI
DWORD
WINAPI
GetSecurityDescriptorLength(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor
);
WINADVAPI
BOOL
WINAPI
GetSecurityDescriptorOwner(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Outptr_ PSID* pOwner,
_Out_ LPBOOL lpbOwnerDefaulted
);
WINADVAPI
DWORD
WINAPI
GetSecurityDescriptorRMControl(
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_Out_ PUCHAR RMControl
);
WINADVAPI
BOOL
WINAPI
GetSecurityDescriptorSacl(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Out_ LPBOOL lpbSaclPresent,
_Outptr_ PACL* pSacl,
_Out_ LPBOOL lpbSaclDefaulted
);
WINADVAPI
PSID_IDENTIFIER_AUTHORITY
WINAPI
GetSidIdentifierAuthority(
_In_ PSID pSid
);
WINADVAPI
DWORD
WINAPI
GetSidLengthRequired(
_In_ UCHAR nSubAuthorityCount
);
WINADVAPI
PDWORD
WINAPI
GetSidSubAuthority(
_In_ PSID pSid,
_In_ DWORD nSubAuthority
);
WINADVAPI
PUCHAR
WINAPI
GetSidSubAuthorityCount(
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
GetTokenInformation(
_In_ HANDLE TokenHandle,
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
_Out_writes_bytes_to_opt_(TokenInformationLength,*ReturnLength) LPVOID TokenInformation,
_In_ DWORD TokenInformationLength,
_Out_ PDWORD ReturnLength
);
WINADVAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetWindowsAccountDomainSid(
_In_ PSID pSid,
_Out_writes_bytes_to_opt_(*cbDomainSid,*cbDomainSid) PSID pDomainSid,
_Inout_ DWORD* cbDomainSid
);
WINADVAPI
BOOL
APIENTRY
ImpersonateAnonymousToken(
_In_ HANDLE ThreadHandle
);
_Must_inspect_result_
WINADVAPI
BOOL
WINAPI
ImpersonateLoggedOnUser(
_In_ HANDLE hToken
);
_Must_inspect_result_
WINADVAPI
BOOL
WINAPI
ImpersonateSelf(
_In_ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);
WINADVAPI
BOOL
WINAPI
InitializeAcl(
_Out_writes_bytes_(nAclLength) PACL pAcl,
_In_ DWORD nAclLength,
_In_ DWORD dwAclRevision
);
WINADVAPI
BOOL
WINAPI
InitializeSecurityDescriptor(
_Out_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ DWORD dwRevision
);
WINADVAPI
BOOL
WINAPI
InitializeSid(
_Out_writes_bytes_(_Inexpressible_(GetSidLengthRequired(nSubAuthorityCount))) PSID Sid,
_In_ PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
_In_ BYTE nSubAuthorityCount
);
WINADVAPI
BOOL
WINAPI
IsTokenRestricted(
_In_ HANDLE TokenHandle
);
WINADVAPI
BOOL
WINAPI
IsValidAcl(
_In_ PACL pAcl
);
WINADVAPI
BOOL
WINAPI
IsValidSecurityDescriptor(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor
);
WINADVAPI
BOOL
WINAPI
IsValidSid(
_In_ PSID pSid
);
WINADVAPI
BOOL
WINAPI
IsWellKnownSid(
_In_ PSID pSid,
_In_ WELL_KNOWN_SID_TYPE WellKnownSidType
);
WINADVAPI
_Success_(return != FALSE)
BOOL
WINAPI
MakeAbsoluteSD(
_In_ PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
_Out_writes_bytes_to_opt_(*lpdwAbsoluteSecurityDescriptorSize,*lpdwAbsoluteSecurityDescriptorSize) PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
_Inout_ LPDWORD lpdwAbsoluteSecurityDescriptorSize,
_Out_writes_bytes_to_opt_(*lpdwDaclSize,*lpdwDaclSize) PACL pDacl,
_Inout_ LPDWORD lpdwDaclSize,
_Out_writes_bytes_to_opt_(*lpdwSaclSize,*lpdwSaclSize) PACL pSacl,
_Inout_ LPDWORD lpdwSaclSize,
_Out_writes_bytes_to_opt_(*lpdwOwnerSize,*lpdwOwnerSize) PSID pOwner,
_Inout_ LPDWORD lpdwOwnerSize,
_Out_writes_bytes_to_opt_(*lpdwPrimaryGroupSize,*lpdwPrimaryGroupSize) PSID pPrimaryGroup,
_Inout_ LPDWORD lpdwPrimaryGroupSize
);
WINADVAPI
_Success_(return != FALSE)
BOOL
WINAPI
MakeSelfRelativeSD(
_In_ PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
_Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
_Inout_ LPDWORD lpdwBufferLength
);
WINADVAPI
VOID
WINAPI
MapGenericMask(
_Inout_ PDWORD AccessMask,
_In_ PGENERIC_MAPPING GenericMapping
);
WINADVAPI
BOOL
WINAPI
ObjectCloseAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ BOOL GenerateOnClose
);
WINADVAPI
BOOL
WINAPI
ObjectDeleteAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ BOOL GenerateOnClose
);
WINADVAPI
BOOL
WINAPI
ObjectOpenAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ LPWSTR ObjectTypeName,
_In_opt_ LPWSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_In_ DWORD GrantedAccess,
_In_opt_ PPRIVILEGE_SET Privileges,
_In_ BOOL ObjectCreation,
_In_ BOOL AccessGranted,
_Out_ LPBOOL GenerateOnClose
);
WINADVAPI
BOOL
WINAPI
ObjectPrivilegeAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_In_ PPRIVILEGE_SET Privileges,
_In_ BOOL AccessGranted
);
WINADVAPI
BOOL
WINAPI
PrivilegeCheck(
_In_ HANDLE ClientToken,
_Inout_ PPRIVILEGE_SET RequiredPrivileges,
_Out_ LPBOOL pfResult
);
WINADVAPI
BOOL
WINAPI
PrivilegedServiceAuditAlarmW(
_In_ LPCWSTR SubsystemName,
_In_ LPCWSTR ServiceName,
_In_ HANDLE ClientToken,
_In_ PPRIVILEGE_SET Privileges,
_In_ BOOL AccessGranted
);
WINADVAPI
VOID
WINAPI
QuerySecurityAccessMask(
_In_ SECURITY_INFORMATION SecurityInformation,
_Out_ LPDWORD DesiredAccess
);
WINADVAPI
BOOL
WINAPI
RevertToSelf(
VOID
);
WINADVAPI
BOOL
WINAPI
SetAclInformation(
_Inout_ PACL pAcl,
_In_reads_bytes_(nAclInformationLength) LPVOID pAclInformation,
_In_ DWORD nAclInformationLength,
_In_ ACL_INFORMATION_CLASS dwAclInformationClass
);
WINADVAPI
BOOL
WINAPI
SetFileSecurityW(
_In_ LPCWSTR lpFileName,
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor
);
WINADVAPI
BOOL
WINAPI
SetKernelObjectSecurity(
_In_ HANDLE Handle,
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor
);
WINADVAPI
BOOL
WINAPI
SetPrivateObjectSecurity(
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR ModificationDescriptor,
_Inout_ PSECURITY_DESCRIPTOR* ObjectsSecurityDescriptor,
_In_ PGENERIC_MAPPING GenericMapping,
_In_opt_ HANDLE Token
);
WINADVAPI
BOOL
WINAPI
SetPrivateObjectSecurityEx(
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR ModificationDescriptor,
_Inout_ PSECURITY_DESCRIPTOR* ObjectsSecurityDescriptor,
_In_ ULONG AutoInheritFlags,
_In_ PGENERIC_MAPPING GenericMapping,
_In_opt_ HANDLE Token
);
WINADVAPI
VOID
WINAPI
SetSecurityAccessMask(
_In_ SECURITY_INFORMATION SecurityInformation,
_Out_ LPDWORD DesiredAccess
);
WINADVAPI
BOOL
WINAPI
SetSecurityDescriptorControl(
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
_In_ SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
);
WINADVAPI
BOOL
WINAPI
SetSecurityDescriptorDacl(
_Inout_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ BOOL bDaclPresent,
_In_opt_ PACL pDacl,
_In_ BOOL bDaclDefaulted
);
WINADVAPI
BOOL
WINAPI
SetSecurityDescriptorGroup(
_Inout_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_opt_ PSID pGroup,
_In_ BOOL bGroupDefaulted
);
WINADVAPI
BOOL
WINAPI
SetSecurityDescriptorOwner(
_Inout_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_opt_ PSID pOwner,
_In_ BOOL bOwnerDefaulted
);
WINADVAPI
DWORD
WINAPI
SetSecurityDescriptorRMControl(
_Inout_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PUCHAR RMControl
);
WINADVAPI
BOOL
WINAPI
SetSecurityDescriptorSacl(
_Inout_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ BOOL bSaclPresent,
_In_opt_ PACL pSacl,
_In_ BOOL bSaclDefaulted
);
WINADVAPI
BOOL
WINAPI
SetTokenInformation(
_In_ HANDLE TokenHandle,
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
_In_reads_bytes_(TokenInformationLength) LPVOID TokenInformation,
_In_ DWORD TokenInformationLength
);
WINADVAPI
BOOL
WINAPI
SetCachedSigningLevel(
_In_reads_(SourceFileCount) PHANDLE SourceFiles,
_In_ ULONG SourceFileCount,
_In_ ULONG Flags,
_In_opt_ HANDLE TargetFile
);
WINADVAPI
BOOL
WINAPI
GetCachedSigningLevel(
_In_ HANDLE File,
_Out_ PULONG Flags,
_Out_ PULONG SigningLevel,
_Out_writes_bytes_to_opt_(*ThumbprintSize,*ThumbprintSize) PUCHAR Thumbprint,
_Inout_opt_ PULONG ThumbprintSize,
_Out_opt_ PULONG ThumbprintAlgorithm
);
WINADVAPI
LONG
WINAPI
CveEventWrite(
_In_ PCWSTR CveId,
_In_opt_ PCWSTR AdditionalDetails
);
WINADVAPI
BOOL
WINAPI
DeriveCapabilitySidsFromName(
_In_ LPCWSTR CapName,
_Outptr_result_buffer_maybenull_(*CapabilityGroupSidCount) PSID** CapabilityGroupSids,
_Out_ DWORD* CapabilityGroupSidCount,
_Outptr_result_buffer_maybenull_(*CapabilitySidCount) PSID** CapabilitySids,
_Out_ DWORD* CapabilitySidCount
);
WINBASEAPI
HANDLE
WINAPI
CreatePrivateNamespaceW(
_In_opt_ LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes,
_In_ LPVOID lpBoundaryDescriptor,
_In_ LPCWSTR lpAliasPrefix
);
WINBASEAPI
HANDLE
WINAPI
OpenPrivateNamespaceW(
_In_ LPVOID lpBoundaryDescriptor,
_In_ LPCWSTR lpAliasPrefix
);
WINBASEAPI
BOOLEAN
WINAPI
ClosePrivateNamespace(
_In_ HANDLE Handle,
_In_ ULONG Flags
);
WINBASEAPI
HANDLE
WINAPI
CreateBoundaryDescriptorW(
_In_ LPCWSTR Name,
_In_ ULONG Flags
);
WINBASEAPI
BOOL
WINAPI
AddSIDToBoundaryDescriptor(
_Inout_ HANDLE* BoundaryDescriptor,
_In_ PSID RequiredSid
);
WINBASEAPI
VOID
WINAPI
DeleteBoundaryDescriptor(
_In_ HANDLE BoundaryDescriptor
);
WINBASEAPI
BOOL
WINAPI
GetNumaHighestNodeNumber(
_Out_ PULONG HighestNodeNumber
);
WINBASEAPI
BOOL
WINAPI
GetNumaNodeProcessorMaskEx(
_In_ USHORT Node,
_Out_ PGROUP_AFFINITY ProcessorMask
);
_Success_(return != false)
WINBASEAPI
BOOL
WINAPI
GetNumaNodeProcessorMask2(
_In_ USHORT NodeNumber,
_Out_writes_to_opt_(ProcessorMaskCount, *RequiredMaskCount) PGROUP_AFFINITY ProcessorMasks,
_In_ USHORT ProcessorMaskCount,
_Out_ PUSHORT RequiredMaskCount
);
WINBASEAPI
BOOL
WINAPI
GetNumaProximityNodeEx(
_In_ ULONG ProximityId,
_Out_ PUSHORT NodeNumber
);
WINBASEAPI
BOOL
WINAPI
GetProcessGroupAffinity(
_In_ HANDLE hProcess,
_Inout_ PUSHORT GroupCount,
_Out_writes_(*GroupCount) PUSHORT GroupArray
);
WINBASEAPI
BOOL
WINAPI
GetThreadGroupAffinity(
_In_ HANDLE hThread,
_Out_ PGROUP_AFFINITY GroupAffinity
);
WINBASEAPI
BOOL
WINAPI
SetThreadGroupAffinity(
_In_ HANDLE hThread,
_In_ CONST GROUP_AFFINITY* GroupAffinity,
_Out_opt_ PGROUP_AFFINITY PreviousGroupAffinity
);
BOOL
WINAPI
GetAppContainerNamedObjectPath(
_In_opt_ HANDLE Token,
_In_opt_ PSID AppContainerSid,
_In_ ULONG ObjectPathLength,
_Out_writes_opt_(ObjectPathLength) LPWSTR ObjectPath,
_Out_ PULONG ReturnLength
);
WINBASEAPI
BOOL
WINAPI
QueryThreadCycleTime(
_In_ HANDLE ThreadHandle,
_Out_ PULONG64 CycleTime
);
WINBASEAPI
BOOL
WINAPI
QueryProcessCycleTime(
_In_ HANDLE ProcessHandle,
_Out_ PULONG64 CycleTime
);
WINBASEAPI
BOOL
WINAPI
QueryIdleProcessorCycleTime(
_Inout_ PULONG BufferLength,
_Out_writes_bytes_opt_(*BufferLength) PULONG64 ProcessorIdleCycleTime
);
WINBASEAPI
BOOL
WINAPI
QueryIdleProcessorCycleTimeEx(
_In_ USHORT Group,
_Inout_ PULONG BufferLength,
_Out_writes_bytes_opt_(*BufferLength) PULONG64 ProcessorIdleCycleTime
);
WINBASEAPI
VOID
WINAPI
QueryInterruptTimePrecise(
_Out_ PULONGLONG lpInterruptTimePrecise
);
WINBASEAPI
VOID
WINAPI
QueryUnbiasedInterruptTimePrecise(
_Out_ PULONGLONG lpUnbiasedInterruptTimePrecise
);
WINBASEAPI
VOID
WINAPI
QueryInterruptTime(
_Out_ PULONGLONG lpInterruptTime
);
WINBASEAPI
BOOL
WINAPI
QueryUnbiasedInterruptTime(
_Out_ PULONGLONG UnbiasedTime
);
WINBASEAPI
HRESULT
WINAPI
QueryAuxiliaryCounterFrequency(
_Out_ PULONGLONG lpAuxiliaryCounterFrequency
);
WINBASEAPI
HRESULT
WINAPI
ConvertAuxiliaryCounterToPerformanceCounter(
_In_ ULONGLONG ullAuxiliaryCounterValue,
_Out_ PULONGLONG lpPerformanceCounterValue,
_Out_opt_ PULONGLONG lpConversionError
);
WINBASEAPI
HRESULT
WINAPI
ConvertPerformanceCounterToAuxiliaryCounter(
_In_ ULONGLONG ullPerformanceCounterValue,
_Out_ PULONGLONG lpAuxiliaryCounterValue,
_Out_opt_ PULONGLONG lpConversionError
);
typedef enum FILE_WRITE_FLAGS
{
FILE_WRITE_FLAGS_NONE = 0,
FILE_WRITE_FLAGS_WRITE_THROUGH = 0x000000001,
} FILE_WRITE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS(FILE_WRITE_FLAGS)
typedef enum FILE_FLUSH_MODE
{
FILE_FLUSH_DEFAULT = 0,
FILE_FLUSH_DATA,
FILE_FLUSH_MIN_METADATA,
FILE_FLUSH_NO_SYNC,
} FILE_FLUSH_MODE;
typedef VOID (WINAPI *PFIBER_START_ROUTINE)(
LPVOID lpFiberParameter
);
typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
typedef LPVOID (WINAPI *PFIBER_CALLOUT_ROUTINE)(
LPVOID lpParameter
);
typedef LPVOID LPLDT_ENTRY;
typedef struct _COMMPROP {
WORD wPacketLength;
WORD wPacketVersion;
DWORD dwServiceMask;
DWORD dwReserved1;
DWORD dwMaxTxQueue;
DWORD dwMaxRxQueue;
DWORD dwMaxBaud;
DWORD dwProvSubType;
DWORD dwProvCapabilities;
DWORD dwSettableParams;
DWORD dwSettableBaud;
WORD wSettableData;
WORD wSettableStopParity;
DWORD dwCurrentTxQueue;
DWORD dwCurrentRxQueue;
DWORD dwProvSpec1;
DWORD dwProvSpec2;
WCHAR wcProvChar[1];
} COMMPROP,*LPCOMMPROP;
typedef struct _COMSTAT {
DWORD fCtsHold : 1;
DWORD fDsrHold : 1;
DWORD fRlsdHold : 1;
DWORD fXoffHold : 1;
DWORD fXoffSent : 1;
DWORD fEof : 1;
DWORD fTxim : 1;
DWORD fReserved : 25;
DWORD cbInQue;
DWORD cbOutQue;
} COMSTAT, *LPCOMSTAT;
typedef struct _DCB {
DWORD DCBlength;
DWORD BaudRate;
DWORD fBinary: 1;
DWORD fParity: 1;
DWORD fOutxCtsFlow:1;
DWORD fOutxDsrFlow:1;
DWORD fDtrControl:2;
DWORD fDsrSensitivity:1;
DWORD fTXContinueOnXoff: 1;
DWORD fOutX: 1;
DWORD fInX: 1;
DWORD fErrorChar: 1;
DWORD fNull: 1;
DWORD fRtsControl:2;
DWORD fAbortOnError:1;
DWORD fDummy2:17;
WORD wReserved;
WORD XonLim;
WORD XoffLim;
BYTE ByteSize;
BYTE Parity;
BYTE StopBits;
char XonChar;
char XoffChar;
char ErrorChar;
char EofChar;
char EvtChar;
WORD wReserved1;
} DCB, *LPDCB;
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout;
DWORD ReadTotalTimeoutMultiplier;
DWORD ReadTotalTimeoutConstant;
DWORD WriteTotalTimeoutMultiplier;
DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
typedef struct _COMMCONFIG {
DWORD dwSize;
WORD wVersion;
WORD wReserved;
DCB dcb;
DWORD dwProviderSubType;
DWORD dwProviderOffset;
DWORD dwProviderSize;
WCHAR wcProviderData[1];
} COMMCONFIG,*LPCOMMCONFIG;
typedef struct _MEMORYSTATUS {
DWORD dwLength;
DWORD dwMemoryLoad;
SIZE_T dwTotalPhys;
SIZE_T dwAvailPhys;
SIZE_T dwTotalPageFile;
SIZE_T dwAvailPageFile;
SIZE_T dwTotalVirtual;
SIZE_T dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;
typedef struct _JIT_DEBUG_INFO {
DWORD dwSize;
DWORD dwProcessorArchitecture;
DWORD dwThreadID;
DWORD dwReserved0;
ULONG64 lpExceptionAddress;
ULONG64 lpExceptionRecord;
ULONG64 lpContextRecord;
} JIT_DEBUG_INFO, *LPJIT_DEBUG_INFO;
typedef JIT_DEBUG_INFO JIT_DEBUG_INFO32, *LPJIT_DEBUG_INFO32;
typedef JIT_DEBUG_INFO JIT_DEBUG_INFO64, *LPJIT_DEBUG_INFO64;
typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
typedef struct _OFSTRUCT {
BYTE cBytes;
BYTE fFixedDisk;
WORD nErrCode;
WORD Reserved1;
WORD Reserved2;
CHAR szPathName[OFS_MAXPATHNAME];
} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
int
WINAPI
WinMain (
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nShowCmd
);
int
WINAPI
wWinMain(
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nShowCmd
);
WINBASEAPI
_Success_(return != NULL)
_Post_writable_byte_size_(dwBytes)
DECLSPEC_ALLOCATOR
HGLOBAL
WINAPI
GlobalAlloc(
_In_ UINT uFlags,
_In_ SIZE_T dwBytes
);
WINBASEAPI
_Ret_reallocated_bytes_(hMem, dwBytes)
DECLSPEC_ALLOCATOR
HGLOBAL
WINAPI
GlobalReAlloc (
_Frees_ptr_ HGLOBAL hMem,
_In_ SIZE_T dwBytes,
_In_ UINT uFlags
);
WINBASEAPI
SIZE_T
WINAPI
GlobalSize (
_In_ HGLOBAL hMem
);
WINBASEAPI
BOOL
WINAPI
GlobalUnlock(
_In_ HGLOBAL hMem
);
WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
GlobalLock (
_In_ HGLOBAL hMem
);
WINBASEAPI
UINT
WINAPI
GlobalFlags (
_In_ HGLOBAL hMem
);
WINBASEAPI
_Ret_maybenull_
HGLOBAL
WINAPI
GlobalHandle (
_In_ LPCVOID pMem
);
WINBASEAPI
_Ret_maybenull_
_Success_(return==0)
HGLOBAL
WINAPI
GlobalFree(
_Frees_ptr_opt_ HGLOBAL hMem
);
WINBASEAPI
SIZE_T
WINAPI
GlobalCompact(
_In_ DWORD dwMinFree
);
WINBASEAPI
VOID
WINAPI
GlobalFix(
_In_ HGLOBAL hMem
);
WINBASEAPI
VOID
WINAPI
GlobalUnfix(
_In_ HGLOBAL hMem
);
WINBASEAPI
LPVOID
WINAPI
GlobalWire(
_In_ HGLOBAL hMem
);
WINBASEAPI
BOOL
WINAPI
GlobalUnWire(
_In_ HGLOBAL hMem
);
__drv_preferredFunction("GlobalMemoryStatusEx","Deprecated. See MSDN for details")
WINBASEAPI
VOID
WINAPI
GlobalMemoryStatus(
_Out_ LPMEMORYSTATUS lpBuffer
);
WINBASEAPI
_Success_(return != NULL)
_Post_writable_byte_size_(uBytes)
DECLSPEC_ALLOCATOR
HLOCAL
WINAPI
LocalAlloc(
_In_ UINT uFlags,
_In_ SIZE_T uBytes
);
WINBASEAPI
_Ret_reallocated_bytes_(hMem, uBytes)
DECLSPEC_ALLOCATOR
HLOCAL
WINAPI
LocalReAlloc(
_Frees_ptr_opt_ HLOCAL hMem,
_In_ SIZE_T uBytes,
_In_ UINT uFlags
);
WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
LocalLock(
_In_ HLOCAL hMem
);
WINBASEAPI
_Ret_maybenull_
HLOCAL
WINAPI
LocalHandle(
_In_ LPCVOID pMem
);
WINBASEAPI
BOOL
WINAPI
LocalUnlock(
_In_ HLOCAL hMem
);
WINBASEAPI
SIZE_T
WINAPI
LocalSize(
_In_ HLOCAL hMem
);
WINBASEAPI
UINT
WINAPI
LocalFlags(
_In_ HLOCAL hMem
);
WINBASEAPI
_Success_(return==0)
_Ret_maybenull_
HLOCAL
WINAPI
LocalFree(
_Frees_ptr_opt_ HLOCAL hMem
);
WINBASEAPI
SIZE_T
WINAPI
LocalShrink(
_In_ HLOCAL hMem,
_In_ UINT cbNewSize
);
WINBASEAPI
SIZE_T
WINAPI
LocalCompact(
_In_ UINT uMinFree
);
WINBASEAPI
BOOL
WINAPI
GetBinaryTypeA(
_In_ LPCSTR lpApplicationName,
_Out_ LPDWORD lpBinaryType
);
WINBASEAPI
BOOL
WINAPI
GetBinaryTypeW(
_In_ LPCWSTR lpApplicationName,
_Out_ LPDWORD lpBinaryType
);
WINBASEAPI
_Success_(return != 0 && return < cchBuffer)
DWORD
WINAPI
GetShortPathNameA(
_In_ LPCSTR lpszLongPath,
_Out_writes_to_opt_(cchBuffer, return + 1) LPSTR lpszShortPath,
_In_ DWORD cchBuffer
);
WINBASEAPI
_Success_(return != 0 && return < cchBuffer)
DWORD
WINAPI
GetLongPathNameTransactedA(
_In_ LPCSTR lpszShortPath,
_Out_writes_to_opt_(cchBuffer, return + 1) LPSTR lpszLongPath,
_In_ DWORD cchBuffer,
_In_ HANDLE hTransaction
);
WINBASEAPI
_Success_(return != 0 && return < cchBuffer)
DWORD
WINAPI
GetLongPathNameTransactedW(
_In_ LPCWSTR lpszShortPath,
_Out_writes_to_opt_(cchBuffer, return + 1) LPWSTR lpszLongPath,
_In_ DWORD cchBuffer,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
GetProcessAffinityMask(
_In_ HANDLE hProcess,
_Out_ PDWORD_PTR lpProcessAffinityMask,
_Out_ PDWORD_PTR lpSystemAffinityMask
);
WINBASEAPI
BOOL
WINAPI
SetProcessAffinityMask(
_In_ HANDLE hProcess,
_In_ DWORD_PTR dwProcessAffinityMask
);
WINBASEAPI
BOOL
WINAPI
GetProcessIoCounters(
_In_ HANDLE hProcess,
_Out_ PIO_COUNTERS lpIoCounters
);
WINBASEAPI
__analysis_noreturn
VOID
WINAPI
FatalExit(
_In_ int ExitCode
);
WINBASEAPI
BOOL
WINAPI
SetEnvironmentStringsA(
_In_ _Pre_ _NullNull_terminated_ LPCH NewEnvironment
);
WINBASEAPI
VOID
WINAPI
SwitchToFiber(
_In_ LPVOID lpFiber
);
WINBASEAPI
VOID
WINAPI
DeleteFiber(
_In_ LPVOID lpFiber
);
WINBASEAPI
BOOL
WINAPI
ConvertFiberToThread(
VOID
);
WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
CreateFiberEx(
_In_ SIZE_T dwStackCommitSize,
_In_ SIZE_T dwStackReserveSize,
_In_ DWORD dwFlags,
_In_ LPFIBER_START_ROUTINE lpStartAddress,
_In_opt_ LPVOID lpParameter
);
WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
ConvertThreadToFiberEx(
_In_opt_ LPVOID lpParameter,
_In_ DWORD dwFlags
);
WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
CreateFiber(
_In_ SIZE_T dwStackSize,
_In_ LPFIBER_START_ROUTINE lpStartAddress,
_In_opt_ LPVOID lpParameter
);
WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
ConvertThreadToFiber(
_In_opt_ LPVOID lpParameter
);
typedef void *PUMS_CONTEXT;
typedef void *PUMS_COMPLETION_LIST;
typedef enum _RTL_UMS_THREAD_INFO_CLASS UMS_THREAD_INFO_CLASS, *PUMS_THREAD_INFO_CLASS;
typedef enum _RTL_UMS_SCHEDULER_REASON UMS_SCHEDULER_REASON;
typedef PRTL_UMS_SCHEDULER_ENTRY_POINT PUMS_SCHEDULER_ENTRY_POINT;
typedef struct _UMS_SCHEDULER_STARTUP_INFO {
ULONG UmsVersion;
PUMS_COMPLETION_LIST CompletionList;
PUMS_SCHEDULER_ENTRY_POINT SchedulerProc;
PVOID SchedulerParam;
} UMS_SCHEDULER_STARTUP_INFO, *PUMS_SCHEDULER_STARTUP_INFO;
typedef struct _UMS_SYSTEM_THREAD_INFORMATION {
ULONG UmsVersion;
union {
struct {
ULONG IsUmsSchedulerThread : 1;
ULONG IsUmsWorkerThread : 1;
} DUMMYSTRUCTNAME;
ULONG ThreadUmsFlags;
} DUMMYUNIONNAME;
} UMS_SYSTEM_THREAD_INFORMATION, *PUMS_SYSTEM_THREAD_INFORMATION;
_Must_inspect_result_
WINBASEAPI
BOOL
WINAPI
CreateUmsCompletionList(
_Outptr_ PUMS_COMPLETION_LIST* UmsCompletionList
);
WINBASEAPI
BOOL
WINAPI
DequeueUmsCompletionListItems(
_In_ PUMS_COMPLETION_LIST UmsCompletionList,
_In_ DWORD WaitTimeOut,
_Out_ PUMS_CONTEXT* UmsThreadList
);
WINBASEAPI
BOOL
WINAPI
GetUmsCompletionListEvent(
_In_ PUMS_COMPLETION_LIST UmsCompletionList,
_Inout_ PHANDLE UmsCompletionEvent
);
WINBASEAPI
BOOL
WINAPI
ExecuteUmsThread(
_Inout_ PUMS_CONTEXT UmsThread
);
WINBASEAPI
BOOL
WINAPI
UmsThreadYield(
_In_ PVOID SchedulerParam
);
WINBASEAPI
BOOL
WINAPI
DeleteUmsCompletionList(
_In_ PUMS_COMPLETION_LIST UmsCompletionList
);
WINBASEAPI
PUMS_CONTEXT
WINAPI
GetCurrentUmsThread(
VOID
);
WINBASEAPI
PUMS_CONTEXT
WINAPI
GetNextUmsListItem(
_Inout_ PUMS_CONTEXT UmsContext
);
WINBASEAPI
BOOL
WINAPI
QueryUmsThreadInformation(
_In_ PUMS_CONTEXT UmsThread,
_In_ UMS_THREAD_INFO_CLASS UmsThreadInfoClass,
_Out_writes_bytes_to_(UmsThreadInformationLength, *ReturnLength) PVOID UmsThreadInformation,
_In_ ULONG UmsThreadInformationLength,
_Out_opt_ PULONG ReturnLength
);
WINBASEAPI
BOOL
WINAPI
SetUmsThreadInformation(
_In_ PUMS_CONTEXT UmsThread,
_In_ UMS_THREAD_INFO_CLASS UmsThreadInfoClass,
_In_ PVOID UmsThreadInformation,
_In_ ULONG UmsThreadInformationLength
);
WINBASEAPI
BOOL
WINAPI
DeleteUmsThreadContext(
_In_ PUMS_CONTEXT UmsThread
);
WINBASEAPI
BOOL
WINAPI
CreateUmsThreadContext(
_Outptr_ PUMS_CONTEXT *lpUmsThread
);
WINBASEAPI
BOOL
WINAPI
EnterUmsSchedulingMode(
_In_ PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
);
WINBASEAPI
BOOL
WINAPI
GetUmsSystemThreadInformation(
_In_ HANDLE ThreadHandle,
_Inout_ PUMS_SYSTEM_THREAD_INFORMATION SystemThreadInfo
);
WINBASEAPI
DWORD_PTR
WINAPI
SetThreadAffinityMask(
_In_ HANDLE hThread,
_In_ DWORD_PTR dwThreadAffinityMask
);
WINBASEAPI
BOOL
WINAPI
SetProcessDEPPolicy(
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
GetProcessDEPPolicy(
_In_ HANDLE hProcess,
_Out_ LPDWORD lpFlags,
_Out_ PBOOL lpPermanent
);
WINBASEAPI
BOOL
WINAPI
RequestWakeupLatency(
_In_ LATENCY_TIME latency
);
WINBASEAPI
BOOL
WINAPI
IsSystemResumeAutomatic(
VOID
);
WINBASEAPI
BOOL
WINAPI
GetThreadSelectorEntry(
_In_ HANDLE hThread,
_In_ DWORD dwSelector,
_Out_ LPLDT_ENTRY lpSelectorEntry
);
WINBASEAPI
EXECUTION_STATE
WINAPI
SetThreadExecutionState(
_In_ EXECUTION_STATE esFlags
);
typedef REASON_CONTEXT POWER_REQUEST_CONTEXT, *PPOWER_REQUEST_CONTEXT, *LPPOWER_REQUEST_CONTEXT;
WINBASEAPI
HANDLE
WINAPI
PowerCreateRequest (
_In_ PREASON_CONTEXT Context
);
WINBASEAPI
BOOL
WINAPI
PowerSetRequest (
_In_ HANDLE PowerRequest,
_In_ POWER_REQUEST_TYPE RequestType
);
WINBASEAPI
BOOL
WINAPI
PowerClearRequest (
_In_ HANDLE PowerRequest,
_In_ POWER_REQUEST_TYPE RequestType
);
WINBASEAPI
BOOL
WINAPI
SetFileCompletionNotificationModes(
_In_ HANDLE FileHandle,
_In_ UCHAR Flags
);
WINBASEAPI
BOOL
WINAPI
Wow64GetThreadSelectorEntry(
_In_ HANDLE hThread,
_In_ DWORD dwSelector,
_Out_ PWOW64_LDT_ENTRY lpSelectorEntry
);
WINBASEAPI
BOOL
WINAPI
DebugSetProcessKillOnExit(
_In_ BOOL KillOnExit
);
WINBASEAPI
BOOL
WINAPI
DebugBreakProcess (
_In_ HANDLE Process
);
WINBASEAPI
BOOL
WINAPI
PulseEvent(
_In_ HANDLE hEvent
);
WINBASEAPI
ATOM
WINAPI
GlobalDeleteAtom(
_In_ ATOM nAtom
);
WINBASEAPI
BOOL
WINAPI
InitAtomTable(
_In_ DWORD nSize
);
WINBASEAPI
ATOM
WINAPI
DeleteAtom(
_In_ ATOM nAtom
);
WINBASEAPI
UINT
WINAPI
SetHandleCount(
_In_ UINT uNumber
);
WINBASEAPI
BOOL
WINAPI
RequestDeviceWakeup(
_In_ HANDLE hDevice
);
WINBASEAPI
BOOL
WINAPI
CancelDeviceWakeupRequest(
_In_ HANDLE hDevice
);
WINBASEAPI
BOOL
WINAPI
GetDevicePowerState(
_In_ HANDLE hDevice,
_Out_ BOOL *pfOn
);
WINBASEAPI
BOOL
WINAPI
SetMessageWaitingIndicator(
_In_ HANDLE hMsgIndicator,
_In_ ULONG ulMsgCount
);
WINBASEAPI
BOOL
WINAPI
SetFileShortNameA(
_In_ HANDLE hFile,
_In_ LPCSTR lpShortName
);
WINBASEAPI
BOOL
WINAPI
SetFileShortNameW(
_In_ HANDLE hFile,
_In_ LPCWSTR lpShortName
);
WINBASEAPI
DWORD
WINAPI
LoadModule(
_In_ LPCSTR lpModuleName,
_In_ LPVOID lpParameterBlock
);
__drv_preferredFunction("CreateProcess","Deprecated. See MSDN for details")
WINBASEAPI
UINT
WINAPI
WinExec(
_In_ LPCSTR lpCmdLine,
_In_ UINT uCmdShow
);
WINBASEAPI
BOOL
WINAPI
ClearCommBreak(
_In_ HANDLE hFile
);
WINBASEAPI
BOOL
WINAPI
ClearCommError(
_In_ HANDLE hFile,
_Out_opt_ LPDWORD lpErrors,
_Out_opt_ LPCOMSTAT lpStat
);
WINBASEAPI
BOOL
WINAPI
SetupComm(
_In_ HANDLE hFile,
_In_ DWORD dwInQueue,
_In_ DWORD dwOutQueue
);
WINBASEAPI
BOOL
WINAPI
EscapeCommFunction(
_In_ HANDLE hFile,
_In_ DWORD dwFunc
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
GetCommConfig(
_In_ HANDLE hCommDev,
_Out_writes_bytes_opt_(*lpdwSize) LPCOMMCONFIG lpCC,
_Inout_ LPDWORD lpdwSize
);
WINBASEAPI
BOOL
WINAPI
GetCommMask(
_In_ HANDLE hFile,
_Out_ LPDWORD lpEvtMask
);
WINBASEAPI
BOOL
WINAPI
GetCommProperties(
_In_ HANDLE hFile,
_Inout_ LPCOMMPROP lpCommProp
);
WINBASEAPI
BOOL
WINAPI
GetCommModemStatus(
_In_ HANDLE hFile,
_Out_ LPDWORD lpModemStat
);
WINBASEAPI
BOOL
WINAPI
GetCommState(
_In_ HANDLE hFile,
_Out_ LPDCB lpDCB
);
WINBASEAPI
BOOL
WINAPI
GetCommTimeouts(
_In_ HANDLE hFile,
_Out_ LPCOMMTIMEOUTS lpCommTimeouts
);
WINBASEAPI
BOOL
WINAPI
PurgeComm(
_In_ HANDLE hFile,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
SetCommBreak(
_In_ HANDLE hFile
);
WINBASEAPI
BOOL
WINAPI
SetCommConfig(
_In_ HANDLE hCommDev,
_In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
_In_ DWORD dwSize
);
WINBASEAPI
BOOL
WINAPI
SetCommMask(
_In_ HANDLE hFile,
_In_ DWORD dwEvtMask
);
WINBASEAPI
BOOL
WINAPI
SetCommState(
_In_ HANDLE hFile,
_In_ LPDCB lpDCB
);
WINBASEAPI
BOOL
WINAPI
SetCommTimeouts(
_In_ HANDLE hFile,
_In_ LPCOMMTIMEOUTS lpCommTimeouts
);
WINBASEAPI
BOOL
WINAPI
TransmitCommChar(
_In_ HANDLE hFile,
_In_ char cChar
);
WINBASEAPI
BOOL
WINAPI
WaitCommEvent(
_In_ HANDLE hFile,
_Inout_ LPDWORD lpEvtMask,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
WINBASEAPI
HANDLE
WINAPI
OpenCommPort(
_In_ ULONG uPortNumber,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwFlagsAndAttributes
);
WINBASEAPI
ULONG
WINAPI
GetCommPorts(
_Out_writes_(uPortNumbersCount) PULONG lpPortNumbers,
_In_ ULONG uPortNumbersCount,
_Out_ PULONG puPortNumbersFound
);
WINBASEAPI
DWORD
WINAPI
SetTapePosition(
_In_ HANDLE hDevice,
_In_ DWORD dwPositionMethod,
_In_ DWORD dwPartition,
_In_ DWORD dwOffsetLow,
_In_ DWORD dwOffsetHigh,
_In_ BOOL bImmediate
);
WINBASEAPI
DWORD
WINAPI
GetTapePosition(
_In_ HANDLE hDevice,
_In_ DWORD dwPositionType,
_Out_ LPDWORD lpdwPartition,
_Out_ LPDWORD lpdwOffsetLow,
_Out_ LPDWORD lpdwOffsetHigh
);
WINBASEAPI
DWORD
WINAPI
PrepareTape(
_In_ HANDLE hDevice,
_In_ DWORD dwOperation,
_In_ BOOL bImmediate
);
WINBASEAPI
DWORD
WINAPI
EraseTape(
_In_ HANDLE hDevice,
_In_ DWORD dwEraseType,
_In_ BOOL bImmediate
);
WINBASEAPI
DWORD
WINAPI
CreateTapePartition(
_In_ HANDLE hDevice,
_In_ DWORD dwPartitionMethod,
_In_ DWORD dwCount,
_In_ DWORD dwSize
);
WINBASEAPI
DWORD
WINAPI
WriteTapemark(
_In_ HANDLE hDevice,
_In_ DWORD dwTapemarkType,
_In_ DWORD dwTapemarkCount,
_In_ BOOL bImmediate
);
WINBASEAPI
DWORD
WINAPI
GetTapeStatus(
_In_ HANDLE hDevice
);
WINBASEAPI
DWORD
WINAPI
GetTapeParameters(
_In_ HANDLE hDevice,
_In_ DWORD dwOperation,
_Inout_ LPDWORD lpdwSize,
_Out_writes_bytes_(*lpdwSize) LPVOID lpTapeInformation
);
WINBASEAPI
DWORD
WINAPI
SetTapeParameters(
_In_ HANDLE hDevice,
_In_ DWORD dwOperation,
_In_ LPVOID lpTapeInformation
);
WINBASEAPI
int
WINAPI
MulDiv(
_In_ int nNumber,
_In_ int nNumerator,
_In_ int nDenominator
);
typedef enum _DEP_SYSTEM_POLICY_TYPE {
DEPPolicyAlwaysOff = 0,
DEPPolicyAlwaysOn,
DEPPolicyOptIn,
DEPPolicyOptOut,
DEPTotalPolicyCount
} DEP_SYSTEM_POLICY_TYPE;
WINBASEAPI
DEP_SYSTEM_POLICY_TYPE
WINAPI
GetSystemDEPPolicy(
VOID
);
WINBASEAPI
BOOL
WINAPI
GetSystemRegistryQuota(
_Out_opt_ PDWORD pdwQuotaAllowed,
_Out_opt_ PDWORD pdwQuotaUsed
);
WINBASEAPI
BOOL
WINAPI
FileTimeToDosDateTime(
_In_ CONST FILETIME *lpFileTime,
_Out_ LPWORD lpFatDate,
_Out_ LPWORD lpFatTime
);
WINBASEAPI
BOOL
WINAPI
DosDateTimeToFileTime(
_In_ WORD wFatDate,
_In_ WORD wFatTime,
_Out_ LPFILETIME lpFileTime
);
WINBASEAPI
_Success_(return != 0)
DWORD
WINAPI
FormatMessageA(
_In_ DWORD dwFlags,
_In_opt_ LPCVOID lpSource,
_In_ DWORD dwMessageId,
_In_ DWORD dwLanguageId,
_When_((dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) != 0, _At_((LPSTR*)lpBuffer, _Outptr_result_z_))
_When_((dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) == 0, _Out_writes_z_(nSize))
LPSTR lpBuffer,
_In_ DWORD nSize,
_In_opt_ va_list *Arguments
);
WINBASEAPI
_Success_(return != 0)
DWORD
WINAPI
FormatMessageW(
_In_ DWORD dwFlags,
_In_opt_ LPCVOID lpSource,
_In_ DWORD dwMessageId,
_In_ DWORD dwLanguageId,
_When_((dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) != 0, _At_((LPWSTR*)lpBuffer, _Outptr_result_z_))
_When_((dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) == 0, _Out_writes_z_(nSize))
LPWSTR lpBuffer,
_In_ DWORD nSize,
_In_opt_ va_list *Arguments
);
WINBASEAPI
HANDLE
WINAPI
CreateMailslotA(
_In_ LPCSTR lpName,
_In_ DWORD nMaxMessageSize,
_In_ DWORD lReadTimeout,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
HANDLE
WINAPI
CreateMailslotW(
_In_ LPCWSTR lpName,
_In_ DWORD nMaxMessageSize,
_In_ DWORD lReadTimeout,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
GetMailslotInfo(
_In_ HANDLE hMailslot,
_Out_opt_ LPDWORD lpMaxMessageSize,
_Out_opt_ LPDWORD lpNextSize,
_Out_opt_ LPDWORD lpMessageCount,
_Out_opt_ LPDWORD lpReadTimeout
);
WINBASEAPI
BOOL
WINAPI
SetMailslotInfo(
_In_ HANDLE hMailslot,
_In_ DWORD lReadTimeout
);
WINADVAPI
BOOL
WINAPI
EncryptFileA(
_In_ LPCSTR lpFileName
);
WINADVAPI
BOOL
WINAPI
EncryptFileW(
_In_ LPCWSTR lpFileName
);
WINADVAPI
BOOL
WINAPI
DecryptFileA(
_In_ LPCSTR lpFileName,
_Reserved_ DWORD dwReserved
);
WINADVAPI
BOOL
WINAPI
DecryptFileW(
_In_ LPCWSTR lpFileName,
_Reserved_ DWORD dwReserved
);
WINADVAPI
BOOL
WINAPI
FileEncryptionStatusA(
_In_ LPCSTR lpFileName,
_Out_ LPDWORD lpStatus
);
WINADVAPI
BOOL
WINAPI
FileEncryptionStatusW(
_In_ LPCWSTR lpFileName,
_Out_ LPDWORD lpStatus
);
typedef
DWORD
(WINAPI *PFE_EXPORT_FUNC)(
_In_reads_bytes_(ulLength) PBYTE pbData,
_In_opt_ PVOID pvCallbackContext,
_In_ ULONG ulLength
);
typedef
DWORD
(WINAPI *PFE_IMPORT_FUNC)(
_Out_writes_bytes_to_(*ulLength, *ulLength) PBYTE pbData,
_In_opt_ PVOID pvCallbackContext,
_Inout_ PULONG ulLength
);
WINADVAPI
DWORD
WINAPI
OpenEncryptedFileRawA(
_In_ LPCSTR lpFileName,
_In_ ULONG ulFlags,
_Outptr_ PVOID *pvContext
);
WINADVAPI
DWORD
WINAPI
OpenEncryptedFileRawW(
_In_ LPCWSTR lpFileName,
_In_ ULONG ulFlags,
_Outptr_ PVOID *pvContext
);
WINADVAPI
DWORD
WINAPI
ReadEncryptedFileRaw(
_In_ PFE_EXPORT_FUNC pfExportCallback,
_In_opt_ PVOID pvCallbackContext,
_In_ PVOID pvContext
);
WINADVAPI
DWORD
WINAPI
WriteEncryptedFileRaw(
_In_ PFE_IMPORT_FUNC pfImportCallback,
_In_opt_ PVOID pvCallbackContext,
_In_ PVOID pvContext
);
WINADVAPI
VOID
WINAPI
CloseEncryptedFileRaw(
_In_ PVOID pvContext
);
WINBASEAPI
int
WINAPI
lstrcmpA(
_In_ LPCSTR lpString1,
_In_ LPCSTR lpString2
);
WINBASEAPI
int
WINAPI
lstrcmpW(
_In_ LPCWSTR lpString1,
_In_ LPCWSTR lpString2
);
WINBASEAPI
int
WINAPI
lstrcmpiA(
_In_ LPCSTR lpString1,
_In_ LPCSTR lpString2
);
WINBASEAPI
int
WINAPI
lstrcmpiW(
_In_ LPCWSTR lpString1,
_In_ LPCWSTR lpString2
);
WINBASEAPI
_Check_return_
_Success_(return != NULL)
_Post_satisfies_(return == lpString1)
_Ret_maybenull_
LPSTR
WINAPI
lstrcpynA(
_Out_writes_(iMaxLength) LPSTR lpString1,
_In_ LPCSTR lpString2,
_In_ int iMaxLength
);
WINBASEAPI
_Check_return_
_Success_(return != NULL)
_Post_satisfies_(return == lpString1)
_Ret_maybenull_
LPWSTR
WINAPI
lstrcpynW(
_Out_writes_(iMaxLength) LPWSTR lpString1,
_In_ LPCWSTR lpString2,
_In_ int iMaxLength
);
WINBASEAPI
LPSTR
WINAPI
lstrcpyA(
_Out_writes_(_String_length_(lpString2) + 1) LPSTR lpString1,
_In_ LPCSTR lpString2
);
WINBASEAPI
LPWSTR
WINAPI
lstrcpyW(
_Out_writes_(_String_length_(lpString2) + 1) LPWSTR lpString1,
_In_ LPCWSTR lpString2
);
WINBASEAPI
LPSTR
WINAPI
lstrcatA(
_Inout_updates_z_(_String_length_(lpString1) + _String_length_(lpString2) + 1) LPSTR lpString1,
_In_ LPCSTR lpString2
);
WINBASEAPI
LPWSTR
WINAPI
lstrcatW(
_Inout_updates_z_(_String_length_(lpString1) + _String_length_(lpString2) + 1) LPWSTR lpString1,
_In_ LPCWSTR lpString2
);
WINBASEAPI
int
WINAPI
lstrlenA(
_In_ LPCSTR lpString
);
WINBASEAPI
int
WINAPI
lstrlenW(
_In_ LPCWSTR lpString
);
WINBASEAPI
HFILE
WINAPI
OpenFile(
_In_ LPCSTR lpFileName,
_Inout_ LPOFSTRUCT lpReOpenBuff,
_In_ UINT uStyle
);
WINBASEAPI
HFILE
WINAPI
_lopen(
_In_ LPCSTR lpPathName,
_In_ int iReadWrite
);
WINBASEAPI
HFILE
WINAPI
_lcreat(
_In_ LPCSTR lpPathName,
_In_ int iAttribute
);
WINBASEAPI
UINT
WINAPI
_lread(
_In_ HFILE hFile,
_Out_writes_bytes_to_(uBytes, return) LPVOID lpBuffer,
_In_ UINT uBytes
);
WINBASEAPI
UINT
WINAPI
_lwrite(
_In_ HFILE hFile,
_In_reads_bytes_(uBytes) LPCCH lpBuffer,
_In_ UINT uBytes
);
WINBASEAPI
long
WINAPI
_hread(
_In_ HFILE hFile,
_Out_writes_bytes_to_(lBytes, return) LPVOID lpBuffer,
_In_ long lBytes
);
WINBASEAPI
long
WINAPI
_hwrite(
_In_ HFILE hFile,
_In_reads_bytes_(lBytes) LPCCH lpBuffer,
_In_ long lBytes
);
WINBASEAPI
HFILE
WINAPI
_lclose(
_In_ HFILE hFile
);
WINBASEAPI
LONG
WINAPI
_llseek(
_In_ HFILE hFile,
_In_ LONG lOffset,
_In_ int iOrigin
);
WINADVAPI
BOOL
WINAPI
IsTextUnicode(
_In_reads_bytes_(iSize) CONST VOID* lpv,
_In_ int iSize,
_Inout_opt_ LPINT lpiResult
);
WINBASEAPI
DWORD
WINAPI
SignalObjectAndWait(
_In_ HANDLE hObjectToSignal,
_In_ HANDLE hObjectToWaitOn,
_In_ DWORD dwMilliseconds,
_In_ BOOL bAlertable
);
WINBASEAPI
BOOL
WINAPI
BackupRead(
_In_ HANDLE hFile,
_Out_writes_bytes_to_(nNumberOfBytesToRead, *lpNumberOfBytesRead) LPBYTE lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_ LPDWORD lpNumberOfBytesRead,
_In_ BOOL bAbort,
_In_ BOOL bProcessSecurity,
_Inout_ LPVOID *lpContext
);
WINBASEAPI
BOOL
WINAPI
BackupSeek(
_In_ HANDLE hFile,
_In_ DWORD dwLowBytesToSeek,
_In_ DWORD dwHighBytesToSeek,
_Out_ LPDWORD lpdwLowByteSeeked,
_Out_ LPDWORD lpdwHighByteSeeked,
_Inout_ LPVOID *lpContext
);
WINBASEAPI
BOOL
WINAPI
BackupWrite(
_In_ HANDLE hFile,
_In_reads_bytes_(nNumberOfBytesToWrite) LPBYTE lpBuffer,
_In_ DWORD nNumberOfBytesToWrite,
_Out_ LPDWORD lpNumberOfBytesWritten,
_In_ BOOL bAbort,
_In_ BOOL bProcessSecurity,
_Inout_ LPVOID *lpContext
);
typedef struct _WIN32_STREAM_ID {
DWORD dwStreamId ;
DWORD dwStreamAttributes ;
LARGE_INTEGER Size ;
DWORD dwStreamNameSize ;
WCHAR cStreamName[ ANYSIZE_ARRAY ] ;
} WIN32_STREAM_ID, *LPWIN32_STREAM_ID ;
typedef struct _STARTUPINFOEXA {
STARTUPINFOA StartupInfo;
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
} STARTUPINFOEXA, *LPSTARTUPINFOEXA;
typedef struct _STARTUPINFOEXW {
STARTUPINFOW StartupInfo;
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
} STARTUPINFOEXW, *LPSTARTUPINFOEXW;
typedef STARTUPINFOEXA STARTUPINFOEX;
typedef LPSTARTUPINFOEXA LPSTARTUPINFOEX;
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenMutexA(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateSemaphoreA(
_In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
_In_ LONG lInitialCount,
_In_ LONG lMaximumCount,
_In_opt_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenSemaphoreA(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateWaitableTimerA(
_In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes,
_In_ BOOL bManualReset,
_In_opt_ LPCSTR lpTimerName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenWaitableTimerA(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCSTR lpTimerName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateSemaphoreExA(
_In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
_In_ LONG lInitialCount,
_In_ LONG lMaximumCount,
_In_opt_ LPCSTR lpName,
_Reserved_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateWaitableTimerExA(
_In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes,
_In_opt_ LPCSTR lpTimerName,
_In_ DWORD dwFlags,
_In_ DWORD dwDesiredAccess
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateFileMappingA(
_In_ HANDLE hFile,
_In_opt_ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
_In_ DWORD flProtect,
_In_ DWORD dwMaximumSizeHigh,
_In_ DWORD dwMaximumSizeLow,
_In_opt_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateFileMappingNumaA(
_In_ HANDLE hFile,
_In_opt_ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
_In_ DWORD flProtect,
_In_ DWORD dwMaximumSizeHigh,
_In_ DWORD dwMaximumSizeLow,
_In_opt_ LPCSTR lpName,
_In_ DWORD nndPreferred
);
WINBASEAPI
HANDLE
WINAPI
OpenFileMappingA(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCSTR lpName
);
WINBASEAPI
_Success_(return != 0 && return <= nBufferLength)
DWORD
WINAPI
GetLogicalDriveStringsA(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer
);
WINBASEAPI
_Ret_maybenull_
HMODULE
WINAPI
LoadPackagedLibrary (
_In_ LPCWSTR lpwLibFileName,
_Reserved_ DWORD Reserved
);
WINBASEAPI
BOOL
WINAPI
QueryFullProcessImageNameA(
_In_ HANDLE hProcess,
_In_ DWORD dwFlags,
_Out_writes_to_(*lpdwSize, *lpdwSize) LPSTR lpExeName,
_Inout_ PDWORD lpdwSize
);
WINBASEAPI
BOOL
WINAPI
QueryFullProcessImageNameW(
_In_ HANDLE hProcess,
_In_ DWORD dwFlags,
_Out_writes_to_(*lpdwSize, *lpdwSize) LPWSTR lpExeName,
_Inout_ PDWORD lpdwSize
);
typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
ProcThreadAttributeParentProcess = 0,
ProcThreadAttributeHandleList = 2,
ProcThreadAttributeGroupAffinity = 3,
ProcThreadAttributePreferredNode = 4,
ProcThreadAttributeIdealProcessor = 5,
ProcThreadAttributeUmsThread = 6,
ProcThreadAttributeMitigationPolicy = 7,
ProcThreadAttributeSecurityCapabilities = 9,
ProcThreadAttributeProtectionLevel = 11,
ProcThreadAttributeJobList = 13,
ProcThreadAttributeChildProcessPolicy = 14,
ProcThreadAttributeAllApplicationPackagesPolicy = 15,
ProcThreadAttributeWin32kFilter = 16,
ProcThreadAttributeSafeOpenPromptOriginClaim = 17,
ProcThreadAttributeDesktopAppPolicy = 18,
ProcThreadAttributePseudoConsole = 22,
ProcThreadAttributeMitigationAuditPolicy = 24,
ProcThreadAttributeMachineType = 25,
ProcThreadAttributeComponentFilter = 26,
ProcThreadAttributeEnableOptionalXStateFeatures = 27,
ProcThreadAttributeTrustedApp = 29,
} PROC_THREAD_ATTRIBUTE_NUM;
WINBASEAPI
VOID
WINAPI
GetStartupInfoA(
_Out_ LPSTARTUPINFOA lpStartupInfo
);
WINBASEAPI
DWORD
WINAPI
GetFirmwareEnvironmentVariableA(
_In_ LPCSTR lpName,
_In_ LPCSTR lpGuid,
_Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetFirmwareEnvironmentVariableW(
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpGuid,
_Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetFirmwareEnvironmentVariableExA(
_In_ LPCSTR lpName,
_In_ LPCSTR lpGuid,
_Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
_In_ DWORD nSize,
_Out_opt_ PDWORD pdwAttribubutes
);
WINBASEAPI
DWORD
WINAPI
GetFirmwareEnvironmentVariableExW(
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpGuid,
_Out_writes_bytes_to_opt_(nSize, return) PVOID pBuffer,
_In_ DWORD nSize,
_Out_opt_ PDWORD pdwAttribubutes
);
WINBASEAPI
BOOL
WINAPI
SetFirmwareEnvironmentVariableA(
_In_ LPCSTR lpName,
_In_ LPCSTR lpGuid,
_In_reads_bytes_opt_(nSize) PVOID pValue,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetFirmwareEnvironmentVariableW(
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpGuid,
_In_reads_bytes_opt_(nSize) PVOID pValue,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetFirmwareEnvironmentVariableExA(
_In_ LPCSTR lpName,
_In_ LPCSTR lpGuid,
_In_reads_bytes_opt_(nSize) PVOID pValue,
_In_ DWORD nSize,
_In_ DWORD dwAttributes
);
WINBASEAPI
BOOL
WINAPI
SetFirmwareEnvironmentVariableExW(
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpGuid,
_In_reads_bytes_opt_(nSize) PVOID pValue,
_In_ DWORD nSize,
_In_ DWORD dwAttributes
);
WINBASEAPI
BOOL
WINAPI
GetFirmwareType (
_Inout_ PFIRMWARE_TYPE FirmwareType
);
WINBASEAPI
BOOL
WINAPI
IsNativeVhdBoot (
_Out_ PBOOL NativeVhdBoot
);
WINBASEAPI
_Ret_maybenull_
HRSRC
WINAPI
FindResourceA(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpName,
_In_ LPCSTR lpType
);
WINBASEAPI
_Ret_maybenull_
HRSRC
WINAPI
FindResourceExA(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ LPCSTR lpName,
_In_ WORD wLanguage
);
WINBASEAPI
BOOL
WINAPI
EnumResourceTypesA(
_In_opt_ HMODULE hModule,
_In_ ENUMRESTYPEPROCA lpEnumFunc,
_In_ LONG_PTR lParam
);
WINBASEAPI
BOOL
WINAPI
EnumResourceTypesW(
_In_opt_ HMODULE hModule,
_In_ ENUMRESTYPEPROCW lpEnumFunc,
_In_ LONG_PTR lParam
);
WINBASEAPI
BOOL
WINAPI
EnumResourceLanguagesA(
_In_opt_ HMODULE hModule,
_In_ LPCSTR lpType,
_In_ LPCSTR lpName,
_In_ ENUMRESLANGPROCA lpEnumFunc,
_In_ LONG_PTR lParam
);
WINBASEAPI
BOOL
WINAPI
EnumResourceLanguagesW(
_In_opt_ HMODULE hModule,
_In_ LPCWSTR lpType,
_In_ LPCWSTR lpName,
_In_ ENUMRESLANGPROCW lpEnumFunc,
_In_ LONG_PTR lParam
);
WINBASEAPI
HANDLE
WINAPI
BeginUpdateResourceA(
_In_ LPCSTR pFileName,
_In_ BOOL bDeleteExistingResources
);
WINBASEAPI
HANDLE
WINAPI
BeginUpdateResourceW(
_In_ LPCWSTR pFileName,
_In_ BOOL bDeleteExistingResources
);
WINBASEAPI
BOOL
WINAPI
UpdateResourceA(
_In_ HANDLE hUpdate,
_In_ LPCSTR lpType,
_In_ LPCSTR lpName,
_In_ WORD wLanguage,
_In_reads_bytes_opt_(cb) LPVOID lpData,
_In_ DWORD cb
);
WINBASEAPI
BOOL
WINAPI
UpdateResourceW(
_In_ HANDLE hUpdate,
_In_ LPCWSTR lpType,
_In_ LPCWSTR lpName,
_In_ WORD wLanguage,
_In_reads_bytes_opt_(cb) LPVOID lpData,
_In_ DWORD cb
);
WINBASEAPI
BOOL
WINAPI
EndUpdateResourceA(
_In_ HANDLE hUpdate,
_In_ BOOL fDiscard
);
WINBASEAPI
BOOL
WINAPI
EndUpdateResourceW(
_In_ HANDLE hUpdate,
_In_ BOOL fDiscard
);
WINBASEAPI
ATOM
WINAPI
GlobalAddAtomA(
_In_opt_ LPCSTR lpString
);
WINBASEAPI
ATOM
WINAPI
GlobalAddAtomW(
_In_opt_ LPCWSTR lpString
);
WINBASEAPI
ATOM
WINAPI
GlobalAddAtomExA(
_In_opt_ LPCSTR lpString,
_In_ DWORD Flags
);
WINBASEAPI
ATOM
WINAPI
GlobalAddAtomExW(
_In_opt_ LPCWSTR lpString,
_In_ DWORD Flags
);
WINBASEAPI
ATOM
WINAPI
GlobalFindAtomA(
_In_opt_ LPCSTR lpString
);
WINBASEAPI
ATOM
WINAPI
GlobalFindAtomW(
_In_opt_ LPCWSTR lpString
);
WINBASEAPI
UINT
WINAPI
GlobalGetAtomNameA(
_In_ ATOM nAtom,
_Out_writes_to_(nSize, return + 1) LPSTR lpBuffer,
_In_ int nSize
);
WINBASEAPI
UINT
WINAPI
GlobalGetAtomNameW(
_In_ ATOM nAtom,
_Out_writes_to_(nSize, return + 1) LPWSTR lpBuffer,
_In_ int nSize
);
WINBASEAPI
ATOM
WINAPI
AddAtomA(
_In_opt_ LPCSTR lpString
);
WINBASEAPI
ATOM
WINAPI
AddAtomW(
_In_opt_ LPCWSTR lpString
);
WINBASEAPI
ATOM
WINAPI
FindAtomA(
_In_opt_ LPCSTR lpString
);
WINBASEAPI
ATOM
WINAPI
FindAtomW(
_In_opt_ LPCWSTR lpString
);
WINBASEAPI
UINT
WINAPI
GetAtomNameA(
_In_ ATOM nAtom,
_Out_writes_to_(nSize, return + 1) LPSTR lpBuffer,
_In_ int nSize
);
WINBASEAPI
UINT
WINAPI
GetAtomNameW(
_In_ ATOM nAtom,
_Out_writes_to_(nSize, return + 1) LPWSTR lpBuffer,
_In_ int nSize
);
WINBASEAPI
UINT
WINAPI
GetProfileIntA(
_In_ LPCSTR lpAppName,
_In_ LPCSTR lpKeyName,
_In_ INT nDefault
);
WINBASEAPI
UINT
WINAPI
GetProfileIntW(
_In_ LPCWSTR lpAppName,
_In_ LPCWSTR lpKeyName,
_In_ INT nDefault
);
WINBASEAPI
DWORD
WINAPI
GetProfileStringA(
_In_opt_ LPCSTR lpAppName,
_In_opt_ LPCSTR lpKeyName,
_In_opt_ LPCSTR lpDefault,
_Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetProfileStringW(
_In_opt_ LPCWSTR lpAppName,
_In_opt_ LPCWSTR lpKeyName,
_In_opt_ LPCWSTR lpDefault,
_Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
WriteProfileStringA(
_In_opt_ LPCSTR lpAppName,
_In_opt_ LPCSTR lpKeyName,
_In_opt_ LPCSTR lpString
);
WINBASEAPI
BOOL
WINAPI
WriteProfileStringW(
_In_opt_ LPCWSTR lpAppName,
_In_opt_ LPCWSTR lpKeyName,
_In_opt_ LPCWSTR lpString
);
WINBASEAPI
DWORD
WINAPI
GetProfileSectionA(
_In_ LPCSTR lpAppName,
_Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetProfileSectionW(
_In_ LPCWSTR lpAppName,
_Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
WriteProfileSectionA(
_In_ LPCSTR lpAppName,
_In_ LPCSTR lpString
);
WINBASEAPI
BOOL
WINAPI
WriteProfileSectionW(
_In_ LPCWSTR lpAppName,
_In_ LPCWSTR lpString
);
WINBASEAPI
UINT
WINAPI
GetPrivateProfileIntA(
_In_ LPCSTR lpAppName,
_In_ LPCSTR lpKeyName,
_In_ INT nDefault,
_In_opt_ LPCSTR lpFileName
);
WINBASEAPI
UINT
WINAPI
GetPrivateProfileIntW(
_In_ LPCWSTR lpAppName,
_In_ LPCWSTR lpKeyName,
_In_ INT nDefault,
_In_opt_ LPCWSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileStringA(
_In_opt_ LPCSTR lpAppName,
_In_opt_ LPCSTR lpKeyName,
_In_opt_ LPCSTR lpDefault,
_Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
_In_ DWORD nSize,
_In_opt_ LPCSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileStringW(
_In_opt_ LPCWSTR lpAppName,
_In_opt_ LPCWSTR lpKeyName,
_In_opt_ LPCWSTR lpDefault,
_Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
_In_ DWORD nSize,
_In_opt_ LPCWSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
WritePrivateProfileStringA(
_In_opt_ LPCSTR lpAppName,
_In_opt_ LPCSTR lpKeyName,
_In_opt_ LPCSTR lpString,
_In_opt_ LPCSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
WritePrivateProfileStringW(
_In_opt_ LPCWSTR lpAppName,
_In_opt_ LPCWSTR lpKeyName,
_In_opt_ LPCWSTR lpString,
_In_opt_ LPCWSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileSectionA(
_In_ LPCSTR lpAppName,
_Out_writes_to_opt_(nSize, return + 1) LPSTR lpReturnedString,
_In_ DWORD nSize,
_In_opt_ LPCSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileSectionW(
_In_ LPCWSTR lpAppName,
_Out_writes_to_opt_(nSize, return + 1) LPWSTR lpReturnedString,
_In_ DWORD nSize,
_In_opt_ LPCWSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
WritePrivateProfileSectionA(
_In_opt_ LPCSTR lpAppName,
_In_opt_ LPCSTR lpString,
_In_opt_ LPCSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
WritePrivateProfileSectionW(
_In_opt_ LPCWSTR lpAppName,
_In_opt_ LPCWSTR lpString,
_In_opt_ LPCWSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileSectionNamesA(
_Out_writes_to_opt_(nSize, return + 1) LPSTR lpszReturnBuffer,
_In_ DWORD nSize,
_In_opt_ LPCSTR lpFileName
);
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileSectionNamesW(
_Out_writes_to_opt_(nSize, return + 1) LPWSTR lpszReturnBuffer,
_In_ DWORD nSize,
_In_opt_ LPCWSTR lpFileName
);
WINBASEAPI
BOOL
WINAPI
GetPrivateProfileStructA(
_In_ LPCSTR lpszSection,
_In_ LPCSTR lpszKey,
_Out_writes_bytes_opt_(uSizeStruct) LPVOID lpStruct,
_In_ UINT uSizeStruct,
_In_opt_ LPCSTR szFile
);
WINBASEAPI
BOOL
WINAPI
GetPrivateProfileStructW(
_In_ LPCWSTR lpszSection,
_In_ LPCWSTR lpszKey,
_Out_writes_bytes_opt_(uSizeStruct) LPVOID lpStruct,
_In_ UINT uSizeStruct,
_In_opt_ LPCWSTR szFile
);
WINBASEAPI
BOOL
WINAPI
WritePrivateProfileStructA(
_In_ LPCSTR lpszSection,
_In_ LPCSTR lpszKey,
_In_reads_bytes_opt_(uSizeStruct) LPVOID lpStruct,
_In_ UINT uSizeStruct,
_In_opt_ LPCSTR szFile
);
WINBASEAPI
BOOL
WINAPI
WritePrivateProfileStructW(
_In_ LPCWSTR lpszSection,
_In_ LPCWSTR lpszKey,
_In_reads_bytes_opt_(uSizeStruct) LPVOID lpStruct,
_In_ UINT uSizeStruct,
_In_opt_ LPCWSTR szFile
);
typedef UINT (WINAPI* PGET_SYSTEM_WOW64_DIRECTORY_A)(_Out_writes_to_opt_(uSize, return + 1) LPSTR lpBuffer, _In_ UINT uSize);
typedef UINT (WINAPI* PGET_SYSTEM_WOW64_DIRECTORY_W)(_Out_writes_to_opt_(uSize, return + 1) LPWSTR lpBuffer, _In_ UINT uSize);
WINBASEAPI
BOOL
WINAPI
SetDllDirectoryA(
_In_opt_ LPCSTR lpPathName
);
WINBASEAPI
BOOL
WINAPI
SetDllDirectoryW(
_In_opt_ LPCWSTR lpPathName
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetDllDirectoryA(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetDllDirectoryW(
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength, return + 1) LPWSTR lpBuffer
);
WINBASEAPI
BOOL
WINAPI
SetSearchPathMode (
_In_ DWORD Flags
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryExA(
_In_ LPCSTR lpTemplateDirectory,
_In_ LPCSTR lpNewDirectory,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryExW(
_In_ LPCWSTR lpTemplateDirectory,
_In_ LPCWSTR lpNewDirectory,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryTransactedA(
_In_opt_ LPCSTR lpTemplateDirectory,
_In_ LPCSTR lpNewDirectory,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
CreateDirectoryTransactedW(
_In_opt_ LPCWSTR lpTemplateDirectory,
_In_ LPCWSTR lpNewDirectory,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryTransactedA(
_In_ LPCSTR lpPathName,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryTransactedW(
_In_ LPCWSTR lpPathName,
_In_ HANDLE hTransaction
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetFullPathNameTransactedA(
_In_ LPCSTR lpFileName,
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength, return + 1) LPSTR lpBuffer,
_Outptr_opt_ LPSTR *lpFilePart,
_In_ HANDLE hTransaction
);
WINBASEAPI
_Success_(return != 0 && return < nBufferLength)
DWORD
WINAPI
GetFullPathNameTransactedW(
_In_ LPCWSTR lpFileName,
_In_ DWORD nBufferLength,
_Out_writes_to_opt_(nBufferLength, return + 1) LPWSTR lpBuffer,
_Outptr_opt_ LPWSTR *lpFilePart,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
DefineDosDeviceA(
_In_ DWORD dwFlags,
_In_ LPCSTR lpDeviceName,
_In_opt_ LPCSTR lpTargetPath
);
WINBASEAPI
DWORD
WINAPI
QueryDosDeviceA(
_In_opt_ LPCSTR lpDeviceName,
_Out_writes_to_opt_(ucchMax, return) LPSTR lpTargetPath,
_In_ DWORD ucchMax
);
WINBASEAPI
HANDLE
WINAPI
CreateFileTransactedA(
_In_ LPCSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile,
_In_ HANDLE hTransaction,
_In_opt_ PUSHORT pusMiniVersion,
_Reserved_ PVOID lpExtendedParameter
);
WINBASEAPI
HANDLE
WINAPI
CreateFileTransactedW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile,
_In_ HANDLE hTransaction,
_In_opt_ PUSHORT pusMiniVersion,
_Reserved_ PVOID lpExtendedParameter
);
WINBASEAPI
HANDLE
WINAPI
ReOpenFile(
_In_ HANDLE hOriginalFile,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_ DWORD dwFlagsAndAttributes
);
WINBASEAPI
BOOL
WINAPI
SetFileAttributesTransactedA(
_In_ LPCSTR lpFileName,
_In_ DWORD dwFileAttributes,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
SetFileAttributesTransactedW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwFileAttributes,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
GetFileAttributesTransactedA(
_In_ LPCSTR lpFileName,
_In_ GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FILE_ATTRIBUTE_DATA)) LPVOID lpFileInformation,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
GetFileAttributesTransactedW(
_In_ LPCWSTR lpFileName,
_In_ GET_FILEEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FILE_ATTRIBUTE_DATA)) LPVOID lpFileInformation,
_In_ HANDLE hTransaction
);
WINBASEAPI
DWORD
WINAPI
GetCompressedFileSizeTransactedA(
_In_ LPCSTR lpFileName,
_Out_opt_ LPDWORD lpFileSizeHigh,
_In_ HANDLE hTransaction
);
WINBASEAPI
DWORD
WINAPI
GetCompressedFileSizeTransactedW(
_In_ LPCWSTR lpFileName,
_Out_opt_ LPDWORD lpFileSizeHigh,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
DeleteFileTransactedA(
_In_ LPCSTR lpFileName,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
DeleteFileTransactedW(
_In_ LPCWSTR lpFileName,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
CheckNameLegalDOS8Dot3A(
_In_ LPCSTR lpName,
_Out_writes_opt_(OemNameSize) LPSTR lpOemName,
_In_ DWORD OemNameSize,
_Out_opt_ PBOOL pbNameContainsSpaces OPTIONAL,
_Out_ PBOOL pbNameLegal
);
WINBASEAPI
BOOL
WINAPI
CheckNameLegalDOS8Dot3W(
_In_ LPCWSTR lpName,
_Out_writes_opt_(OemNameSize) LPSTR lpOemName,
_In_ DWORD OemNameSize,
_Out_opt_ PBOOL pbNameContainsSpaces OPTIONAL,
_Out_ PBOOL pbNameLegal
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileTransactedA(
_In_ LPCSTR lpFileName,
_In_ FINDEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FIND_DATAA)) LPVOID lpFindFileData,
_In_ FINDEX_SEARCH_OPS fSearchOp,
_Reserved_ LPVOID lpSearchFilter,
_In_ DWORD dwAdditionalFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileTransactedW(
_In_ LPCWSTR lpFileName,
_In_ FINDEX_INFO_LEVELS fInfoLevelId,
_Out_writes_bytes_(sizeof(WIN32_FIND_DATAW)) LPVOID lpFindFileData,
_In_ FINDEX_SEARCH_OPS fSearchOp,
_Reserved_ LPVOID lpSearchFilter,
_In_ DWORD dwAdditionalFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
CopyFileA(
_In_ LPCSTR lpExistingFileName,
_In_ LPCSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
WINBASEAPI
BOOL
WINAPI
CopyFileW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
typedef
DWORD
(WINAPI *LPPROGRESS_ROUTINE)(
_In_ LARGE_INTEGER TotalFileSize,
_In_ LARGE_INTEGER TotalBytesTransferred,
_In_ LARGE_INTEGER StreamSize,
_In_ LARGE_INTEGER StreamBytesTransferred,
_In_ DWORD dwStreamNumber,
_In_ DWORD dwCallbackReason,
_In_ HANDLE hSourceFile,
_In_ HANDLE hDestinationFile,
_In_opt_ LPVOID lpData
);
WINBASEAPI
BOOL
WINAPI
CopyFileExA(
_In_ LPCSTR lpExistingFileName,
_In_ LPCSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_When_(pbCancel != NULL, _Pre_satisfies_(*pbCancel == FALSE))
_Inout_opt_ LPBOOL pbCancel,
_In_ DWORD dwCopyFlags
);
WINBASEAPI
BOOL
WINAPI
CopyFileExW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_When_(pbCancel != NULL, _Pre_satisfies_(*pbCancel == FALSE))
_Inout_opt_ LPBOOL pbCancel,
_In_ DWORD dwCopyFlags
);
WINBASEAPI
BOOL
WINAPI
CopyFileTransactedA(
_In_ LPCSTR lpExistingFileName,
_In_ LPCSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_In_opt_ LPBOOL pbCancel,
_In_ DWORD dwCopyFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
CopyFileTransactedW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_In_opt_ LPBOOL pbCancel,
_In_ DWORD dwCopyFlags,
_In_ HANDLE hTransaction
);
typedef enum _COPYFILE2_MESSAGE_TYPE {
COPYFILE2_CALLBACK_NONE = 0,
COPYFILE2_CALLBACK_CHUNK_STARTED,
COPYFILE2_CALLBACK_CHUNK_FINISHED,
COPYFILE2_CALLBACK_STREAM_STARTED,
COPYFILE2_CALLBACK_STREAM_FINISHED,
COPYFILE2_CALLBACK_POLL_CONTINUE,
COPYFILE2_CALLBACK_ERROR,
COPYFILE2_CALLBACK_MAX,
} COPYFILE2_MESSAGE_TYPE;
typedef enum _COPYFILE2_MESSAGE_ACTION {
COPYFILE2_PROGRESS_CONTINUE = 0,
COPYFILE2_PROGRESS_CANCEL,
COPYFILE2_PROGRESS_STOP,
COPYFILE2_PROGRESS_QUIET,
COPYFILE2_PROGRESS_PAUSE,
} COPYFILE2_MESSAGE_ACTION;
typedef enum _COPYFILE2_COPY_PHASE {
COPYFILE2_PHASE_NONE = 0,
COPYFILE2_PHASE_PREPARE_SOURCE,
COPYFILE2_PHASE_PREPARE_DEST,
COPYFILE2_PHASE_READ_SOURCE,
COPYFILE2_PHASE_WRITE_DESTINATION,
COPYFILE2_PHASE_SERVER_COPY,
COPYFILE2_PHASE_NAMEGRAFT_COPY,
COPYFILE2_PHASE_MAX,
} COPYFILE2_COPY_PHASE;
typedef struct COPYFILE2_MESSAGE {
COPYFILE2_MESSAGE_TYPE Type;
DWORD dwPadding;
union {
struct {
DWORD dwStreamNumber;
DWORD dwReserved;
HANDLE hSourceFile;
HANDLE hDestinationFile;
ULARGE_INTEGER uliChunkNumber;
ULARGE_INTEGER uliChunkSize;
ULARGE_INTEGER uliStreamSize;
ULARGE_INTEGER uliTotalFileSize;
} ChunkStarted;
struct {
DWORD dwStreamNumber;
DWORD dwFlags;
HANDLE hSourceFile;
HANDLE hDestinationFile;
ULARGE_INTEGER uliChunkNumber;
ULARGE_INTEGER uliChunkSize;
ULARGE_INTEGER uliStreamSize;
ULARGE_INTEGER uliStreamBytesTransferred;
ULARGE_INTEGER uliTotalFileSize;
ULARGE_INTEGER uliTotalBytesTransferred;
} ChunkFinished;
struct {
DWORD dwStreamNumber;
DWORD dwReserved;
HANDLE hSourceFile;
HANDLE hDestinationFile;
ULARGE_INTEGER uliStreamSize;
ULARGE_INTEGER uliTotalFileSize;
} StreamStarted;
struct {
DWORD dwStreamNumber;
DWORD dwReserved;
HANDLE hSourceFile;
HANDLE hDestinationFile;
ULARGE_INTEGER uliStreamSize;
ULARGE_INTEGER uliStreamBytesTransferred;
ULARGE_INTEGER uliTotalFileSize;
ULARGE_INTEGER uliTotalBytesTransferred;
} StreamFinished;
struct {
DWORD dwReserved;
} PollContinue;
struct {
COPYFILE2_COPY_PHASE CopyPhase;
DWORD dwStreamNumber;
HRESULT hrFailure;
DWORD dwReserved;
ULARGE_INTEGER uliChunkNumber;
ULARGE_INTEGER uliStreamSize;
ULARGE_INTEGER uliStreamBytesTransferred;
ULARGE_INTEGER uliTotalFileSize;
ULARGE_INTEGER uliTotalBytesTransferred;
} Error;
} Info;
} COPYFILE2_MESSAGE;
typedef
COPYFILE2_MESSAGE_ACTION (CALLBACK *PCOPYFILE2_PROGRESS_ROUTINE)(
_In_ const COPYFILE2_MESSAGE *pMessage,
_In_opt_ PVOID pvCallbackContext
);
typedef struct COPYFILE2_EXTENDED_PARAMETERS {
DWORD dwSize;
DWORD dwCopyFlags;
BOOL *pfCancel;
PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
PVOID pvCallbackContext;
} COPYFILE2_EXTENDED_PARAMETERS;
typedef struct COPYFILE2_EXTENDED_PARAMETERS_V2 {
DWORD dwSize;
DWORD dwCopyFlags;
BOOL *pfCancel;
PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
PVOID pvCallbackContext;
DWORD dwCopyFlagsV2;
ULONG ioDesiredSize;
ULONG ioDesiredRate;
PVOID reserved[8];
} COPYFILE2_EXTENDED_PARAMETERS_V2;
WINBASEAPI
HRESULT
WINAPI
CopyFile2(
_In_ PCWSTR pwszExistingFileName,
_In_ PCWSTR pwszNewFileName,
_In_opt_ COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters
);
WINBASEAPI
BOOL
WINAPI
MoveFileA(
_In_ LPCSTR lpExistingFileName,
_In_ LPCSTR lpNewFileName
);
WINBASEAPI
BOOL
WINAPI
MoveFileW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName
);
WINBASEAPI
BOOL
WINAPI
MoveFileExA(
_In_ LPCSTR lpExistingFileName,
_In_opt_ LPCSTR lpNewFileName,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
MoveFileExW(
_In_ LPCWSTR lpExistingFileName,
_In_opt_ LPCWSTR lpNewFileName,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
MoveFileWithProgressA(
_In_ LPCSTR lpExistingFileName,
_In_opt_ LPCSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
MoveFileWithProgressW(
_In_ LPCWSTR lpExistingFileName,
_In_opt_ LPCWSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
MoveFileTransactedA(
_In_ LPCSTR lpExistingFileName,
_In_opt_ LPCSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_In_ DWORD dwFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
MoveFileTransactedW(
_In_ LPCWSTR lpExistingFileName,
_In_opt_ LPCWSTR lpNewFileName,
_In_opt_ LPPROGRESS_ROUTINE lpProgressRoutine,
_In_opt_ LPVOID lpData,
_In_ DWORD dwFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
ReplaceFileA(
_In_ LPCSTR lpReplacedFileName,
_In_ LPCSTR lpReplacementFileName,
_In_opt_ LPCSTR lpBackupFileName,
_In_ DWORD dwReplaceFlags,
_Reserved_ LPVOID lpExclude,
_Reserved_ LPVOID lpReserved
);
WINBASEAPI
BOOL
WINAPI
ReplaceFileW(
_In_ LPCWSTR lpReplacedFileName,
_In_ LPCWSTR lpReplacementFileName,
_In_opt_ LPCWSTR lpBackupFileName,
_In_ DWORD dwReplaceFlags,
_Reserved_ LPVOID lpExclude,
_Reserved_ LPVOID lpReserved
);
WINBASEAPI
BOOL
WINAPI
CreateHardLinkA(
_In_ LPCSTR lpFileName,
_In_ LPCSTR lpExistingFileName,
_Reserved_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
CreateHardLinkW(
_In_ LPCWSTR lpFileName,
_In_ LPCWSTR lpExistingFileName,
_Reserved_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
CreateHardLinkTransactedA(
_In_ LPCSTR lpFileName,
_In_ LPCSTR lpExistingFileName,
_Reserved_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
CreateHardLinkTransactedW(
_In_ LPCWSTR lpFileName,
_In_ LPCWSTR lpExistingFileName,
_Reserved_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ HANDLE hTransaction
);
WINBASEAPI
HANDLE
WINAPI
FindFirstStreamTransactedW (
_In_ LPCWSTR lpFileName,
_In_ STREAM_INFO_LEVELS InfoLevel,
_Out_writes_bytes_(sizeof(WIN32_FIND_STREAM_DATA)) LPVOID lpFindStreamData,
_Reserved_ DWORD dwFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
HANDLE
WINAPI
FindFirstFileNameTransactedW (
_In_ LPCWSTR lpFileName,
_In_ DWORD dwFlags,
_Inout_ LPDWORD StringLength,
_Out_writes_(*StringLength) PWSTR LinkName,
_In_opt_ HANDLE hTransaction
);
WINBASEAPI
HANDLE
WINAPI
CreateNamedPipeA(
_In_ LPCSTR lpName,
_In_ DWORD dwOpenMode,
_In_ DWORD dwPipeMode,
_In_ DWORD nMaxInstances,
_In_ DWORD nOutBufferSize,
_In_ DWORD nInBufferSize,
_In_ DWORD nDefaultTimeOut,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeHandleStateA(
_In_ HANDLE hNamedPipe,
_Out_opt_ LPDWORD lpState,
_Out_opt_ LPDWORD lpCurInstances,
_Out_opt_ LPDWORD lpMaxCollectionCount,
_Out_opt_ LPDWORD lpCollectDataTimeout,
_Out_writes_opt_(nMaxUserNameSize) LPSTR lpUserName,
_In_ DWORD nMaxUserNameSize
);
WINBASEAPI
BOOL
WINAPI
CallNamedPipeA(
_In_ LPCSTR lpNamedPipeName,
_In_reads_bytes_opt_(nInBufferSize) LPVOID lpInBuffer,
_In_ DWORD nInBufferSize,
_Out_writes_bytes_to_opt_(nOutBufferSize, *lpBytesRead) LPVOID lpOutBuffer,
_In_ DWORD nOutBufferSize,
_Out_ LPDWORD lpBytesRead,
_In_ DWORD nTimeOut
);
WINBASEAPI
BOOL
WINAPI
WaitNamedPipeA(
_In_ LPCSTR lpNamedPipeName,
_In_ DWORD nTimeOut
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeClientComputerNameA(
_In_ HANDLE Pipe,
_Out_writes_bytes_(ClientComputerNameLength) LPSTR ClientComputerName,
_In_ ULONG ClientComputerNameLength
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeClientProcessId(
_In_ HANDLE Pipe,
_Out_ PULONG ClientProcessId
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeClientSessionId(
_In_ HANDLE Pipe,
_Out_ PULONG ClientSessionId
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeServerProcessId(
_In_ HANDLE Pipe,
_Out_ PULONG ServerProcessId
);
WINBASEAPI
BOOL
WINAPI
GetNamedPipeServerSessionId(
_In_ HANDLE Pipe,
_Out_ PULONG ServerSessionId
);
WINBASEAPI
BOOL
WINAPI
SetVolumeLabelA(
_In_opt_ LPCSTR lpRootPathName,
_In_opt_ LPCSTR lpVolumeName
);
WINBASEAPI
BOOL
WINAPI
SetVolumeLabelW(
_In_opt_ LPCWSTR lpRootPathName,
_In_opt_ LPCWSTR lpVolumeName
);
WINBASEAPI
BOOL
WINAPI
SetFileBandwidthReservation(
_In_ HANDLE hFile,
_In_ DWORD nPeriodMilliseconds,
_In_ DWORD nBytesPerPeriod,
_In_ BOOL bDiscardable,
_Out_ LPDWORD lpTransferSize,
_Out_ LPDWORD lpNumOutstandingRequests
);
WINBASEAPI
BOOL
WINAPI
GetFileBandwidthReservation(
_In_ HANDLE hFile,
_Out_ LPDWORD lpPeriodMilliseconds,
_Out_ LPDWORD lpBytesPerPeriod,
_Out_ LPBOOL pDiscardable,
_Out_ LPDWORD lpTransferSize,
_Out_ LPDWORD lpNumOutstandingRequests
);
WINADVAPI
BOOL
WINAPI
ClearEventLogA (
_In_ HANDLE hEventLog,
_In_opt_ LPCSTR lpBackupFileName
);
WINADVAPI
BOOL
WINAPI
ClearEventLogW (
_In_ HANDLE hEventLog,
_In_opt_ LPCWSTR lpBackupFileName
);
WINADVAPI
BOOL
WINAPI
BackupEventLogA (
_In_ HANDLE hEventLog,
_In_ LPCSTR lpBackupFileName
);
WINADVAPI
BOOL
WINAPI
BackupEventLogW (
_In_ HANDLE hEventLog,
_In_ LPCWSTR lpBackupFileName
);
WINADVAPI
BOOL
WINAPI
CloseEventLog (
_In_ HANDLE hEventLog
);
WINADVAPI
BOOL
WINAPI
DeregisterEventSource (
_In_ HANDLE hEventLog
);
WINADVAPI
BOOL
WINAPI
NotifyChangeEventLog(
_In_ HANDLE hEventLog,
_In_ HANDLE hEvent
);
WINADVAPI
BOOL
WINAPI
GetNumberOfEventLogRecords (
_In_ HANDLE hEventLog,
_Out_ PDWORD NumberOfRecords
);
WINADVAPI
BOOL
WINAPI
GetOldestEventLogRecord (
_In_ HANDLE hEventLog,
_Out_ PDWORD OldestRecord
);
WINADVAPI
HANDLE
WINAPI
OpenEventLogA (
_In_opt_ LPCSTR lpUNCServerName,
_In_ LPCSTR lpSourceName
);
WINADVAPI
HANDLE
WINAPI
OpenEventLogW (
_In_opt_ LPCWSTR lpUNCServerName,
_In_ LPCWSTR lpSourceName
);
WINADVAPI
HANDLE
WINAPI
RegisterEventSourceA (
_In_opt_ LPCSTR lpUNCServerName,
_In_ LPCSTR lpSourceName
);
WINADVAPI
HANDLE
WINAPI
RegisterEventSourceW (
_In_opt_ LPCWSTR lpUNCServerName,
_In_ LPCWSTR lpSourceName
);
WINADVAPI
HANDLE
WINAPI
OpenBackupEventLogA (
_In_opt_ LPCSTR lpUNCServerName,
_In_ LPCSTR lpFileName
);
WINADVAPI
HANDLE
WINAPI
OpenBackupEventLogW (
_In_opt_ LPCWSTR lpUNCServerName,
_In_ LPCWSTR lpFileName
);
WINADVAPI
BOOL
WINAPI
ReadEventLogA (
_In_ HANDLE hEventLog,
_In_ DWORD dwReadFlags,
_In_ DWORD dwRecordOffset,
_Out_writes_bytes_to_(nNumberOfBytesToRead, *pnBytesRead) LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_ DWORD *pnBytesRead,
_Out_ DWORD *pnMinNumberOfBytesNeeded
);
WINADVAPI
BOOL
WINAPI
ReadEventLogW (
_In_ HANDLE hEventLog,
_In_ DWORD dwReadFlags,
_In_ DWORD dwRecordOffset,
_Out_writes_bytes_to_(nNumberOfBytesToRead, *pnBytesRead) LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_ DWORD *pnBytesRead,
_Out_ DWORD *pnMinNumberOfBytesNeeded
);
WINADVAPI
BOOL
WINAPI
ReportEventA (
_In_ HANDLE hEventLog,
_In_ WORD wType,
_In_ WORD wCategory,
_In_ DWORD dwEventID,
_In_opt_ PSID lpUserSid,
_In_ WORD wNumStrings,
_In_ DWORD dwDataSize,
_In_reads_opt_(wNumStrings) LPCSTR *lpStrings,
_In_reads_bytes_opt_(dwDataSize) LPVOID lpRawData
);
WINADVAPI
BOOL
WINAPI
ReportEventW (
_In_ HANDLE hEventLog,
_In_ WORD wType,
_In_ WORD wCategory,
_In_ DWORD dwEventID,
_In_opt_ PSID lpUserSid,
_In_ WORD wNumStrings,
_In_ DWORD dwDataSize,
_In_reads_opt_(wNumStrings) LPCWSTR *lpStrings,
_In_reads_bytes_opt_(dwDataSize) LPVOID lpRawData
);
typedef struct _EVENTLOG_FULL_INFORMATION
{
DWORD dwFull;
}
EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION;
WINADVAPI
BOOL
WINAPI
GetEventLogInformation (
_In_ HANDLE hEventLog,
_In_ DWORD dwInfoLevel,
_Out_writes_bytes_to_(cbBufSize, *pcbBytesNeeded) LPVOID lpBuffer,
_In_ DWORD cbBufSize,
_Out_ LPDWORD pcbBytesNeeded
);
typedef ULONG OPERATION_ID;
typedef struct _OPERATION_START_PARAMETERS {
ULONG Version;
OPERATION_ID OperationId;
ULONG Flags;
} OPERATION_START_PARAMETERS, *POPERATION_START_PARAMETERS;
typedef struct _OPERATION_END_PARAMETERS {
ULONG Version;
OPERATION_ID OperationId;
ULONG Flags;
} OPERATION_END_PARAMETERS, *POPERATION_END_PARAMETERS;
WINADVAPI
BOOL
WINAPI
OperationStart (
_In_ OPERATION_START_PARAMETERS* OperationStartParams
);
WINADVAPI
BOOL
WINAPI
OperationEnd (
_In_ OPERATION_END_PARAMETERS* OperationEndParams
);
WINADVAPI
BOOL
WINAPI
AccessCheckAndAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_opt_ LPVOID HandleId,
_In_ LPSTR ObjectTypeName,
_In_opt_ LPSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ DWORD DesiredAccess,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_ LPDWORD GrantedAccess,
_Out_ LPBOOL AccessStatus,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeAndAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ LPCSTR ObjectTypeName,
_In_opt_ LPCSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ DWORD DesiredAccess,
_In_ AUDIT_EVENT_TYPE AuditType,
_In_ DWORD Flags,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_ LPDWORD GrantedAccess,
_Out_ LPBOOL AccessStatus,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeResultListAndAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ LPCSTR ObjectTypeName,
_In_opt_ LPCSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ DWORD DesiredAccess,
_In_ AUDIT_EVENT_TYPE AuditType,
_In_ DWORD Flags,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_writes_(ObjectTypeListLength) LPDWORD GrantedAccess,
_Out_writes_(ObjectTypeListLength) LPDWORD AccessStatusList,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
AccessCheckByTypeResultListAndAuditAlarmByHandleA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ HANDLE ClientToken,
_In_ LPCSTR ObjectTypeName,
_In_opt_ LPCSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSID PrincipalSelfSid,
_In_ DWORD DesiredAccess,
_In_ AUDIT_EVENT_TYPE AuditType,
_In_ DWORD Flags,
_Inout_updates_opt_(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
_In_ DWORD ObjectTypeListLength,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOL ObjectCreation,
_Out_writes_(ObjectTypeListLength) LPDWORD GrantedAccess,
_Out_writes_(ObjectTypeListLength) LPDWORD AccessStatusList,
_Out_ LPBOOL pfGenerateOnClose
);
WINADVAPI
BOOL
WINAPI
ObjectOpenAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ LPSTR ObjectTypeName,
_In_opt_ LPSTR ObjectName,
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_In_ DWORD GrantedAccess,
_In_opt_ PPRIVILEGE_SET Privileges,
_In_ BOOL ObjectCreation,
_In_ BOOL AccessGranted,
_Out_ LPBOOL GenerateOnClose
);
WINADVAPI
BOOL
WINAPI
ObjectPrivilegeAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ HANDLE ClientToken,
_In_ DWORD DesiredAccess,
_In_ PPRIVILEGE_SET Privileges,
_In_ BOOL AccessGranted
);
WINADVAPI
BOOL
WINAPI
ObjectCloseAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ BOOL GenerateOnClose
);
WINADVAPI
BOOL
WINAPI
ObjectDeleteAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPVOID HandleId,
_In_ BOOL GenerateOnClose
);
WINADVAPI
BOOL
WINAPI
PrivilegedServiceAuditAlarmA (
_In_ LPCSTR SubsystemName,
_In_ LPCSTR ServiceName,
_In_ HANDLE ClientToken,
_In_ PPRIVILEGE_SET Privileges,
_In_ BOOL AccessGranted
);
WINADVAPI
BOOL
WINAPI
AddConditionalAce (
_Inout_ PACL pAcl,
_In_ DWORD dwAceRevision,
_In_ DWORD AceFlags,
_In_ UCHAR AceType,
_In_ DWORD AccessMask,
_In_ PSID pSid,
_In_ _Null_terminated_ PWCHAR ConditionStr,
_Out_ DWORD *ReturnLength
);
WINADVAPI
BOOL
WINAPI
SetFileSecurityA (
_In_ LPCSTR lpFileName,
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor
);
WINADVAPI
BOOL
WINAPI
GetFileSecurityA (
_In_ LPCSTR lpFileName,
_In_ SECURITY_INFORMATION RequestedInformation,
_Out_writes_bytes_to_opt_(nLength, *lpnLengthNeeded) PSECURITY_DESCRIPTOR pSecurityDescriptor,
_In_ DWORD nLength,
_Out_ LPDWORD lpnLengthNeeded
);
WINBASEAPI
BOOL
WINAPI
ReadDirectoryChangesW(
_In_ HANDLE hDirectory,
_Out_writes_bytes_to_(nBufferLength, *lpBytesReturned) LPVOID lpBuffer,
_In_ DWORD nBufferLength,
_In_ BOOL bWatchSubtree,
_In_ DWORD dwNotifyFilter,
_Out_opt_ LPDWORD lpBytesReturned,
_Inout_opt_ LPOVERLAPPED lpOverlapped,
_In_opt_ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
WINBASEAPI
BOOL
WINAPI
ReadDirectoryChangesExW(
_In_ HANDLE hDirectory,
_Out_writes_bytes_to_(nBufferLength, *lpBytesReturned) LPVOID lpBuffer,
_In_ DWORD nBufferLength,
_In_ BOOL bWatchSubtree,
_In_ DWORD dwNotifyFilter,
_Out_opt_ LPDWORD lpBytesReturned,
_Inout_opt_ LPOVERLAPPED lpOverlapped,
_In_opt_ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
_In_ READ_DIRECTORY_NOTIFY_INFORMATION_CLASS ReadDirectoryNotifyInformationClass
);
WINBASEAPI
_Ret_maybenull_ __out_data_source(FILE)
LPVOID
WINAPI
MapViewOfFileExNuma(
_In_ HANDLE hFileMappingObject,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwFileOffsetHigh,
_In_ DWORD dwFileOffsetLow,
_In_ SIZE_T dwNumberOfBytesToMap,
_In_opt_ LPVOID lpBaseAddress,
_In_ DWORD nndPreferred
);
WINBASEAPI
BOOL
WINAPI
IsBadReadPtr(
_In_opt_ CONST VOID *lp,
_In_ UINT_PTR ucb
);
WINBASEAPI
BOOL
WINAPI
IsBadWritePtr(
_In_opt_ LPVOID lp,
_In_ UINT_PTR ucb
);
WINBASEAPI
BOOL
WINAPI
IsBadHugeReadPtr(
_In_opt_ CONST VOID *lp,
_In_ UINT_PTR ucb
);
WINBASEAPI
BOOL
WINAPI
IsBadHugeWritePtr(
_In_opt_ LPVOID lp,
_In_ UINT_PTR ucb
);
WINBASEAPI
BOOL
WINAPI
IsBadCodePtr(
_In_opt_ FARPROC lpfn
);
WINBASEAPI
BOOL
WINAPI
IsBadStringPtrA(
_In_opt_ LPCSTR lpsz,
_In_ UINT_PTR ucchMax
);
WINBASEAPI
BOOL
WINAPI
IsBadStringPtrW(
_In_opt_ LPCWSTR lpsz,
_In_ UINT_PTR ucchMax
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountSidA(
_In_opt_ LPCSTR lpSystemName,
_In_ PSID Sid,
_Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR Name,
_Inout_ LPDWORD cchName,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountSidW(
_In_opt_ LPCWSTR lpSystemName,
_In_ PSID Sid,
_Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR Name,
_Inout_ LPDWORD cchName,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountNameA(
_In_opt_ LPCSTR lpSystemName,
_In_ LPCSTR lpAccountName,
_Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
_Inout_ LPDWORD cbSid,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountNameW(
_In_opt_ LPCWSTR lpSystemName,
_In_ LPCWSTR lpAccountName,
_Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
_Inout_ LPDWORD cbSid,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountNameLocalA(
_In_ LPCSTR lpAccountName,
_Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
_Inout_ LPDWORD cbSid,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountNameLocalW(
_In_ LPCWSTR lpAccountName,
_Out_writes_bytes_to_opt_(*cbSid, *cbSid) PSID Sid,
_Inout_ LPDWORD cbSid,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountSidLocalA(
_In_ PSID Sid,
_Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR Name,
_Inout_ LPDWORD cchName,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupAccountSidLocalW(
_In_ PSID Sid,
_Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR Name,
_Inout_ LPDWORD cchName,
_Out_writes_to_opt_(*cchReferencedDomainName, *cchReferencedDomainName + 1) LPWSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
WINADVAPI
BOOL
WINAPI
LookupPrivilegeValueA(
_In_opt_ LPCSTR lpSystemName,
_In_ LPCSTR lpName,
_Out_ PLUID lpLuid
);
WINADVAPI
BOOL
WINAPI
LookupPrivilegeValueW(
_In_opt_ LPCWSTR lpSystemName,
_In_ LPCWSTR lpName,
_Out_ PLUID lpLuid
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupPrivilegeNameA(
_In_opt_ LPCSTR lpSystemName,
_In_ PLUID lpLuid,
_Out_writes_to_opt_(*cchName, *cchName + 1) LPSTR lpName,
_Inout_ LPDWORD cchName
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupPrivilegeNameW(
_In_opt_ LPCWSTR lpSystemName,
_In_ PLUID lpLuid,
_Out_writes_to_opt_(*cchName, *cchName + 1) LPWSTR lpName,
_Inout_ LPDWORD cchName
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupPrivilegeDisplayNameA(
_In_opt_ LPCSTR lpSystemName,
_In_ LPCSTR lpName,
_Out_writes_to_opt_(*cchDisplayName, *cchDisplayName + 1) LPSTR lpDisplayName,
_Inout_ LPDWORD cchDisplayName,
_Out_ LPDWORD lpLanguageId
);
WINADVAPI
_Success_(return != FALSE) BOOL
WINAPI
LookupPrivilegeDisplayNameW(
_In_opt_ LPCWSTR lpSystemName,
_In_ LPCWSTR lpName,
_Out_writes_to_opt_(*cchDisplayName, *cchDisplayName + 1) LPWSTR lpDisplayName,
_Inout_ LPDWORD cchDisplayName,
_Out_ LPDWORD lpLanguageId
);
WINBASEAPI
BOOL
WINAPI
BuildCommDCBA(
_In_ LPCSTR lpDef,
_Out_ LPDCB lpDCB
);
WINBASEAPI
BOOL
WINAPI
BuildCommDCBW(
_In_ LPCWSTR lpDef,
_Out_ LPDCB lpDCB
);
WINBASEAPI
BOOL
WINAPI
BuildCommDCBAndTimeoutsA(
_In_ LPCSTR lpDef,
_Out_ LPDCB lpDCB,
_Out_ LPCOMMTIMEOUTS lpCommTimeouts
);
WINBASEAPI
BOOL
WINAPI
BuildCommDCBAndTimeoutsW(
_In_ LPCWSTR lpDef,
_Out_ LPDCB lpDCB,
_Out_ LPCOMMTIMEOUTS lpCommTimeouts
);
WINBASEAPI
BOOL
WINAPI
CommConfigDialogA(
_In_ LPCSTR lpszName,
_In_opt_ HWND hWnd,
_Inout_ LPCOMMCONFIG lpCC
);
WINBASEAPI
BOOL
WINAPI
CommConfigDialogW(
_In_ LPCWSTR lpszName,
_In_opt_ HWND hWnd,
_Inout_ LPCOMMCONFIG lpCC
);
WINBASEAPI
BOOL
WINAPI
GetDefaultCommConfigA(
_In_ LPCSTR lpszName,
_Out_writes_bytes_to_(*lpdwSize, *lpdwSize) LPCOMMCONFIG lpCC,
_Inout_ LPDWORD lpdwSize
);
WINBASEAPI
BOOL
WINAPI
GetDefaultCommConfigW(
_In_ LPCWSTR lpszName,
_Out_writes_bytes_to_(*lpdwSize, *lpdwSize) LPCOMMCONFIG lpCC,
_Inout_ LPDWORD lpdwSize
);
WINBASEAPI
BOOL
WINAPI
SetDefaultCommConfigA(
_In_ LPCSTR lpszName,
_In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
_In_ DWORD dwSize
);
WINBASEAPI
BOOL
WINAPI
SetDefaultCommConfigW(
_In_ LPCWSTR lpszName,
_In_reads_bytes_(dwSize) LPCOMMCONFIG lpCC,
_In_ DWORD dwSize
);
WINBASEAPI
_Success_(return != 0)
BOOL
WINAPI
GetComputerNameA (
_Out_writes_to_opt_(*nSize, *nSize + 1) LPSTR lpBuffer,
_Inout_ LPDWORD nSize
);
WINBASEAPI
_Success_(return != 0)
BOOL
WINAPI
GetComputerNameW (
_Out_writes_to_opt_(*nSize, *nSize + 1) LPWSTR lpBuffer,
_Inout_ LPDWORD nSize
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
DnsHostnameToComputerNameA (
_In_ LPCSTR Hostname,
_Out_writes_to_opt_(*nSize, *nSize + 1) LPSTR ComputerName,
_Inout_ LPDWORD nSize
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
DnsHostnameToComputerNameW (
_In_ LPCWSTR Hostname,
_Out_writes_to_opt_(*nSize, *nSize + 1) LPWSTR ComputerName,
_Inout_ LPDWORD nSize
);
WINADVAPI
BOOL
WINAPI
GetUserNameA (
_Out_writes_to_opt_(*pcbBuffer, *pcbBuffer) LPSTR lpBuffer,
_Inout_ LPDWORD pcbBuffer
);
WINADVAPI
BOOL
WINAPI
GetUserNameW (
_Out_writes_to_opt_(*pcbBuffer, *pcbBuffer) LPWSTR lpBuffer,
_Inout_ LPDWORD pcbBuffer
);
WINADVAPI
BOOL
WINAPI
LogonUserA (
_In_ LPCSTR lpszUsername,
_In_opt_ LPCSTR lpszDomain,
_In_opt_ LPCSTR lpszPassword,
_In_ DWORD dwLogonType,
_In_ DWORD dwLogonProvider,
_Outptr_ PHANDLE phToken
);
WINADVAPI
BOOL
WINAPI
LogonUserW (
_In_ LPCWSTR lpszUsername,
_In_opt_ LPCWSTR lpszDomain,
_In_opt_ LPCWSTR lpszPassword,
_In_ DWORD dwLogonType,
_In_ DWORD dwLogonProvider,
_Outptr_ PHANDLE phToken
);
WINADVAPI
BOOL
WINAPI
LogonUserExA (
_In_ LPCSTR lpszUsername,
_In_opt_ LPCSTR lpszDomain,
_In_opt_ LPCSTR lpszPassword,
_In_ DWORD dwLogonType,
_In_ DWORD dwLogonProvider,
_Outptr_opt_ PHANDLE phToken,
_Outptr_opt_ PSID *ppLogonSid,
_Outptr_opt_result_bytebuffer_all_(*pdwProfileLength) PVOID *ppProfileBuffer,
_Out_opt_ LPDWORD pdwProfileLength,
_Out_opt_ PQUOTA_LIMITS pQuotaLimits
);
WINADVAPI
BOOL
WINAPI
LogonUserExW (
_In_ LPCWSTR lpszUsername,
_In_opt_ LPCWSTR lpszDomain,
_In_opt_ LPCWSTR lpszPassword,
_In_ DWORD dwLogonType,
_In_ DWORD dwLogonProvider,
_Outptr_opt_ PHANDLE phToken,
_Outptr_opt_ PSID *ppLogonSid,
_Outptr_opt_result_bytebuffer_all_(*pdwProfileLength) PVOID *ppProfileBuffer,
_Out_opt_ LPDWORD pdwProfileLength,
_Out_opt_ PQUOTA_LIMITS pQuotaLimits
);
WINADVAPI
_Must_inspect_result_ BOOL
WINAPI
CreateProcessWithLogonW(
_In_ LPCWSTR lpUsername,
_In_opt_ LPCWSTR lpDomain,
_In_ LPCWSTR lpPassword,
_In_ DWORD dwLogonFlags,
_In_opt_ LPCWSTR lpApplicationName,
_Inout_opt_ LPWSTR lpCommandLine,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCWSTR lpCurrentDirectory,
_In_ LPSTARTUPINFOW lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
WINADVAPI
_Must_inspect_result_ BOOL
WINAPI
CreateProcessWithTokenW(
_In_ HANDLE hToken,
_In_ DWORD dwLogonFlags,
_In_opt_ LPCWSTR lpApplicationName,
_Inout_opt_ LPWSTR lpCommandLine,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCWSTR lpCurrentDirectory,
_In_ LPSTARTUPINFOW lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
WINADVAPI
BOOL
WINAPI
IsTokenUntrusted(
_In_ HANDLE TokenHandle
);
WINBASEAPI
BOOL
WINAPI
RegisterWaitForSingleObject(
_Outptr_ PHANDLE phNewWaitObject,
_In_ HANDLE hObject,
_In_ WAITORTIMERCALLBACK Callback,
_In_opt_ PVOID Context,
_In_ ULONG dwMilliseconds,
_In_ ULONG dwFlags
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
UnregisterWait(
_In_ HANDLE WaitHandle
);
WINBASEAPI
BOOL
WINAPI
BindIoCompletionCallback (
_In_ HANDLE FileHandle,
_In_ LPOVERLAPPED_COMPLETION_ROUTINE Function,
_In_ ULONG Flags
);
WINBASEAPI
HANDLE
WINAPI
SetTimerQueueTimer(
_In_opt_ HANDLE TimerQueue,
_In_ WAITORTIMERCALLBACK Callback,
_In_opt_ PVOID Parameter,
_In_ DWORD DueTime,
_In_ DWORD Period,
_In_ BOOL PreferIo
);
WINBASEAPI
_Must_inspect_result_
BOOL
WINAPI
CancelTimerQueueTimer(
_In_opt_ HANDLE TimerQueue,
_In_ HANDLE Timer
);
FORCEINLINE
VOID
InitializeThreadpoolEnvironment(
_Out_ PTP_CALLBACK_ENVIRON pcbe
)
{
TpInitializeCallbackEnviron(pcbe);
}
FORCEINLINE
VOID
SetThreadpoolCallbackPool(
_Inout_ PTP_CALLBACK_ENVIRON pcbe,
_In_ PTP_POOL ptpp
)
{
TpSetCallbackThreadpool(pcbe, ptpp);
}
FORCEINLINE
VOID
SetThreadpoolCallbackCleanupGroup(
_Inout_ PTP_CALLBACK_ENVIRON pcbe,
_In_ PTP_CLEANUP_GROUP ptpcg,
_In_opt_ PTP_CLEANUP_GROUP_CANCEL_CALLBACK pfng
)
{
TpSetCallbackCleanupGroup(pcbe, ptpcg, pfng);
}
FORCEINLINE
VOID
SetThreadpoolCallbackRunsLong(
_Inout_ PTP_CALLBACK_ENVIRON pcbe
)
{
TpSetCallbackLongFunction(pcbe);
}
FORCEINLINE
VOID
SetThreadpoolCallbackLibrary(
_Inout_ PTP_CALLBACK_ENVIRON pcbe,
_In_ PVOID mod
)
{
TpSetCallbackRaceWithDll(pcbe, mod);
}
FORCEINLINE
VOID
SetThreadpoolCallbackPriority(
_Inout_ PTP_CALLBACK_ENVIRON pcbe,
_In_ TP_CALLBACK_PRIORITY Priority
)
{
TpSetCallbackPriority(pcbe, Priority);
}
FORCEINLINE
VOID
DestroyThreadpoolEnvironment(
_Inout_ PTP_CALLBACK_ENVIRON pcbe
)
{
TpDestroyCallbackEnviron(pcbe);
}
FORCEINLINE
VOID
SetThreadpoolCallbackPersistent(
_Inout_ PTP_CALLBACK_ENVIRON pcbe
)
{
TpSetCallbackPersistent(pcbe);
}
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreatePrivateNamespaceA(
_In_opt_ LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes,
_In_ LPVOID lpBoundaryDescriptor,
_In_ LPCSTR lpAliasPrefix
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenPrivateNamespaceA(
_In_ LPVOID lpBoundaryDescriptor,
_In_ LPCSTR lpAliasPrefix
);
WINBASEAPI
_Ret_maybenull_
HANDLE
APIENTRY
CreateBoundaryDescriptorA(
_In_ LPCSTR Name,
_In_ ULONG Flags
);
WINBASEAPI
BOOL
WINAPI
AddIntegrityLabelToBoundaryDescriptor(
_Inout_ HANDLE * BoundaryDescriptor,
_In_ PSID IntegrityLabel
);
typedef struct tagHW_PROFILE_INFOA {
DWORD dwDockInfo;
CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
CHAR szHwProfileName[MAX_PROFILE_LEN];
} HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA;
typedef struct tagHW_PROFILE_INFOW {
DWORD dwDockInfo;
WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
WCHAR szHwProfileName[MAX_PROFILE_LEN];
} HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW;
typedef HW_PROFILE_INFOA HW_PROFILE_INFO;
typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO;
WINADVAPI
BOOL
WINAPI
GetCurrentHwProfileA (
_Out_ LPHW_PROFILE_INFOA lpHwProfileInfo
);
WINADVAPI
BOOL
WINAPI
GetCurrentHwProfileW (
_Out_ LPHW_PROFILE_INFOW lpHwProfileInfo
);
WINBASEAPI
BOOL
WINAPI
VerifyVersionInfoA(
_Inout_ LPOSVERSIONINFOEXA lpVersionInformation,
_In_ DWORD dwTypeMask,
_In_ DWORDLONG dwlConditionMask
);
WINBASEAPI
BOOL
WINAPI
VerifyVersionInfoW(
_Inout_ LPOSVERSIONINFOEXW lpVersionInformation,
_In_ DWORD dwTypeMask,
_In_ DWORDLONG dwlConditionMask
);
FORCEINLINE _Translates_Win32_to_HRESULT_(x) HRESULT HRESULT_FROM_WIN32(unsigned long x) { return (HRESULT)(x) <= 0 ? (HRESULT)(x) : (HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000);}
FORCEINLINE HRESULT HRESULT_FROM_SETUPAPI(unsigned long x) { return (((x) & (0x20000000|0xC0000000)) == (0x20000000|0xC0000000)) ? ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_SETUPAPI << 16) | 0x80000000)) : HRESULT_FROM_WIN32(x);}
typedef struct _TIME_ZONE_INFORMATION {
LONG Bias;
WCHAR StandardName[ 32 ];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[ 32 ];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
LONG Bias;
WCHAR StandardName[ 32 ];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[ 32 ];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
WCHAR TimeZoneKeyName[ 128 ];
BOOLEAN DynamicDaylightTimeDisabled;
} DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
SystemTimeToTzSpecificLocalTime(
_In_opt_ CONST TIME_ZONE_INFORMATION* lpTimeZoneInformation,
_In_ CONST SYSTEMTIME* lpUniversalTime,
_Out_ LPSYSTEMTIME lpLocalTime
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
TzSpecificLocalTimeToSystemTime(
_In_opt_ CONST TIME_ZONE_INFORMATION* lpTimeZoneInformation,
_In_ CONST SYSTEMTIME* lpLocalTime,
_Out_ LPSYSTEMTIME lpUniversalTime
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
FileTimeToSystemTime(
_In_ CONST FILETIME* lpFileTime,
_Out_ LPSYSTEMTIME lpSystemTime
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
SystemTimeToFileTime(
_In_ CONST SYSTEMTIME* lpSystemTime,
_Out_ LPFILETIME lpFileTime
);
WINBASEAPI
_Success_(return != TIME_ZONE_ID_INVALID)
DWORD
WINAPI
GetTimeZoneInformation(
_Out_ LPTIME_ZONE_INFORMATION lpTimeZoneInformation
);
WINBASEAPI
BOOL
WINAPI
SetTimeZoneInformation(
_In_ CONST TIME_ZONE_INFORMATION* lpTimeZoneInformation
);
WINBASEAPI
BOOL
WINAPI
SetDynamicTimeZoneInformation(
_In_ CONST DYNAMIC_TIME_ZONE_INFORMATION* lpTimeZoneInformation
);
WINBASEAPI
_Success_(return != TIME_ZONE_ID_INVALID)
DWORD
WINAPI
GetDynamicTimeZoneInformation(
_Out_ PDYNAMIC_TIME_ZONE_INFORMATION pTimeZoneInformation
);
_Success_(return != FALSE)
BOOL
WINAPI
GetTimeZoneInformationForYear(
_In_ USHORT wYear,
_In_opt_ PDYNAMIC_TIME_ZONE_INFORMATION pdtzi,
_Out_ LPTIME_ZONE_INFORMATION ptzi
);
WINBASEAPI
_Success_(return == ERROR_SUCCESS)
DWORD
WINAPI
EnumDynamicTimeZoneInformation(
_In_ CONST DWORD dwIndex,
_Out_ PDYNAMIC_TIME_ZONE_INFORMATION lpTimeZoneInformation
);
WINBASEAPI
_Success_(return == ERROR_SUCCESS)
DWORD
WINAPI
GetDynamicTimeZoneInformationEffectiveYears(
_In_ CONST PDYNAMIC_TIME_ZONE_INFORMATION lpTimeZoneInformation,
_Out_ LPDWORD FirstYear,
_Out_ LPDWORD LastYear
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
SystemTimeToTzSpecificLocalTimeEx(
_In_opt_ CONST DYNAMIC_TIME_ZONE_INFORMATION* lpTimeZoneInformation,
_In_ CONST SYSTEMTIME* lpUniversalTime,
_Out_ LPSYSTEMTIME lpLocalTime
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
TzSpecificLocalTimeToSystemTimeEx(
_In_opt_ CONST DYNAMIC_TIME_ZONE_INFORMATION* lpTimeZoneInformation,
_In_ CONST SYSTEMTIME* lpLocalTime,
_Out_ LPSYSTEMTIME lpUniversalTime
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
LocalFileTimeToLocalSystemTime(
_In_opt_ CONST TIME_ZONE_INFORMATION* timeZoneInformation,
_In_ CONST FILETIME* localFileTime,
_Out_ SYSTEMTIME* localSystemTime
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
LocalSystemTimeToLocalFileTime(
_In_opt_ CONST TIME_ZONE_INFORMATION* timeZoneInformation,
_In_ CONST SYSTEMTIME* localSystemTime,
_Out_ FILETIME* localFileTime
);
WINBASEAPI
BOOL
WINAPI
SetSystemPowerState(
_In_ BOOL fSuspend,
_In_ BOOL fForce
);
typedef struct _SYSTEM_POWER_STATUS {
BYTE ACLineStatus;
BYTE BatteryFlag;
BYTE BatteryLifePercent;
BYTE SystemStatusFlag;
DWORD BatteryLifeTime;
DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
WINBASEAPI
BOOL
WINAPI
GetSystemPowerStatus(
_Out_ LPSYSTEM_POWER_STATUS lpSystemPowerStatus
);
WINBASEAPI
BOOL
WINAPI
MapUserPhysicalPagesScatter(
_In_reads_(NumberOfPages) PVOID *VirtualAddresses,
_In_ ULONG_PTR NumberOfPages,
_In_reads_opt_(NumberOfPages) PULONG_PTR PageArray
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
CreateJobObjectA(
_In_opt_ LPSECURITY_ATTRIBUTES lpJobAttributes,
_In_opt_ LPCSTR lpName
);
WINBASEAPI
_Ret_maybenull_
HANDLE
WINAPI
OpenJobObjectA(
_In_ DWORD dwDesiredAccess,
_In_ BOOL bInheritHandle,
_In_ LPCSTR lpName
);
WINBASEAPI
BOOL
WINAPI
CreateJobSet (
_In_ ULONG NumJob,
_In_reads_(NumJob) PJOB_SET_ARRAY UserJobSet,
_In_ ULONG Flags);
WINBASEAPI
HANDLE
WINAPI
FindFirstVolumeA(
_Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
FindNextVolumeA(
_Inout_ HANDLE hFindVolume,
_Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
HANDLE
WINAPI
FindFirstVolumeMountPointA(
_In_ LPCSTR lpszRootPathName,
_Out_writes_(cchBufferLength) LPSTR lpszVolumeMountPoint,
_In_ DWORD cchBufferLength
);
WINBASEAPI
HANDLE
WINAPI
FindFirstVolumeMountPointW(
_In_ LPCWSTR lpszRootPathName,
_Out_writes_(cchBufferLength) LPWSTR lpszVolumeMountPoint,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
FindNextVolumeMountPointA(
_In_ HANDLE hFindVolumeMountPoint,
_Out_writes_(cchBufferLength) LPSTR lpszVolumeMountPoint,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
FindNextVolumeMountPointW(
_In_ HANDLE hFindVolumeMountPoint,
_Out_writes_(cchBufferLength) LPWSTR lpszVolumeMountPoint,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
FindVolumeMountPointClose(
_In_ HANDLE hFindVolumeMountPoint
);
WINBASEAPI
BOOL
WINAPI
SetVolumeMountPointA(
_In_ LPCSTR lpszVolumeMountPoint,
_In_ LPCSTR lpszVolumeName
);
WINBASEAPI
BOOL
WINAPI
SetVolumeMountPointW(
_In_ LPCWSTR lpszVolumeMountPoint,
_In_ LPCWSTR lpszVolumeName
);
WINBASEAPI
BOOL
WINAPI
DeleteVolumeMountPointA(
_In_ LPCSTR lpszVolumeMountPoint
);
WINBASEAPI
BOOL
WINAPI
GetVolumeNameForVolumeMountPointA(
_In_ LPCSTR lpszVolumeMountPoint,
_Out_writes_(cchBufferLength) LPSTR lpszVolumeName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
GetVolumePathNameA(
_In_ LPCSTR lpszFileName,
_Out_writes_(cchBufferLength) LPSTR lpszVolumePathName,
_In_ DWORD cchBufferLength
);
WINBASEAPI
BOOL
WINAPI
GetVolumePathNamesForVolumeNameA(
_In_ LPCSTR lpszVolumeName,
_Out_writes_to_opt_(cchBufferLength, *lpcchReturnLength) _Post_ _NullNull_terminated_ LPCH lpszVolumePathNames,
_In_ DWORD cchBufferLength,
_Out_ PDWORD lpcchReturnLength
);
typedef struct tagACTCTXA {
ULONG cbSize;
DWORD dwFlags;
LPCSTR lpSource;
USHORT wProcessorArchitecture;
LANGID wLangId;
LPCSTR lpAssemblyDirectory;
LPCSTR lpResourceName;
LPCSTR lpApplicationName;
HMODULE hModule;
} ACTCTXA, *PACTCTXA;
typedef struct tagACTCTXW {
ULONG cbSize;
DWORD dwFlags;
LPCWSTR lpSource;
USHORT wProcessorArchitecture;
LANGID wLangId;
LPCWSTR lpAssemblyDirectory;
LPCWSTR lpResourceName;
LPCWSTR lpApplicationName;
HMODULE hModule;
} ACTCTXW, *PACTCTXW;
typedef ACTCTXA ACTCTX;
typedef PACTCTXA PACTCTX;
typedef const ACTCTXA *PCACTCTXA;
typedef const ACTCTXW *PCACTCTXW;
typedef PCACTCTXA PCACTCTX;
WINBASEAPI
HANDLE
WINAPI
CreateActCtxA(
_In_ PCACTCTXA pActCtx
);
WINBASEAPI
HANDLE
WINAPI
CreateActCtxW(
_In_ PCACTCTXW pActCtx
);
WINBASEAPI
VOID
WINAPI
AddRefActCtx(
_Inout_ HANDLE hActCtx
);
WINBASEAPI
VOID
WINAPI
ReleaseActCtx(
_Inout_ HANDLE hActCtx
);
WINBASEAPI
BOOL
WINAPI
ZombifyActCtx(
_Inout_ HANDLE hActCtx
);
_Success_(return)
WINBASEAPI
BOOL
WINAPI
ActivateActCtx(
_Inout_opt_ HANDLE hActCtx,
_Out_ ULONG_PTR *lpCookie
);
_Success_(return)
WINBASEAPI
BOOL
WINAPI
DeactivateActCtx(
_In_ DWORD dwFlags,
_In_ ULONG_PTR ulCookie
);
WINBASEAPI
BOOL
WINAPI
GetCurrentActCtx(
_Outptr_ HANDLE *lphActCtx);
typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
ULONG cbSize;
ULONG ulDataFormatVersion;
PVOID lpData;
ULONG ulLength;
PVOID lpSectionGlobalData;
ULONG ulSectionGlobalDataLength;
PVOID lpSectionBase;
ULONG ulSectionTotalLength;
HANDLE hActCtx;
ULONG ulAssemblyRosterIndex;
} ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600;
typedef const ACTCTX_SECTION_KEYED_DATA_2600 * PCACTCTX_SECTION_KEYED_DATA_2600;
typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
PVOID lpInformation;
PVOID lpSectionBase;
ULONG ulSectionLength;
PVOID lpSectionGlobalDataBase;
ULONG ulSectionGlobalDataLength;
} ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
typedef struct tagACTCTX_SECTION_KEYED_DATA {
ULONG cbSize;
ULONG ulDataFormatVersion;
PVOID lpData;
ULONG ulLength;
PVOID lpSectionGlobalData;
ULONG ulSectionGlobalDataLength;
PVOID lpSectionBase;
ULONG ulSectionTotalLength;
HANDLE hActCtx;
ULONG ulAssemblyRosterIndex;
ULONG ulFlags;
ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
} ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA;
typedef const ACTCTX_SECTION_KEYED_DATA * PCACTCTX_SECTION_KEYED_DATA;
_Success_(return)
WINBASEAPI
BOOL
WINAPI
FindActCtxSectionStringA(
_In_ DWORD dwFlags,
_Reserved_ const GUID *lpExtensionGuid,
_In_ ULONG ulSectionId,
_In_ LPCSTR lpStringToFind,
_Out_ PACTCTX_SECTION_KEYED_DATA ReturnedData
);
_Success_(return)
WINBASEAPI
BOOL
WINAPI
FindActCtxSectionStringW(
_In_ DWORD dwFlags,
_Reserved_ const GUID *lpExtensionGuid,
_In_ ULONG ulSectionId,
_In_ LPCWSTR lpStringToFind,
_Out_ PACTCTX_SECTION_KEYED_DATA ReturnedData
);
WINBASEAPI
BOOL
WINAPI
FindActCtxSectionGuid(
_In_ DWORD dwFlags,
_Reserved_ const GUID *lpExtensionGuid,
_In_ ULONG ulSectionId,
_In_opt_ const GUID *lpGuidToFind,
_Out_ PACTCTX_SECTION_KEYED_DATA ReturnedData
);
typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
HANDLE hActCtx;
DWORD dwFlags;
} ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION;
typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
_Success_(return)
WINBASEAPI
BOOL
WINAPI
QueryActCtxW(
_In_ DWORD dwFlags,
_In_ HANDLE hActCtx,
_In_opt_ PVOID pvSubInstance,
_In_ ULONG ulInfoClass,
_Out_writes_bytes_to_opt_(cbBuffer, *pcbWrittenOrRequired) PVOID pvBuffer,
_In_ SIZE_T cbBuffer,
_Out_opt_ SIZE_T *pcbWrittenOrRequired
);
typedef _Success_(return) BOOL (WINAPI * PQUERYACTCTXW_FUNC)(
_In_ DWORD dwFlags,
_In_ HANDLE hActCtx,
_In_opt_ PVOID pvSubInstance,
_In_ ULONG ulInfoClass,
_Out_writes_bytes_to_opt_(cbBuffer, *pcbWrittenOrRequired) PVOID pvBuffer,
_In_ SIZE_T cbBuffer,
_Out_opt_ SIZE_T *pcbWrittenOrRequired
);
WINBASEAPI
DWORD
WINAPI
WTSGetActiveConsoleSessionId(
VOID
);
WINBASEAPI
DWORD
WINAPI
WTSGetServiceSessionId(
VOID
);
WINBASEAPI
BOOLEAN
WINAPI
WTSIsServerContainer(
VOID
);
WINBASEAPI
WORD
WINAPI
GetActiveProcessorGroupCount(
VOID
);
WINBASEAPI
WORD
WINAPI
GetMaximumProcessorGroupCount(
VOID
);
WINBASEAPI
DWORD
WINAPI
GetActiveProcessorCount(
_In_ WORD GroupNumber
);
WINBASEAPI
DWORD
WINAPI
GetMaximumProcessorCount(
_In_ WORD GroupNumber
);
WINBASEAPI
BOOL
WINAPI
GetNumaProcessorNode(
_In_ UCHAR Processor,
_Out_ PUCHAR NodeNumber
);
WINBASEAPI
BOOL
WINAPI
GetNumaNodeNumberFromHandle(
_In_ HANDLE hFile,
_Out_ PUSHORT NodeNumber
);
WINBASEAPI
BOOL
WINAPI
GetNumaProcessorNodeEx(
_In_ PPROCESSOR_NUMBER Processor,
_Out_ PUSHORT NodeNumber
);
WINBASEAPI
BOOL
WINAPI
GetNumaNodeProcessorMask(
_In_ UCHAR Node,
_Out_ PULONGLONG ProcessorMask
);
WINBASEAPI
BOOL
WINAPI
GetNumaAvailableMemoryNode(
_In_ UCHAR Node,
_Out_ PULONGLONG AvailableBytes
);
WINBASEAPI
BOOL
WINAPI
GetNumaAvailableMemoryNodeEx(
_In_ USHORT Node,
_Out_ PULONGLONG AvailableBytes
);
WINBASEAPI
BOOL
WINAPI
GetNumaProximityNode(
_In_ ULONG ProximityId,
_Out_ PUCHAR NodeNumber
);
typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)(PVOID pvParameter);
WINBASEAPI
HRESULT
WINAPI
RegisterApplicationRecoveryCallback(
_In_ APPLICATION_RECOVERY_CALLBACK pRecoveyCallback,
_In_opt_ PVOID pvParameter,
_In_ DWORD dwPingInterval,
_In_ DWORD dwFlags
);
WINBASEAPI
HRESULT
WINAPI
UnregisterApplicationRecoveryCallback(void);
WINBASEAPI
HRESULT
WINAPI
RegisterApplicationRestart(
_In_opt_ PCWSTR pwzCommandline,
_In_ DWORD dwFlags
);
WINBASEAPI
HRESULT
WINAPI
UnregisterApplicationRestart(void);
WINBASEAPI
HRESULT
WINAPI
GetApplicationRecoveryCallback(
_In_ HANDLE hProcess,
_Out_ APPLICATION_RECOVERY_CALLBACK* pRecoveryCallback,
_Outptr_opt_result_maybenull_ PVOID* ppvParameter,
_Out_opt_ PDWORD pdwPingInterval,
_Out_opt_ PDWORD pdwFlags
);
WINBASEAPI
HRESULT
WINAPI
GetApplicationRestartSettings(
_In_ HANDLE hProcess,
_Out_writes_opt_(*pcchSize) PWSTR pwzCommandline,
_Inout_ PDWORD pcchSize,
_Out_opt_ PDWORD pdwFlags
);
WINBASEAPI
HRESULT
WINAPI
ApplicationRecoveryInProgress(
_Out_ PBOOL pbCancelled
);
WINBASEAPI
VOID
WINAPI
ApplicationRecoveryFinished(
_In_ BOOL bSuccess
);
typedef struct _FILE_BASIC_INFO {
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
DWORD FileAttributes;
} FILE_BASIC_INFO, *PFILE_BASIC_INFO;
typedef struct _FILE_STANDARD_INFO {
LARGE_INTEGER AllocationSize;
LARGE_INTEGER EndOfFile;
DWORD NumberOfLinks;
BOOLEAN DeletePending;
BOOLEAN Directory;
} FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
typedef struct _FILE_NAME_INFO {
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_NAME_INFO, *PFILE_NAME_INFO;
typedef struct _FILE_CASE_SENSITIVE_INFO {
ULONG Flags;
} FILE_CASE_SENSITIVE_INFO, *PFILE_CASE_SENSITIVE_INFO;
typedef struct _FILE_RENAME_INFO {
union {
BOOLEAN ReplaceIfExists;
DWORD Flags;
} DUMMYUNIONNAME;
HANDLE RootDirectory;
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_RENAME_INFO, *PFILE_RENAME_INFO;
typedef struct _FILE_ALLOCATION_INFO {
LARGE_INTEGER AllocationSize;
} FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO;
typedef struct _FILE_END_OF_FILE_INFO {
LARGE_INTEGER EndOfFile;
} FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO;
typedef struct _FILE_STREAM_INFO {
DWORD NextEntryOffset;
DWORD StreamNameLength;
LARGE_INTEGER StreamSize;
LARGE_INTEGER StreamAllocationSize;
WCHAR StreamName[1];
} FILE_STREAM_INFO, *PFILE_STREAM_INFO;
typedef struct _FILE_COMPRESSION_INFO {
LARGE_INTEGER CompressedFileSize;
WORD CompressionFormat;
UCHAR CompressionUnitShift;
UCHAR ChunkShift;
UCHAR ClusterShift;
UCHAR Reserved[3];
} FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO;
typedef struct _FILE_ATTRIBUTE_TAG_INFO {
DWORD FileAttributes;
DWORD ReparseTag;
} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
typedef struct _FILE_DISPOSITION_INFO {
BOOLEAN DeleteFile;
} FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
typedef struct _FILE_DISPOSITION_INFO_EX {
DWORD Flags;
} FILE_DISPOSITION_INFO_EX, *PFILE_DISPOSITION_INFO_EX;
typedef struct _FILE_ID_BOTH_DIR_INFO {
DWORD NextEntryOffset;
DWORD FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
DWORD FileAttributes;
DWORD FileNameLength;
DWORD EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
typedef struct _FILE_FULL_DIR_INFO {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
ULONG FileAttributes;
ULONG FileNameLength;
ULONG EaSize;
WCHAR FileName[1];
} FILE_FULL_DIR_INFO, *PFILE_FULL_DIR_INFO;
typedef enum _PRIORITY_HINT {
IoPriorityHintVeryLow = 0,
IoPriorityHintLow,
IoPriorityHintNormal,
MaximumIoPriorityHintType
} PRIORITY_HINT;
typedef struct _FILE_IO_PRIORITY_HINT_INFO {
PRIORITY_HINT PriorityHint;
} FILE_IO_PRIORITY_HINT_INFO, *PFILE_IO_PRIORITY_HINT_INFO;
typedef struct _FILE_ALIGNMENT_INFO {
ULONG AlignmentRequirement;
} FILE_ALIGNMENT_INFO, *PFILE_ALIGNMENT_INFO;
typedef struct _FILE_STORAGE_INFO {
ULONG LogicalBytesPerSector;
ULONG PhysicalBytesPerSectorForAtomicity;
ULONG PhysicalBytesPerSectorForPerformance;
ULONG FileSystemEffectivePhysicalBytesPerSectorForAtomicity;
ULONG Flags;
ULONG ByteOffsetForSectorAlignment;
ULONG ByteOffsetForPartitionAlignment;
} FILE_STORAGE_INFO, *PFILE_STORAGE_INFO;
typedef struct _FILE_ID_INFO {
ULONGLONG VolumeSerialNumber;
FILE_ID_128 FileId;
} FILE_ID_INFO, *PFILE_ID_INFO;
typedef struct _FILE_ID_EXTD_DIR_INFO {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
ULONG FileAttributes;
ULONG FileNameLength;
ULONG EaSize;
ULONG ReparsePointTag;
FILE_ID_128 FileId;
WCHAR FileName[1];
} FILE_ID_EXTD_DIR_INFO, *PFILE_ID_EXTD_DIR_INFO;
typedef struct _FILE_REMOTE_PROTOCOL_INFO
{
USHORT StructureVersion;
USHORT StructureSize;
ULONG Protocol;
USHORT ProtocolMajorVersion;
USHORT ProtocolMinorVersion;
USHORT ProtocolRevision;
USHORT Reserved;
ULONG Flags;
struct {
ULONG Reserved[8];
} GenericReserved;
union {
struct {
struct {
ULONG Capabilities;
} Server;
struct {
ULONG Capabilities;
ULONG ShareFlags;
} Share;
} Smb2;
ULONG Reserved[16];
} ProtocolSpecific;
} FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO;
WINBASEAPI
BOOL
WINAPI
GetFileInformationByHandleEx(
_In_ HANDLE hFile,
_In_ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
_Out_writes_bytes_(dwBufferSize) LPVOID lpFileInformation,
_In_ DWORD dwBufferSize
);
typedef enum _FILE_ID_TYPE {
FileIdType,
ObjectIdType,
ExtendedFileIdType,
MaximumFileIdType
} FILE_ID_TYPE, *PFILE_ID_TYPE;
typedef struct FILE_ID_DESCRIPTOR {
DWORD dwSize;
FILE_ID_TYPE Type;
union {
LARGE_INTEGER FileId;
GUID ObjectId;
FILE_ID_128 ExtendedFileId;
} DUMMYUNIONNAME;
} FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
WINBASEAPI
HANDLE
WINAPI
OpenFileById (
_In_ HANDLE hVolumeHint,
_In_ LPFILE_ID_DESCRIPTOR lpFileId,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwFlagsAndAttributes
);
WINBASEAPI
BOOLEAN
APIENTRY
CreateSymbolicLinkA (
_In_ LPCSTR lpSymlinkFileName,
_In_ LPCSTR lpTargetFileName,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOLEAN
APIENTRY
CreateSymbolicLinkW (
_In_ LPCWSTR lpSymlinkFileName,
_In_ LPCWSTR lpTargetFileName,
_In_ DWORD dwFlags
);
WINBASEAPI
BOOL
WINAPI
QueryActCtxSettingsW(
_In_opt_ DWORD dwFlags,
_In_opt_ HANDLE hActCtx,
_In_opt_ PCWSTR settingsNameSpace,
_In_ PCWSTR settingName,
_Out_writes_bytes_to_opt_(dwBuffer, *pdwWrittenOrRequired) PWSTR pvBuffer,
_In_ SIZE_T dwBuffer,
_Out_opt_ SIZE_T *pdwWrittenOrRequired
);
WINBASEAPI
BOOLEAN
APIENTRY
CreateSymbolicLinkTransactedA (
_In_ LPCSTR lpSymlinkFileName,
_In_ LPCSTR lpTargetFileName,
_In_ DWORD dwFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOLEAN
APIENTRY
CreateSymbolicLinkTransactedW (
_In_ LPCWSTR lpSymlinkFileName,
_In_ LPCWSTR lpTargetFileName,
_In_ DWORD dwFlags,
_In_ HANDLE hTransaction
);
WINBASEAPI
BOOL
WINAPI
ReplacePartitionUnit (
_In_ PWSTR TargetPartition,
_In_ PWSTR SparePartition,
_In_ ULONG Flags
);
WINBASEAPI
BOOL
WINAPI
AddSecureMemoryCacheCallback(
_In_ __callback PSECURE_MEMORY_CACHE_CALLBACK pfnCallBack
);
WINBASEAPI
BOOL
WINAPI
RemoveSecureMemoryCacheCallback(
_In_ __callback PSECURE_MEMORY_CACHE_CALLBACK pfnCallBack
);
_Must_inspect_result_
WINBASEAPI
BOOL
WINAPI
CopyContext(
_Inout_ PCONTEXT Destination,
_In_ DWORD ContextFlags,
_In_ PCONTEXT Source
);
_Success_(return != FALSE)
WINBASEAPI
BOOL
WINAPI
InitializeContext(
_Out_writes_bytes_opt_(*ContextLength) PVOID Buffer,
_In_ DWORD ContextFlags,
_Out_ PCONTEXT* Context,
_Inout_ PDWORD ContextLength
);
_Success_(return != FALSE)
WINBASEAPI
BOOL
WINAPI
InitializeContext2(
_Out_writes_bytes_opt_(*ContextLength) PVOID Buffer,
_In_ DWORD ContextFlags,
_Out_ PCONTEXT* Context,
_Inout_ PDWORD ContextLength,
_In_ ULONG64 XStateCompactionMask
);
WINBASEAPI
DWORD
APIENTRY
EnableThreadProfiling(
_In_ HANDLE ThreadHandle,
_In_ DWORD Flags,
_In_ DWORD64 HardwareCounters,
_Out_ HANDLE *PerformanceDataHandle
);
WINBASEAPI
DWORD
APIENTRY
DisableThreadProfiling(
_In_ HANDLE PerformanceDataHandle
);
WINBASEAPI
DWORD
APIENTRY
QueryThreadProfiling(
_In_ HANDLE ThreadHandle,
_Out_ PBOOLEAN Enabled
);
WINBASEAPI
DWORD
APIENTRY
ReadThreadProfilingData(
_In_ HANDLE PerformanceDataHandle,
_In_ DWORD Flags,
_Out_ PPERFORMANCE_DATA PerformanceData
);
WINBASEAPI
DWORD
WINAPI
RaiseCustomSystemEventTrigger(
_In_ PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG CustomSystemEventTriggerConfig
);
typedef struct _DRAWPATRECT {
POINT ptPosition;
POINT ptSize;
WORD wStyle;
WORD wPattern;
} DRAWPATRECT, *PDRAWPATRECT;
typedef struct _PSINJECTDATA {
DWORD DataBytes;
WORD InjectionPoint;
WORD PageNumber;
} PSINJECTDATA, *PPSINJECTDATA;
typedef struct _PSFEATURE_OUTPUT {
BOOL bPageIndependent;
BOOL bSetPageDevice;
} PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT;
typedef struct _PSFEATURE_CUSTPAPER {
LONG lOrientation;
LONG lWidth;
LONG lHeight;
LONG lWidthOffset;
LONG lHeightOffset;
} PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER;
typedef struct tagXFORM
{
FLOAT eM11;
FLOAT eM12;
FLOAT eM21;
FLOAT eM22;
FLOAT eDx;
FLOAT eDy;
} XFORM, *PXFORM, FAR *LPXFORM;
typedef struct tagBITMAP
{
LONG bmType;
LONG bmWidth;
LONG bmHeight;
LONG bmWidthBytes;
WORD bmPlanes;
WORD bmBitsPixel;
LPVOID bmBits;
} BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue;
BYTE rgbtGreen;
BYTE rgbtRed;
} RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE;
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;
typedef RGBQUAD FAR* LPRGBQUAD;
typedef LONG LCSCSTYPE;
typedef LONG LCSGAMUTMATCH;
typedef long FXPT16DOT16, FAR *LPFXPT16DOT16;
typedef long FXPT2DOT30, FAR *LPFXPT2DOT30;
typedef struct tagCIEXYZ
{
FXPT2DOT30 ciexyzX;
FXPT2DOT30 ciexyzY;
FXPT2DOT30 ciexyzZ;
} CIEXYZ;
typedef CIEXYZ FAR *LPCIEXYZ;
typedef struct tagICEXYZTRIPLE
{
CIEXYZ ciexyzRed;
CIEXYZ ciexyzGreen;
CIEXYZ ciexyzBlue;
} CIEXYZTRIPLE;
typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE;
typedef struct tagLOGCOLORSPACEA {
DWORD lcsSignature;
DWORD lcsVersion;
DWORD lcsSize;
LCSCSTYPE lcsCSType;
LCSGAMUTMATCH lcsIntent;
CIEXYZTRIPLE lcsEndpoints;
DWORD lcsGammaRed;
DWORD lcsGammaGreen;
DWORD lcsGammaBlue;
CHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
typedef struct tagLOGCOLORSPACEW {
DWORD lcsSignature;
DWORD lcsVersion;
DWORD lcsSize;
LCSCSTYPE lcsCSType;
LCSGAMUTMATCH lcsIntent;
CIEXYZTRIPLE lcsEndpoints;
DWORD lcsGammaRed;
DWORD lcsGammaGreen;
DWORD lcsGammaBlue;
WCHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
typedef LOGCOLORSPACEA LOGCOLORSPACE;
typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE;
typedef struct tagBITMAPCOREHEADER {
DWORD bcSize;
WORD bcWidth;
WORD bcHeight;
WORD bcPlanes;
WORD bcBitCount;
} BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
typedef struct {
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
typedef struct {
DWORD bV5Size;
LONG bV5Width;
LONG bV5Height;
WORD bV5Planes;
WORD bV5BitCount;
DWORD bV5Compression;
DWORD bV5SizeImage;
LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter;
DWORD bV5ClrUsed;
DWORD bV5ClrImportant;
DWORD bV5RedMask;
DWORD bV5GreenMask;
DWORD bV5BlueMask;
DWORD bV5AlphaMask;
DWORD bV5CSType;
CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed;
DWORD bV5GammaGreen;
DWORD bV5GammaBlue;
DWORD bV5Intent;
DWORD bV5ProfileData;
DWORD bV5ProfileSize;
DWORD bV5Reserved;
} BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO;
typedef struct tagBITMAPCOREINFO {
BITMAPCOREHEADER bmciHeader;
RGBTRIPLE bmciColors[1];
} BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO;
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
typedef struct tagFONTSIGNATURE
{
DWORD fsUsb[4];
DWORD fsCsb[2];
} FONTSIGNATURE, *PFONTSIGNATURE,FAR *LPFONTSIGNATURE;
typedef struct tagCHARSETINFO
{
UINT ciCharset;
UINT ciACP;
FONTSIGNATURE fs;
} CHARSETINFO, *PCHARSETINFO, NEAR *NPCHARSETINFO, FAR *LPCHARSETINFO;
typedef struct tagLOCALESIGNATURE
{
DWORD lsUsb[4];
DWORD lsCsbDefault[2];
DWORD lsCsbSupported[2];
} LOCALESIGNATURE, *PLOCALESIGNATURE,FAR *LPLOCALESIGNATURE;
typedef struct tagHANDLETABLE
{
HGDIOBJ objectHandle[1];
} HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE;
typedef struct tagMETARECORD
{
DWORD rdSize;
WORD rdFunction;
WORD rdParm[1];
} METARECORD;
typedef struct tagMETARECORD UNALIGNED *PMETARECORD;
typedef struct tagMETARECORD UNALIGNED FAR *LPMETARECORD;
typedef struct tagMETAFILEPICT
{
LONG mm;
LONG xExt;
LONG yExt;
HMETAFILE hMF;
} METAFILEPICT, FAR *LPMETAFILEPICT;
typedef struct tagMETAHEADER
{
WORD mtType;
WORD mtHeaderSize;
WORD mtVersion;
DWORD mtSize;
WORD mtNoObjects;
DWORD mtMaxRecord;
WORD mtNoParameters;
} METAHEADER;
typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER;
typedef struct tagMETAHEADER UNALIGNED FAR *LPMETAHEADER;
typedef struct tagENHMETARECORD
{
DWORD iType;
DWORD nSize;
DWORD dParm[1];
} ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD;
typedef struct tagENHMETAHEADER
{
DWORD iType;
DWORD nSize;
RECTL rclBounds;
RECTL rclFrame;
DWORD dSignature;
DWORD nVersion;
DWORD nBytes;
DWORD nRecords;
WORD nHandles;
WORD sReserved;
DWORD nDescription;
DWORD offDescription;
DWORD nPalEntries;
SIZEL szlDevice;
SIZEL szlMillimeters;
DWORD cbPixelFormat;
DWORD offPixelFormat;
DWORD bOpenGL;
SIZEL szlMicrometers;
} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
typedef BYTE BCHAR;
typedef struct tagTEXTMETRICA
{
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
BYTE tmFirstChar;
BYTE tmLastChar;
BYTE tmDefaultChar;
BYTE tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRICA, *PTEXTMETRICA, NEAR *NPTEXTMETRICA, FAR *LPTEXTMETRICA;
typedef struct tagTEXTMETRICW
{
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
WCHAR tmFirstChar;
WCHAR tmLastChar;
WCHAR tmDefaultChar;
WCHAR tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRICW, *PTEXTMETRICW, NEAR *NPTEXTMETRICW, FAR *LPTEXTMETRICW;
typedef TEXTMETRICA TEXTMETRIC;
typedef PTEXTMETRICA PTEXTMETRIC;
typedef NPTEXTMETRICA NPTEXTMETRIC;
typedef LPTEXTMETRICA LPTEXTMETRIC;
typedef struct tagNEWTEXTMETRICA
{
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
BYTE tmFirstChar;
BYTE tmLastChar;
BYTE tmDefaultChar;
BYTE tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICA, *PNEWTEXTMETRICA, NEAR *NPNEWTEXTMETRICA, FAR *LPNEWTEXTMETRICA;
typedef struct tagNEWTEXTMETRICW
{
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
WCHAR tmFirstChar;
WCHAR tmLastChar;
WCHAR tmDefaultChar;
WCHAR tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICW, *PNEWTEXTMETRICW, NEAR *NPNEWTEXTMETRICW, FAR *LPNEWTEXTMETRICW;
typedef NEWTEXTMETRICA NEWTEXTMETRIC;
typedef PNEWTEXTMETRICA PNEWTEXTMETRIC;
typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC;
typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC;
typedef struct tagNEWTEXTMETRICEXA
{
NEWTEXTMETRICA ntmTm;
FONTSIGNATURE ntmFontSig;
}NEWTEXTMETRICEXA;
typedef struct tagNEWTEXTMETRICEXW
{
NEWTEXTMETRICW ntmTm;
FONTSIGNATURE ntmFontSig;
}NEWTEXTMETRICEXW;
typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
typedef struct tagPELARRAY
{
LONG paXCount;
LONG paYCount;
LONG paXExt;
LONG paYExt;
BYTE paRGBs;
} PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY;
typedef struct tagLOGBRUSH
{
UINT lbStyle;
COLORREF lbColor;
ULONG_PTR lbHatch;
} LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH;
typedef struct tagLOGBRUSH32
{
UINT lbStyle;
COLORREF lbColor;
ULONG lbHatch;
} LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32;
typedef LOGBRUSH PATTERN;
typedef PATTERN *PPATTERN;
typedef PATTERN NEAR *NPPATTERN;
typedef PATTERN FAR *LPPATTERN;
typedef struct tagLOGPEN
{
UINT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
} LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN;
typedef struct tagEXTLOGPEN {
DWORD elpPenStyle;
DWORD elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
ULONG_PTR elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN;
typedef struct tagEXTLOGPEN32 {
DWORD elpPenStyle;
DWORD elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
ULONG elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN32, *PEXTLOGPEN32, NEAR *NPEXTLOGPEN32, FAR *LPEXTLOGPEN32;
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY;
typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
_Field_size_opt_(palNumEntries) PALETTEENTRY palPalEntry[1];
} LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE;
typedef struct tagLOGFONTA
{
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, NEAR *NPLOGFONTA, FAR *LPLOGFONTA;
typedef struct tagLOGFONTW
{
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
WCHAR lfFaceName[LF_FACESIZE];
} LOGFONTW, *PLOGFONTW, NEAR *NPLOGFONTW, FAR *LPLOGFONTW;
typedef LOGFONTA LOGFONT;
typedef PLOGFONTA PLOGFONT;
typedef NPLOGFONTA NPLOGFONT;
typedef LPLOGFONTA LPLOGFONT;
typedef struct tagENUMLOGFONTA
{
LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE];
} ENUMLOGFONTA, FAR* LPENUMLOGFONTA;
typedef struct tagENUMLOGFONTW
{
LOGFONTW elfLogFont;
WCHAR elfFullName[LF_FULLFACESIZE];
WCHAR elfStyle[LF_FACESIZE];
} ENUMLOGFONTW, FAR* LPENUMLOGFONTW;
typedef ENUMLOGFONTA ENUMLOGFONT;
typedef LPENUMLOGFONTA LPENUMLOGFONT;
typedef struct tagENUMLOGFONTEXA
{
LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE];
BYTE elfScript[LF_FACESIZE];
} ENUMLOGFONTEXA, FAR *LPENUMLOGFONTEXA;
typedef struct tagENUMLOGFONTEXW
{
LOGFONTW elfLogFont;
WCHAR elfFullName[LF_FULLFACESIZE];
WCHAR elfStyle[LF_FACESIZE];
WCHAR elfScript[LF_FACESIZE];
} ENUMLOGFONTEXW, FAR *LPENUMLOGFONTEXW;
typedef ENUMLOGFONTEXA ENUMLOGFONTEX;
typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX;
typedef struct tagPANOSE
{
BYTE bFamilyType;
BYTE bSerifStyle;
BYTE bWeight;
BYTE bProportion;
BYTE bContrast;
BYTE bStrokeVariation;
BYTE bArmStyle;
BYTE bLetterform;
BYTE bMidline;
BYTE bXHeight;
} PANOSE, * LPPANOSE;
typedef struct tagEXTLOGFONTA {
LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE];
DWORD elfVersion;
DWORD elfStyleSize;
DWORD elfMatch;
DWORD elfReserved;
BYTE elfVendorId[ELF_VENDOR_SIZE];
DWORD elfCulture;
PANOSE elfPanose;
} EXTLOGFONTA, *PEXTLOGFONTA, NEAR *NPEXTLOGFONTA, FAR *LPEXTLOGFONTA;
typedef struct tagEXTLOGFONTW {
LOGFONTW elfLogFont;
WCHAR elfFullName[LF_FULLFACESIZE];
WCHAR elfStyle[LF_FACESIZE];
DWORD elfVersion;
DWORD elfStyleSize;
DWORD elfMatch;
DWORD elfReserved;
BYTE elfVendorId[ELF_VENDOR_SIZE];
DWORD elfCulture;
PANOSE elfPanose;
} EXTLOGFONTW, *PEXTLOGFONTW, NEAR *NPEXTLOGFONTW, FAR *LPEXTLOGFONTW;
typedef EXTLOGFONTA EXTLOGFONT;
typedef PEXTLOGFONTA PEXTLOGFONT;
typedef NPEXTLOGFONTA NPEXTLOGFONT;
typedef LPEXTLOGFONTA LPEXTLOGFONT;
typedef struct _devicemodeA {
BYTE dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BYTE dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA;
typedef struct _devicemodeW {
WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
WCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW;
typedef DEVMODEA DEVMODE;
typedef PDEVMODEA PDEVMODE;
typedef NPDEVMODEA NPDEVMODE;
typedef LPDEVMODEA LPDEVMODE;
typedef struct _DISPLAY_DEVICEA {
DWORD cb;
CHAR DeviceName[32];
CHAR DeviceString[128];
DWORD StateFlags;
CHAR DeviceID[128];
CHAR DeviceKey[128];
} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
typedef struct _DISPLAY_DEVICEW {
DWORD cb;
WCHAR DeviceName[32];
WCHAR DeviceString[128];
DWORD StateFlags;
WCHAR DeviceID[128];
WCHAR DeviceKey[128];
} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;
typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
typedef struct DISPLAYCONFIG_RATIONAL
{
UINT32 Numerator;
UINT32 Denominator;
} DISPLAYCONFIG_RATIONAL;
typedef enum
{
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = 1,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = 2,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = 3,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED = 16,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL = 17,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL = 18,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
typedef enum
{
DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0,
DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3,
DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_SCANLINE_ORDERING;
typedef struct DISPLAYCONFIG_2DREGION
{
UINT32 cx;
UINT32 cy;
} DISPLAYCONFIG_2DREGION;
typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO
{
UINT64 pixelRate;
DISPLAYCONFIG_RATIONAL hSyncFreq;
DISPLAYCONFIG_RATIONAL vSyncFreq;
DISPLAYCONFIG_2DREGION activeSize;
DISPLAYCONFIG_2DREGION totalSize;
union
{
struct
{
UINT32 videoStandard : 16;
UINT32 vSyncFreqDivider : 6;
UINT32 reserved : 10;
} AdditionalSignalInfo;
UINT32 videoStandard;
} DUMMYUNIONNAME;
DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
} DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
typedef enum
{
DISPLAYCONFIG_SCALING_IDENTITY = 1,
DISPLAYCONFIG_SCALING_CENTERED = 2,
DISPLAYCONFIG_SCALING_STRETCHED = 3,
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4,
DISPLAYCONFIG_SCALING_CUSTOM = 5,
DISPLAYCONFIG_SCALING_PREFERRED = 128,
DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_SCALING;
typedef enum
{
DISPLAYCONFIG_ROTATION_IDENTITY = 1,
DISPLAYCONFIG_ROTATION_ROTATE90 = 2,
DISPLAYCONFIG_ROTATION_ROTATE180 = 3,
DISPLAYCONFIG_ROTATION_ROTATE270 = 4,
DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_ROTATION;
typedef enum
{
DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1,
DISPLAYCONFIG_MODE_INFO_TYPE_TARGET = 2,
DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE = 3,
DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_MODE_INFO_TYPE;
typedef enum
{
DISPLAYCONFIG_PIXELFORMAT_8BPP = 1,
DISPLAYCONFIG_PIXELFORMAT_16BPP = 2,
DISPLAYCONFIG_PIXELFORMAT_24BPP = 3,
DISPLAYCONFIG_PIXELFORMAT_32BPP = 4,
DISPLAYCONFIG_PIXELFORMAT_NONGDI = 5,
DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xffffffff
} DISPLAYCONFIG_PIXELFORMAT;
typedef struct DISPLAYCONFIG_SOURCE_MODE
{
UINT32 width;
UINT32 height;
DISPLAYCONFIG_PIXELFORMAT pixelFormat;
POINTL position;
} DISPLAYCONFIG_SOURCE_MODE;
typedef struct DISPLAYCONFIG_TARGET_MODE
{
DISPLAYCONFIG_VIDEO_SIGNAL_INFO targetVideoSignalInfo;
} DISPLAYCONFIG_TARGET_MODE;
typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO
{
POINTL PathSourceSize;
RECTL DesktopImageRegion;
RECTL DesktopImageClip;
} DISPLAYCONFIG_DESKTOP_IMAGE_INFO;
typedef struct DISPLAYCONFIG_MODE_INFO
{
DISPLAYCONFIG_MODE_INFO_TYPE infoType;
UINT32 id;
LUID adapterId;
union
{
DISPLAYCONFIG_TARGET_MODE targetMode;
DISPLAYCONFIG_SOURCE_MODE sourceMode;
DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo;
} DUMMYUNIONNAME;
} DISPLAYCONFIG_MODE_INFO;
typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO
{
LUID adapterId;
UINT32 id;
union
{
UINT32 modeInfoIdx;
struct
{
UINT32 cloneGroupId : 16;
UINT32 sourceModeInfoIdx : 16;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
UINT32 statusFlags;
} DISPLAYCONFIG_PATH_SOURCE_INFO;
typedef struct DISPLAYCONFIG_PATH_TARGET_INFO
{
LUID adapterId;
UINT32 id;
union
{
UINT32 modeInfoIdx;
struct
{
UINT32 desktopModeInfoIdx : 16;
UINT32 targetModeInfoIdx : 16;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
DISPLAYCONFIG_ROTATION rotation;
DISPLAYCONFIG_SCALING scaling;
DISPLAYCONFIG_RATIONAL refreshRate;
DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
BOOL targetAvailable;
UINT32 statusFlags;
} DISPLAYCONFIG_PATH_TARGET_INFO;
typedef struct DISPLAYCONFIG_PATH_INFO
{
DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo;
DISPLAYCONFIG_PATH_TARGET_INFO targetInfo;
UINT32 flags;
} DISPLAYCONFIG_PATH_INFO;
typedef enum DISPLAYCONFIG_TOPOLOGY_ID
{
DISPLAYCONFIG_TOPOLOGY_INTERNAL = 0x00000001,
DISPLAYCONFIG_TOPOLOGY_CLONE = 0x00000002,
DISPLAYCONFIG_TOPOLOGY_EXTEND = 0x00000004,
DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 0x00000008,
DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_TOPOLOGY_ID;
typedef enum
{
DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3,
DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4,
DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = 6,
DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION = 7,
DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION = 8,
DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO = 9,
DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE = 10,
DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL = 11,
DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION = 12,
DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION = 13,
DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_DEVICE_INFO_TYPE;
typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER
{
DISPLAYCONFIG_DEVICE_INFO_TYPE type;
UINT32 size;
LUID adapterId;
UINT32 id;
} DISPLAYCONFIG_DEVICE_INFO_HEADER;
typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
WCHAR viewGdiDeviceName[CCHDEVICENAME];
} DISPLAYCONFIG_SOURCE_DEVICE_NAME;
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS
{
union
{
struct
{
UINT32 friendlyNameFromEdid : 1;
UINT32 friendlyNameForced : 1;
UINT32 edidIdsValid : 1;
UINT32 reserved : 29;
} DUMMYSTRUCTNAME;
UINT32 value;
} DUMMYUNIONNAME;
} DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS;
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS flags;
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
UINT16 edidManufactureId;
UINT16 edidProductCodeId;
UINT32 connectorInstance;
WCHAR monitorFriendlyDeviceName[64];
WCHAR monitorDevicePath[128];
} DISPLAYCONFIG_TARGET_DEVICE_NAME;
typedef struct DISPLAYCONFIG_TARGET_PREFERRED_MODE
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
UINT32 width;
UINT32 height;
DISPLAYCONFIG_TARGET_MODE targetMode;
} DISPLAYCONFIG_TARGET_PREFERRED_MODE;
typedef struct DISPLAYCONFIG_ADAPTER_NAME
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
WCHAR adapterDevicePath[128];
} DISPLAYCONFIG_ADAPTER_NAME;
typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE {
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology;
} DISPLAYCONFIG_TARGET_BASE_TYPE;
typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union
{
struct
{
UINT32 bootPersistenceOn : 1;
UINT32 reserved : 31;
} DUMMYSTRUCTNAME;
UINT32 value;
} DUMMYUNIONNAME;
} DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
typedef struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union
{
struct
{
UINT32 disableMonitorVirtualResolution : 1;
UINT32 reserved : 31;
} DUMMYSTRUCTNAME;
UINT32 value;
} DUMMYSTRUCTNAME;
} DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION;
typedef enum _DISPLAYCONFIG_COLOR_ENCODING
{
DISPLAYCONFIG_COLOR_ENCODING_RGB = 0,
DISPLAYCONFIG_COLOR_ENCODING_YCBCR444 = 1,
DISPLAYCONFIG_COLOR_ENCODING_YCBCR422 = 2,
DISPLAYCONFIG_COLOR_ENCODING_YCBCR420 = 3,
DISPLAYCONFIG_COLOR_ENCODING_INTENSITY = 4,
DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_COLOR_ENCODING;
typedef struct _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union
{
struct
{
UINT32 advancedColorSupported :1;
UINT32 advancedColorEnabled :1;
UINT32 wideColorEnforced :1;
UINT32 advancedColorForceDisabled :1;
UINT32 reserved :28;
} DUMMYSTRUCTNAME;
UINT32 value;
} DUMMYUNIONNAME;
DISPLAYCONFIG_COLOR_ENCODING colorEncoding;
UINT32 bitsPerColorChannel;
} DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO;
typedef struct _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union
{
struct
{
UINT32 enableAdvancedColor :1;
UINT32 reserved :31;
} DUMMYSTRUCTNAME;
UINT32 value;
}DUMMYUNIONNAME;
} DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE;
typedef struct _DISPLAYCONFIG_SDR_WHITE_LEVEL
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
ULONG SDRWhiteLevel;
} DISPLAYCONFIG_SDR_WHITE_LEVEL;
typedef struct _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union
{
struct
{
UINT32 isSpecializationEnabled : 1;
UINT32 isSpecializationAvailableForMonitor : 1;
UINT32 isSpecializationAvailableForSystem : 1;
UINT32 reserved : 29;
} DUMMYSTRUCTNAME;
UINT32 value;
} DUMMYUNIONNAME;
} DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION;
typedef struct _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION
{
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union
{
struct
{
UINT32 isSpecializationEnabled : 1;
UINT32 reserved : 31;
} DUMMYSTRUCTNAME;
UINT32 value;
} DUMMYUNIONNAME;
GUID specializationType;
GUID specializationSubType;
WCHAR specializationApplicationName[128];
} DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION;
typedef struct _RGNDATAHEADER {
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
} RGNDATAHEADER, *PRGNDATAHEADER;
typedef struct _RGNDATA {
RGNDATAHEADER rdh;
char Buffer[1];
} RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA;
typedef struct _ABC {
int abcA;
UINT abcB;
int abcC;
} ABC, *PABC, NEAR *NPABC, FAR *LPABC;
typedef struct _ABCFLOAT {
FLOAT abcfA;
FLOAT abcfB;
FLOAT abcfC;
} ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT;
typedef struct _OUTLINETEXTMETRICA {
UINT otmSize;
TEXTMETRICA otmTextMetrics;
BYTE otmFiller;
PANOSE otmPanoseNumber;
UINT otmfsSelection;
UINT otmfsType;
int otmsCharSlopeRise;
int otmsCharSlopeRun;
int otmItalicAngle;
UINT otmEMSquare;
int otmAscent;
int otmDescent;
UINT otmLineGap;
UINT otmsCapEmHeight;
UINT otmsXHeight;
RECT otmrcFontBox;
int otmMacAscent;
int otmMacDescent;
UINT otmMacLineGap;
UINT otmusMinimumPPEM;
POINT otmptSubscriptSize;
POINT otmptSubscriptOffset;
POINT otmptSuperscriptSize;
POINT otmptSuperscriptOffset;
UINT otmsStrikeoutSize;
int otmsStrikeoutPosition;
int otmsUnderscoreSize;
int otmsUnderscorePosition;
PSTR otmpFamilyName;
PSTR otmpFaceName;
PSTR otmpStyleName;
PSTR otmpFullName;
} OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, NEAR *NPOUTLINETEXTMETRICA, FAR *LPOUTLINETEXTMETRICA;
typedef struct _OUTLINETEXTMETRICW {
UINT otmSize;
TEXTMETRICW otmTextMetrics;
BYTE otmFiller;
PANOSE otmPanoseNumber;
UINT otmfsSelection;
UINT otmfsType;
int otmsCharSlopeRise;
int otmsCharSlopeRun;
int otmItalicAngle;
UINT otmEMSquare;
int otmAscent;
int otmDescent;
UINT otmLineGap;
UINT otmsCapEmHeight;
UINT otmsXHeight;
RECT otmrcFontBox;
int otmMacAscent;
int otmMacDescent;
UINT otmMacLineGap;
UINT otmusMinimumPPEM;
POINT otmptSubscriptSize;
POINT otmptSubscriptOffset;
POINT otmptSuperscriptSize;
POINT otmptSuperscriptOffset;
UINT otmsStrikeoutSize;
int otmsStrikeoutPosition;
int otmsUnderscoreSize;
int otmsUnderscorePosition;
PSTR otmpFamilyName;
PSTR otmpFaceName;
PSTR otmpStyleName;
PSTR otmpFullName;
} OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, NEAR *NPOUTLINETEXTMETRICW, FAR *LPOUTLINETEXTMETRICW;
typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC;
typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC;
typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC;
typedef struct tagPOLYTEXTA
{
int x;
int y;
UINT n;
LPCSTR lpstr;
UINT uiFlags;
RECT rcl;
int *pdx;
} POLYTEXTA, *PPOLYTEXTA, NEAR *NPPOLYTEXTA, FAR *LPPOLYTEXTA;
typedef struct tagPOLYTEXTW
{
int x;
int y;
UINT n;
LPCWSTR lpstr;
UINT uiFlags;
RECT rcl;
int *pdx;
} POLYTEXTW, *PPOLYTEXTW, NEAR *NPPOLYTEXTW, FAR *LPPOLYTEXTW;
typedef POLYTEXTA POLYTEXT;
typedef PPOLYTEXTA PPOLYTEXT;
typedef NPPOLYTEXTA NPPOLYTEXT;
typedef LPPOLYTEXTA LPPOLYTEXT;
typedef struct _FIXED {
WORD fract;
short value;
} FIXED;
typedef struct _MAT2 {
FIXED eM11;
FIXED eM12;
FIXED eM21;
FIXED eM22;
} MAT2, FAR *LPMAT2;
typedef struct _GLYPHMETRICS {
UINT gmBlackBoxX;
UINT gmBlackBoxY;
POINT gmptGlyphOrigin;
short gmCellIncX;
short gmCellIncY;
} GLYPHMETRICS, FAR *LPGLYPHMETRICS;
typedef struct tagPOINTFX
{
FIXED x;
FIXED y;
} POINTFX, FAR* LPPOINTFX;
typedef struct tagTTPOLYCURVE
{
WORD wType;
WORD cpfx;
POINTFX apfx[1];
} TTPOLYCURVE, FAR* LPTTPOLYCURVE;
typedef struct tagTTPOLYGONHEADER
{
DWORD cb;
DWORD dwType;
POINTFX pfxStart;
} TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER;
typedef struct tagGCP_RESULTSA
{
DWORD lStructSize;
LPSTR lpOutString;
UINT FAR *lpOrder;
int FAR *lpDx;
int FAR *lpCaretPos;
LPSTR lpClass;
LPWSTR lpGlyphs;
UINT nGlyphs;
int nMaxFit;
} GCP_RESULTSA, FAR* LPGCP_RESULTSA;
typedef struct tagGCP_RESULTSW
{
DWORD lStructSize;
LPWSTR lpOutString;
UINT FAR *lpOrder;
int FAR *lpDx;
int FAR *lpCaretPos;
LPSTR lpClass;
LPWSTR lpGlyphs;
UINT nGlyphs;
int nMaxFit;
} GCP_RESULTSW, FAR* LPGCP_RESULTSW;
typedef GCP_RESULTSA GCP_RESULTS;
typedef LPGCP_RESULTSA LPGCP_RESULTS;
typedef struct _RASTERIZER_STATUS {
short nSize;
short wFlags;
short nLanguageID;
} RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS;
typedef struct tagPIXELFORMATDESCRIPTOR
{
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerType;
BYTE bReserved;
DWORD dwLayerMask;
DWORD dwVisibleMask;
DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR;
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
typedef OLDFONTENUMPROCA FONTENUMPROCA;
typedef OLDFONTENUMPROCW FONTENUMPROCW;
typedef FONTENUMPROCA FONTENUMPROC;
typedef int (CALLBACK* GOBJENUMPROC)(LPVOID, LPARAM);
typedef VOID (CALLBACK* LINEDDAPROC)(int, int, LPARAM);
WINGDIAPI int WINAPI AddFontResourceA(_In_ LPCSTR);
WINGDIAPI int WINAPI AddFontResourceW(_In_ LPCWSTR);
WINGDIAPI BOOL WINAPI AnimatePalette( _In_ HPALETTE hPal, _In_ UINT iStartIndex, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY * ppe);
WINGDIAPI BOOL WINAPI Arc( _In_ HDC hdc, _In_ int x1, _In_ int y1, _In_ int x2, _In_ int y2, _In_ int x3, _In_ int y3, _In_ int x4, _In_ int y4);
WINGDIAPI BOOL WINAPI BitBlt( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ int cx, _In_ int cy, _In_opt_ HDC hdcSrc, _In_ int x1, _In_ int y1, _In_ DWORD rop);
WINGDIAPI BOOL WINAPI CancelDC( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI Chord( _In_ HDC hdc, _In_ int x1, _In_ int y1, _In_ int x2, _In_ int y2, _In_ int x3, _In_ int y3, _In_ int x4, _In_ int y4);
WINGDIAPI int WINAPI ChoosePixelFormat( _In_ HDC hdc, _In_ CONST PIXELFORMATDESCRIPTOR *ppfd);
WINGDIAPI HMETAFILE WINAPI CloseMetaFile( _In_ HDC hdc);
WINGDIAPI int WINAPI CombineRgn( _In_opt_ HRGN hrgnDst, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int iMode);
WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( _In_ HMETAFILE, _In_opt_ LPCSTR);
WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( _In_ HMETAFILE, _In_opt_ LPCWSTR);
WINGDIAPI HBITMAP WINAPI CreateBitmap( _In_ int nWidth, _In_ int nHeight, _In_ UINT nPlanes, _In_ UINT nBitCount, _In_opt_ CONST VOID *lpBits);
WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( _In_ CONST BITMAP *pbm);
WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( _In_ CONST LOGBRUSH *plbrush);
WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( _In_ HDC hdc, _In_ int cx, _In_ int cy);
WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( _In_ HDC hdc, _In_ int cx, _In_ int cy);
WINGDIAPI HDC WINAPI CreateCompatibleDC( _In_opt_ HDC hdc);
WINGDIAPI HDC WINAPI CreateDCA( _In_opt_ LPCSTR pwszDriver, _In_opt_ LPCSTR pwszDevice, _In_opt_ LPCSTR pszPort, _In_opt_ CONST DEVMODEA * pdm);
WINGDIAPI HDC WINAPI CreateDCW( _In_opt_ LPCWSTR pwszDriver, _In_opt_ LPCWSTR pwszDevice, _In_opt_ LPCWSTR pszPort, _In_opt_ CONST DEVMODEW * pdm);
WINGDIAPI HBITMAP WINAPI CreateDIBitmap( _In_ HDC hdc, _In_opt_ CONST BITMAPINFOHEADER *pbmih, _In_ DWORD flInit, _In_opt_ CONST VOID *pjBits, _In_opt_ CONST BITMAPINFO *pbmi, _In_ UINT iUsage);
WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( _In_ HGLOBAL h, _In_ UINT iUsage);
WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( _In_ CONST VOID *lpPackedDIB, _In_ UINT iUsage);
WINGDIAPI HRGN WINAPI CreateEllipticRgn( _In_ int x1, _In_ int y1, _In_ int x2, _In_ int y2);
WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( _In_ CONST RECT *lprect);
WINGDIAPI HFONT WINAPI CreateFontIndirectA( _In_ CONST LOGFONTA *lplf);
WINGDIAPI HFONT WINAPI CreateFontIndirectW( _In_ CONST LOGFONTW *lplf);
WINGDIAPI HFONT WINAPI CreateFontA( _In_ int cHeight, _In_ int cWidth, _In_ int cEscapement, _In_ int cOrientation, _In_ int cWeight, _In_ DWORD bItalic,
_In_ DWORD bUnderline, _In_ DWORD bStrikeOut, _In_ DWORD iCharSet, _In_ DWORD iOutPrecision, _In_ DWORD iClipPrecision,
_In_ DWORD iQuality, _In_ DWORD iPitchAndFamily, _In_opt_ LPCSTR pszFaceName);
WINGDIAPI HFONT WINAPI CreateFontW( _In_ int cHeight, _In_ int cWidth, _In_ int cEscapement, _In_ int cOrientation, _In_ int cWeight, _In_ DWORD bItalic,
_In_ DWORD bUnderline, _In_ DWORD bStrikeOut, _In_ DWORD iCharSet, _In_ DWORD iOutPrecision, _In_ DWORD iClipPrecision,
_In_ DWORD iQuality, _In_ DWORD iPitchAndFamily, _In_opt_ LPCWSTR pszFaceName);
WINGDIAPI HBRUSH WINAPI CreateHatchBrush( _In_ int iHatch, _In_ COLORREF color);
WINGDIAPI HDC WINAPI CreateICA( _In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR pszDevice, _In_opt_ LPCSTR pszPort, _In_opt_ CONST DEVMODEA * pdm);
WINGDIAPI HDC WINAPI CreateICW( _In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR pszDevice, _In_opt_ LPCWSTR pszPort, _In_opt_ CONST DEVMODEW * pdm);
WINGDIAPI HDC WINAPI CreateMetaFileA( _In_opt_ LPCSTR pszFile);
WINGDIAPI HDC WINAPI CreateMetaFileW( _In_opt_ LPCWSTR pszFile);
WINGDIAPI HPALETTE WINAPI CreatePalette( _In_reads_(_Inexpressible_(2*sizeof(WORD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) CONST LOGPALETTE * plpal);
WINGDIAPI HPEN WINAPI CreatePen( _In_ int iStyle, _In_ int cWidth, _In_ COLORREF color);
WINGDIAPI HPEN WINAPI CreatePenIndirect( _In_ CONST LOGPEN *plpen);
WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( _In_ CONST POINT *pptl,
_In_reads_(cPoly) CONST INT *pc,
_In_ int cPoly,
_In_ int iMode);
WINGDIAPI HBRUSH WINAPI CreatePatternBrush( _In_ HBITMAP hbm);
WINGDIAPI HRGN WINAPI CreateRectRgn( _In_ int x1, _In_ int y1, _In_ int x2, _In_ int y2);
WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( _In_ CONST RECT *lprect);
WINGDIAPI HRGN WINAPI CreateRoundRectRgn( _In_ int x1, _In_ int y1, _In_ int x2, _In_ int y2, _In_ int w, _In_ int h);
WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( _In_ DWORD fdwHidden, _In_ LPCSTR lpszFont, _In_ LPCSTR lpszFile, _In_opt_ LPCSTR lpszPath);
WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( _In_ DWORD fdwHidden, _In_ LPCWSTR lpszFont, _In_ LPCWSTR lpszFile, _In_opt_ LPCWSTR lpszPath);
WINGDIAPI HBRUSH WINAPI CreateSolidBrush( _In_ COLORREF color);
WINGDIAPI BOOL WINAPI DeleteDC( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI DeleteMetaFile( _In_ HMETAFILE hmf);
WINGDIAPI BOOL WINAPI DeleteObject( _In_ HGDIOBJ ho);
WINGDIAPI int WINAPI DescribePixelFormat( _In_ HDC hdc,
_In_ int iPixelFormat,
_In_ UINT nBytes,
_Out_writes_bytes_opt_(nBytes) LPPIXELFORMATDESCRIPTOR ppfd);
typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT);
typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE);
WINSPOOLAPI
int
WINAPI
DeviceCapabilitiesA(
_In_ LPCSTR pDevice,
_In_opt_ LPCSTR pPort,
_In_ WORD fwCapability,
_Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput,
_In_opt_ CONST DEVMODEA *pDevMode
);
WINSPOOLAPI
int
WINAPI
DeviceCapabilitiesW(
_In_ LPCWSTR pDevice,
_In_opt_ LPCWSTR pPort,
_In_ WORD fwCapability,
_Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput,
_In_opt_ CONST DEVMODEW *pDevMode
);
WINGDIAPI int WINAPI DrawEscape( _In_ HDC hdc,
_In_ int iEscape,
_In_ int cjIn,
_In_reads_bytes_opt_(cjIn) LPCSTR lpIn);
WINGDIAPI BOOL WINAPI Ellipse( _In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
WINGDIAPI int WINAPI EnumFontFamiliesExA( _In_ HDC hdc, _In_ LPLOGFONTA lpLogfont, _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam, _In_ DWORD dwFlags);
WINGDIAPI int WINAPI EnumFontFamiliesExW( _In_ HDC hdc, _In_ LPLOGFONTW lpLogfont, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam, _In_ DWORD dwFlags);
WINGDIAPI int WINAPI EnumFontFamiliesA( _In_ HDC hdc, _In_opt_ LPCSTR lpLogfont, _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontFamiliesW( _In_ HDC hdc, _In_opt_ LPCWSTR lpLogfont, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontsA( _In_ HDC hdc, _In_opt_ LPCSTR lpLogfont, _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontsW( _In_ HDC hdc, _In_opt_ LPCWSTR lpLogfont, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumObjects( _In_ HDC hdc, _In_ int nType, _In_ GOBJENUMPROC lpFunc, _In_ LPARAM lParam);
WINGDIAPI BOOL WINAPI EqualRgn( _In_ HRGN hrgn1, _In_ HRGN hrgn2);
WINGDIAPI int WINAPI Escape( _In_ HDC hdc,
_In_ int iEscape,
_In_ int cjIn,
_In_reads_bytes_opt_(cjIn) LPCSTR pvIn,
_Out_opt_ LPVOID pvOut);
WINGDIAPI int WINAPI ExtEscape( _In_ HDC hdc,
_In_ int iEscape,
_In_ int cjInput,
_In_reads_bytes_opt_(cjInput) LPCSTR lpInData,
_In_ int cjOutput,
_Out_writes_bytes_opt_(cjOutput) LPSTR lpOutData);
WINGDIAPI int WINAPI ExcludeClipRect( _In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
WINGDIAPI HRGN WINAPI ExtCreateRegion( _In_opt_ CONST XFORM * lpx, _In_ DWORD nCount, _In_reads_bytes_(nCount) CONST RGNDATA * lpData);
WINGDIAPI BOOL WINAPI ExtFloodFill( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ COLORREF color, _In_ UINT type);
WINGDIAPI BOOL WINAPI FillRgn( _In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr);
WINGDIAPI BOOL WINAPI FloodFill( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ COLORREF color);
WINGDIAPI BOOL WINAPI FrameRgn( _In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr, _In_ int w, _In_ int h);
WINGDIAPI int WINAPI GetROP2( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
WINGDIAPI COLORREF WINAPI GetBkColor( _In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetDCBrushColor( _In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetDCPenColor( _In_ HDC hdc);
WINGDIAPI
int
WINAPI
GetBkMode(
_In_ HDC hdc
);
WINGDIAPI
LONG
WINAPI
GetBitmapBits(
_In_ HBITMAP hbit,
_In_ LONG cb,
_Out_writes_bytes_(cb) LPVOID lpvBits
);
WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( _In_ HBITMAP hbit, _Out_ LPSIZE lpsize);
WINGDIAPI UINT WINAPI GetBoundsRect( _In_ HDC hdc, _Out_ LPRECT lprect, _In_ UINT flags);
WINGDIAPI BOOL WINAPI GetBrushOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI GetCharWidthA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidthW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidth32A( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidth32W( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( _In_ HDC hdc,
_In_ UINT wFirst,
_In_ UINT wLast,
_Out_writes_(wLast - wFirst + 1) LPABC lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( _In_ HDC hdc,
_In_ UINT wFirst,
_In_ UINT wLast,
_Out_writes_(wLast - wFirst + 1) LPABC lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
WINGDIAPI int WINAPI GetClipBox( _In_ HDC hdc, _Out_ LPRECT lprect);
WINGDIAPI int WINAPI GetClipRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI int WINAPI GetMetaRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( _In_ HDC hdc, _In_ UINT type);
WINGDIAPI BOOL WINAPI GetCurrentPositionEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI int WINAPI GetDeviceCaps( _In_opt_ HDC hdc, _In_ int index);
WINGDIAPI int WINAPI GetDIBits( _In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines,
_Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER)lpbmi, _Inout_) LPBITMAPINFO lpbmi, _In_ UINT usage);
_Success_(return != GDI_ERROR)
WINGDIAPI DWORD WINAPI GetFontData ( _In_ HDC hdc,
_In_ DWORD dwTable,
_In_ DWORD dwOffset,
_Out_writes_bytes_to_opt_(cjBuffer, return) PVOID pvBuffer,
_In_ DWORD cjBuffer
);
WINGDIAPI DWORD WINAPI GetGlyphOutlineA( _In_ HDC hdc,
_In_ UINT uChar,
_In_ UINT fuFormat,
_Out_ LPGLYPHMETRICS lpgm,
_In_ DWORD cjBuffer,
_Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
_In_ CONST MAT2 *lpmat2
);
WINGDIAPI DWORD WINAPI GetGlyphOutlineW( _In_ HDC hdc,
_In_ UINT uChar,
_In_ UINT fuFormat,
_Out_ LPGLYPHMETRICS lpgm,
_In_ DWORD cjBuffer,
_Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
_In_ CONST MAT2 *lpmat2
);
WINGDIAPI int WINAPI GetGraphicsMode( _In_ HDC hdc);
WINGDIAPI int WINAPI GetMapMode( _In_ HDC hdc);
WINGDIAPI UINT WINAPI GetMetaFileBitsEx(_In_ HMETAFILE hMF, _In_ UINT cbBuffer, _Out_writes_bytes_opt_(cbBuffer) LPVOID lpData);
WINGDIAPI HMETAFILE WINAPI GetMetaFileA( _In_ LPCSTR lpName);
WINGDIAPI HMETAFILE WINAPI GetMetaFileW( _In_ LPCWSTR lpName);
WINGDIAPI COLORREF WINAPI GetNearestColor( _In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI UINT WINAPI GetNearestPaletteIndex( _In_ HPALETTE h, _In_ COLORREF color);
_Post_satisfies_((return == 0) || (return >= GDI_MIN_OBJ_TYPE && return <= GDI_MAX_OBJ_TYPE))
WINGDIAPI DWORD WINAPI GetObjectType( _In_ HGDIOBJ h);
WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( _In_ HDC hdc,
_In_ UINT cjCopy,
_Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICA potm);
WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( _In_ HDC hdc,
_In_ UINT cjCopy,
_Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICW potm);
_Ret_range_(0,cEntries)
WINGDIAPI UINT WINAPI GetPaletteEntries( _In_ HPALETTE hpal,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_to_opt_(cEntries,return) LPPALETTEENTRY pPalEntries);
WINGDIAPI COLORREF WINAPI GetPixel( _In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI int WINAPI GetPixelFormat( _In_ HDC hdc);
WINGDIAPI int WINAPI GetPolyFillMode( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetRasterizerCaps( _Out_writes_bytes_(cjBytes) LPRASTERIZER_STATUS lpraststat,
_In_ UINT cjBytes);
WINGDIAPI int WINAPI GetRandomRgn (_In_ HDC hdc, _In_ HRGN hrgn, _In_ INT i);
WINGDIAPI DWORD WINAPI GetRegionData( _In_ HRGN hrgn,
_In_ DWORD nCount,
_Out_writes_bytes_to_opt_(nCount, return) LPRGNDATA lpRgnData);
WINGDIAPI int WINAPI GetRgnBox( _In_ HRGN hrgn, _Out_ LPRECT lprc);
WINGDIAPI HGDIOBJ WINAPI GetStockObject( _In_ int i);
WINGDIAPI int WINAPI GetStretchBltMode(_In_ HDC hdc);
WINGDIAPI
UINT
WINAPI
GetSystemPaletteEntries(
_In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_opt_(cEntries) LPPALETTEENTRY pPalEntries
);
WINGDIAPI UINT WINAPI GetSystemPaletteUse(_In_ HDC hdc);
WINGDIAPI int WINAPI GetTextCharacterExtra(_In_ HDC hdc);
WINGDIAPI UINT WINAPI GetTextAlign(_In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetTextColor(_In_ HDC hdc);
WINGDIAPI
BOOL
APIENTRY
GetTextExtentPointA(
_In_ HDC hdc,
_In_reads_(c) LPCSTR lpString,
_In_ int c,
_Out_ LPSIZE lpsz
);
WINGDIAPI
BOOL
APIENTRY
GetTextExtentPointW(
_In_ HDC hdc,
_In_reads_(c) LPCWSTR lpString,
_In_ int c,
_Out_ LPSIZE lpsz
);
WINGDIAPI
BOOL
APIENTRY
GetTextExtentPoint32A(
_In_ HDC hdc,
_In_reads_(c) LPCSTR lpString,
_In_ int c,
_Out_ LPSIZE psizl
);
WINGDIAPI
BOOL
APIENTRY
GetTextExtentPoint32W(
_In_ HDC hdc,
_In_reads_(c) LPCWSTR lpString,
_In_ int c,
_Out_ LPSIZE psizl
);
WINGDIAPI
BOOL
APIENTRY
GetTextExtentExPointA(
_In_ HDC hdc,
_In_reads_(cchString) LPCSTR lpszString,
_In_ int cchString,
_In_ int nMaxExtent,
_Out_opt_ LPINT lpnFit,
_Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
_Out_ LPSIZE lpSize
);
WINGDIAPI
BOOL
APIENTRY
GetTextExtentExPointW(
_In_ HDC hdc,
_In_reads_(cchString) LPCWSTR lpszString,
_In_ int cchString,
_In_ int nMaxExtent,
_Out_opt_ LPINT lpnFit,
_Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
_Out_ LPSIZE lpSize
);
WINGDIAPI int WINAPI GetTextCharset( _In_ HDC hdc);
WINGDIAPI int WINAPI GetTextCharsetInfo( _In_ HDC hdc, _Out_opt_ LPFONTSIGNATURE lpSig, _In_ DWORD dwFlags);
WINGDIAPI BOOL WINAPI TranslateCharsetInfo( _Inout_ DWORD FAR *lpSrc, _Out_ LPCHARSETINFO lpCs, _In_ DWORD dwFlags);
WINGDIAPI DWORD WINAPI GetFontLanguageInfo( _In_ HDC hdc);
WINGDIAPI DWORD WINAPI GetCharacterPlacementA( _In_ HDC hdc, _In_reads_(nCount) LPCSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSA lpResults, _In_ DWORD dwFlags);
WINGDIAPI DWORD WINAPI GetCharacterPlacementW( _In_ HDC hdc, _In_reads_(nCount) LPCWSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSW lpResults, _In_ DWORD dwFlags);
typedef struct tagWCRANGE
{
WCHAR wcLow;
USHORT cGlyphs;
} WCRANGE, *PWCRANGE,FAR *LPWCRANGE;
typedef struct tagGLYPHSET
{
DWORD cbThis;
DWORD flAccel;
DWORD cGlyphsSupported;
DWORD cRanges;
WCRANGE ranges[1];
} GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET;
WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( _In_ HDC hdc, _Out_opt_ LPGLYPHSET lpgs);
WINGDIAPI DWORD WINAPI GetGlyphIndicesA( _In_ HDC hdc, _In_reads_(c) LPCSTR lpstr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
WINGDIAPI DWORD WINAPI GetGlyphIndicesW( _In_ HDC hdc, _In_reads_(c) LPCWSTR lpstr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
WINGDIAPI BOOL WINAPI GetTextExtentPointI(_In_ HDC hdc, _In_reads_(cgi) LPWORD pgiIn, _In_ int cgi, _Out_ LPSIZE psize);
WINGDIAPI BOOL WINAPI GetTextExtentExPointI ( _In_ HDC hdc,
_In_reads_(cwchString) LPWORD lpwszString,
_In_ int cwchString,
_In_ int nMaxExtent,
_Out_opt_ LPINT lpnFit,
_Out_writes_to_opt_(cwchString, *lpnFit) LPINT lpnDx,
_Out_ LPSIZE lpSize
);
WINGDIAPI BOOL WINAPI GetCharWidthI( _In_ HDC hdc,
_In_ UINT giFirst,
_In_ UINT cgi,
_In_reads_opt_(cgi) LPWORD pgi,
_Out_writes_(cgi) LPINT piWidths
);
WINGDIAPI BOOL WINAPI GetCharABCWidthsI( _In_ HDC hdc,
_In_ UINT giFirst,
_In_ UINT cgi,
_In_reads_opt_(cgi) LPWORD pgi,
_Out_writes_(cgi) LPABC pabc
);
typedef struct tagDESIGNVECTOR
{
DWORD dvReserved;
DWORD dvNumAxes;
LONG dvValues[MM_MAX_NUMAXES];
} DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR;
WINGDIAPI int WINAPI AddFontResourceExA( _In_ LPCSTR name, _In_ DWORD fl, _Reserved_ PVOID res);
WINGDIAPI int WINAPI AddFontResourceExW( _In_ LPCWSTR name, _In_ DWORD fl, _Reserved_ PVOID res);
WINGDIAPI BOOL WINAPI RemoveFontResourceExA( _In_ LPCSTR name, _In_ DWORD fl, _Reserved_ PVOID pdv);
WINGDIAPI BOOL WINAPI RemoveFontResourceExW( _In_ LPCWSTR name, _In_ DWORD fl, _Reserved_ PVOID pdv);
WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( _In_reads_bytes_(cjSize) PVOID pFileView,
_In_ DWORD cjSize,
_Reserved_ PVOID pvResrved,
_In_ DWORD* pNumFonts);
WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( _In_ HANDLE h);
typedef struct tagAXISINFOA
{
LONG axMinValue;
LONG axMaxValue;
BYTE axAxisName[MM_MAX_AXES_NAMELEN];
} AXISINFOA, *PAXISINFOA, FAR *LPAXISINFOA;
typedef struct tagAXISINFOW
{
LONG axMinValue;
LONG axMaxValue;
WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
} AXISINFOW, *PAXISINFOW, FAR *LPAXISINFOW;
typedef AXISINFOA AXISINFO;
typedef PAXISINFOA PAXISINFO;
typedef LPAXISINFOA LPAXISINFO;
typedef struct tagAXESLISTA
{
DWORD axlReserved;
DWORD axlNumAxes;
AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
} AXESLISTA, *PAXESLISTA, FAR *LPAXESLISTA;
typedef struct tagAXESLISTW
{
DWORD axlReserved;
DWORD axlNumAxes;
AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
} AXESLISTW, *PAXESLISTW, FAR *LPAXESLISTW;
typedef AXESLISTA AXESLIST;
typedef PAXESLISTA PAXESLIST;
typedef LPAXESLISTA LPAXESLIST;
typedef struct tagENUMLOGFONTEXDVA
{
ENUMLOGFONTEXA elfEnumLogfontEx;
DESIGNVECTOR elfDesignVector;
} ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, FAR *LPENUMLOGFONTEXDVA;
typedef struct tagENUMLOGFONTEXDVW
{
ENUMLOGFONTEXW elfEnumLogfontEx;
DESIGNVECTOR elfDesignVector;
} ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, FAR *LPENUMLOGFONTEXDVW;
typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
WINGDIAPI HFONT WINAPI CreateFontIndirectExA( _In_ CONST ENUMLOGFONTEXDVA *);
WINGDIAPI HFONT WINAPI CreateFontIndirectExW( _In_ CONST ENUMLOGFONTEXDVW *);
typedef struct tagENUMTEXTMETRICA
{
NEWTEXTMETRICEXA etmNewTextMetricEx;
AXESLISTA etmAxesList;
} ENUMTEXTMETRICA, *PENUMTEXTMETRICA, FAR *LPENUMTEXTMETRICA;
typedef struct tagENUMTEXTMETRICW
{
NEWTEXTMETRICEXW etmNewTextMetricEx;
AXESLISTW etmAxesList;
} ENUMTEXTMETRICW, *PENUMTEXTMETRICW, FAR *LPENUMTEXTMETRICW;
typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
WINGDIAPI BOOL WINAPI GetViewportExtEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
WINGDIAPI BOOL WINAPI GetViewportOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppoint);
WINGDIAPI BOOL WINAPI GetWindowExtEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
WINGDIAPI BOOL WINAPI GetWindowOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppoint);
WINGDIAPI int WINAPI IntersectClipRect( _In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
WINGDIAPI BOOL WINAPI InvertRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI BOOL WINAPI LineDDA( _In_ int xStart, _In_ int yStart, _In_ int xEnd, _In_ int yEnd, _In_ LINEDDAPROC lpProc, _In_opt_ LPARAM data);
WINGDIAPI BOOL WINAPI LineTo( _In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI MaskBlt( _In_ HDC hdcDest, _In_ int xDest, _In_ int yDest, _In_ int width, _In_ int height,
_In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ HBITMAP hbmMask, _In_ int xMask, _In_ int yMask, _In_ DWORD rop);
WINGDIAPI BOOL WINAPI PlgBlt( _In_ HDC hdcDest, _In_reads_(3) CONST POINT * lpPoint, _In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ int width,
_In_ int height, _In_opt_ HBITMAP hbmMask, _In_ int xMask, _In_ int yMask);
WINGDIAPI int WINAPI OffsetClipRgn(_In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI int WINAPI OffsetRgn(_In_ HRGN hrgn, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI PatBlt(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ int w, _In_ int h, _In_ DWORD rop);
WINGDIAPI BOOL WINAPI Pie(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom, _In_ int xr1, _In_ int yr1, _In_ int xr2, _In_ int yr2);
WINGDIAPI BOOL WINAPI PlayMetaFile(_In_ HDC hdc, _In_ HMETAFILE hmf);
WINGDIAPI BOOL WINAPI PaintRgn(_In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI BOOL WINAPI PolyPolygon(_In_ HDC hdc, _In_ CONST POINT *apt, _In_reads_(csz) CONST INT *asz, _In_ int csz);
WINGDIAPI BOOL WINAPI PtInRegion(_In_ HRGN hrgn, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI PtVisible(_In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI RectInRegion(_In_ HRGN hrgn, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI RectVisible(_In_ HDC hdc, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI Rectangle(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
WINGDIAPI BOOL WINAPI RestoreDC(_In_ HDC hdc, _In_ int nSavedDC);
WINGDIAPI HDC WINAPI ResetDCA(_In_ HDC hdc, _In_ CONST DEVMODEA * lpdm);
WINGDIAPI HDC WINAPI ResetDCW(_In_ HDC hdc, _In_ CONST DEVMODEW * lpdm);
WINGDIAPI UINT WINAPI RealizePalette(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI RemoveFontResourceA(_In_ LPCSTR lpFileName);
WINGDIAPI BOOL WINAPI RemoveFontResourceW(_In_ LPCWSTR lpFileName);
WINGDIAPI BOOL WINAPI RoundRect(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom, _In_ int width, _In_ int height);
WINGDIAPI BOOL WINAPI ResizePalette(_In_ HPALETTE hpal, _In_ UINT n);
WINGDIAPI int WINAPI SaveDC(_In_ HDC hdc);
WINGDIAPI int WINAPI SelectClipRgn(_In_ HDC hdc, _In_opt_ HRGN hrgn);
WINGDIAPI int WINAPI ExtSelectClipRgn(_In_ HDC hdc, _In_opt_ HRGN hrgn, _In_ int mode);
WINGDIAPI int WINAPI SetMetaRgn(_In_ HDC hdc);
WINGDIAPI HGDIOBJ WINAPI SelectObject(_In_ HDC hdc, _In_ HGDIOBJ h);
WINGDIAPI HPALETTE WINAPI SelectPalette(_In_ HDC hdc, _In_ HPALETTE hPal, _In_ BOOL bForceBkgd);
WINGDIAPI COLORREF WINAPI SetBkColor(_In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI COLORREF WINAPI SetDCBrushColor(_In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI COLORREF WINAPI SetDCPenColor(_In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI int WINAPI SetBkMode(_In_ HDC hdc, _In_ int mode);
WINGDIAPI
LONG WINAPI
SetBitmapBits(
_In_ HBITMAP hbm,
_In_ DWORD cb,
_In_reads_bytes_(cb) CONST VOID *pvBits);
WINGDIAPI UINT WINAPI SetBoundsRect(_In_ HDC hdc, _In_opt_ CONST RECT * lprect, _In_ UINT flags);
WINGDIAPI int WINAPI SetDIBits(_In_opt_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines, _In_ CONST VOID *lpBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT ColorUse);
WINGDIAPI int WINAPI SetDIBitsToDevice(_In_ HDC hdc, _In_ int xDest, _In_ int yDest, _In_ DWORD w, _In_ DWORD h, _In_ int xSrc,
_In_ int ySrc, _In_ UINT StartScan, _In_ UINT cLines, _In_ CONST VOID * lpvBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT ColorUse);
WINGDIAPI DWORD WINAPI SetMapperFlags(_In_ HDC hdc, _In_ DWORD flags);
WINGDIAPI int WINAPI SetGraphicsMode(_In_ HDC hdc, _In_ int iMode);
WINGDIAPI int WINAPI SetMapMode(_In_ HDC hdc, _In_ int iMode);
WINGDIAPI DWORD WINAPI SetLayout(_In_ HDC hdc, _In_ DWORD l);
WINGDIAPI DWORD WINAPI GetLayout(_In_ HDC hdc);
WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(_In_ UINT cbBuffer, _In_reads_bytes_(cbBuffer) CONST BYTE *lpData);
WINGDIAPI UINT WINAPI SetPaletteEntries( _In_ HPALETTE hpal,
_In_ UINT iStart,
_In_ UINT cEntries,
_In_reads_(cEntries) CONST PALETTEENTRY *pPalEntries);
WINGDIAPI COLORREF WINAPI SetPixel(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ COLORREF color);
WINGDIAPI BOOL WINAPI SetPixelV(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ COLORREF color);
WINGDIAPI BOOL WINAPI SetPixelFormat(_In_ HDC hdc, _In_ int format, _In_ CONST PIXELFORMATDESCRIPTOR * ppfd);
WINGDIAPI int WINAPI SetPolyFillMode(_In_ HDC hdc, _In_ int mode);
WINGDIAPI BOOL WINAPI StretchBlt(_In_ HDC hdcDest, _In_ int xDest, _In_ int yDest, _In_ int wDest, _In_ int hDest, _In_opt_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ int wSrc, _In_ int hSrc, _In_ DWORD rop);
WINGDIAPI BOOL WINAPI SetRectRgn(_In_ HRGN hrgn, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
WINGDIAPI int WINAPI StretchDIBits(_In_ HDC hdc, _In_ int xDest, _In_ int yDest, _In_ int DestWidth, _In_ int DestHeight, _In_ int xSrc, _In_ int ySrc, _In_ int SrcWidth, _In_ int SrcHeight,
_In_opt_ CONST VOID * lpBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT iUsage, _In_ DWORD rop);
WINGDIAPI int WINAPI SetROP2(_In_ HDC hdc, _In_ int rop2);
WINGDIAPI int WINAPI SetStretchBltMode(_In_ HDC hdc, _In_ int mode);
WINGDIAPI UINT WINAPI SetSystemPaletteUse(_In_ HDC hdc, _In_ UINT use);
WINGDIAPI int WINAPI SetTextCharacterExtra(_In_ HDC hdc, _In_ int extra);
WINGDIAPI COLORREF WINAPI SetTextColor(_In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI UINT WINAPI SetTextAlign(_In_ HDC hdc, _In_ UINT align);
WINGDIAPI BOOL WINAPI SetTextJustification(_In_ HDC hdc, _In_ int extra, _In_ int count);
WINGDIAPI BOOL WINAPI UpdateColors(_In_ HDC hdc);
typedef USHORT COLOR16;
typedef struct _TRIVERTEX
{
LONG x;
LONG y;
COLOR16 Red;
COLOR16 Green;
COLOR16 Blue;
COLOR16 Alpha;
}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
typedef struct _GRADIENT_TRIANGLE
{
ULONG Vertex1;
ULONG Vertex2;
ULONG Vertex3;
} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
typedef struct _GRADIENT_RECT
{
ULONG UpperLeft;
ULONG LowerRight;
}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
typedef struct _BLENDFUNCTION
{
BYTE BlendOp;
BYTE BlendFlags;
BYTE SourceConstantAlpha;
BYTE AlphaFormat;
}BLENDFUNCTION,*PBLENDFUNCTION;
WINGDIAPI BOOL WINAPI AlphaBlend(
_In_ HDC hdcDest,
_In_ int xoriginDest,
_In_ int yoriginDest,
_In_ int wDest,
_In_ int hDest,
_In_ HDC hdcSrc,
_In_ int xoriginSrc,
_In_ int yoriginSrc,
_In_ int wSrc,
_In_ int hSrc,
_In_ BLENDFUNCTION ftn);
WINGDIAPI BOOL WINAPI TransparentBlt(
_In_ HDC hdcDest,
_In_ int xoriginDest,
_In_ int yoriginDest,
_In_ int wDest,
_In_ int hDest,
_In_ HDC hdcSrc,
_In_ int xoriginSrc,
_In_ int yoriginSrc,
_In_ int wSrc,
_In_ int hSrc,
_In_ UINT crTransparent);
WINGDIAPI
BOOL
WINAPI
GradientFill(
_In_ HDC hdc,
_In_reads_(nVertex) PTRIVERTEX pVertex,
_In_ ULONG nVertex,
_In_ PVOID pMesh,
_In_ ULONG nMesh,
_In_ ULONG ulMode
);
WINGDIAPI BOOL WINAPI GdiAlphaBlend(_In_ HDC hdcDest, _In_ int xoriginDest, _In_ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc, _In_ int xoriginSrc, _In_ int yoriginSrc, _In_ int wSrc, _In_ int hSrc, _In_ BLENDFUNCTION ftn);
WINGDIAPI BOOL WINAPI GdiTransparentBlt(_In_ HDC hdcDest,_In_ int xoriginDest, _In_ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc,
_In_ int xoriginSrc, _In_ int yoriginSrc, _In_ int wSrc, _In_ int hSrc, _In_ UINT crTransparent);
WINGDIAPI BOOL WINAPI GdiGradientFill( _In_ HDC hdc,
_In_reads_(nVertex) PTRIVERTEX pVertex,
_In_ ULONG nVertex,
_In_ PVOID pMesh,
_In_ ULONG nCount,
_In_ ULONG ulMode);
WINGDIAPI BOOL WINAPI PlayMetaFileRecord( _In_ HDC hdc,
_In_reads_(noObjs) LPHANDLETABLE lpHandleTable,
_In_ LPMETARECORD lpMR,
_In_ UINT noObjs);
typedef int (CALLBACK* MFENUMPROC)( _In_ HDC hdc, _In_reads_(nObj) HANDLETABLE FAR* lpht, _In_ METARECORD FAR* lpMR, _In_ int nObj, _In_opt_ LPARAM param);
WINGDIAPI BOOL WINAPI EnumMetaFile( _In_ HDC hdc, _In_ HMETAFILE hmf, _In_ MFENUMPROC proc, _In_opt_ LPARAM param);
typedef int (CALLBACK* ENHMFENUMPROC)(_In_ HDC hdc, _In_reads_(nHandles) HANDLETABLE FAR* lpht, _In_ CONST ENHMETARECORD * lpmr, _In_ int nHandles, _In_opt_ LPARAM data);
WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( _In_ HDC hdc);
WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( _In_ HENHMETAFILE hEnh, _In_opt_ LPCSTR lpFileName);
WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( _In_ HENHMETAFILE hEnh, _In_opt_ LPCWSTR lpFileName);
WINGDIAPI HDC WINAPI CreateEnhMetaFileA( _In_opt_ HDC hdc, _In_opt_ LPCSTR lpFilename, _In_opt_ CONST RECT *lprc, _In_opt_ LPCSTR lpDesc);
WINGDIAPI HDC WINAPI CreateEnhMetaFileW( _In_opt_ HDC hdc, _In_opt_ LPCWSTR lpFilename, _In_opt_ CONST RECT *lprc, _In_opt_ LPCWSTR lpDesc);
WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( _In_opt_ HENHMETAFILE hmf);
WINGDIAPI BOOL WINAPI EnumEnhMetaFile( _In_opt_ HDC hdc, _In_ HENHMETAFILE hmf, _In_ ENHMFENUMPROC proc,
_In_opt_ LPVOID param, _In_opt_ CONST RECT * lpRect);
WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( _In_ LPCSTR lpName);
WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( _In_ LPCWSTR lpName);
WINGDIAPI UINT WINAPI GetEnhMetaFileBits( _In_ HENHMETAFILE hEMF,
_In_ UINT nSize,
_Out_writes_bytes_opt_(nSize) LPBYTE lpData);
WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( _In_ HENHMETAFILE hemf,
_In_ UINT cchBuffer,
_Out_writes_opt_(cchBuffer) LPSTR lpDescription);
WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( _In_ HENHMETAFILE hemf,
_In_ UINT cchBuffer,
_Out_writes_opt_(cchBuffer) LPWSTR lpDescription);
WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( _In_ HENHMETAFILE hemf,
_In_ UINT nSize,
_Out_writes_bytes_opt_(nSize) LPENHMETAHEADER lpEnhMetaHeader);
WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(_In_ HENHMETAFILE hemf,
_In_ UINT nNumEntries,
_Out_writes_opt_(nNumEntries) LPPALETTEENTRY lpPaletteEntries);
WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( _In_ HENHMETAFILE hemf,
_In_ UINT cbBuffer,
_Out_writes_bytes_opt_(cbBuffer) PIXELFORMATDESCRIPTOR *ppfd);
WINGDIAPI UINT WINAPI GetWinMetaFileBits( _In_ HENHMETAFILE hemf,
_In_ UINT cbData16,
_Out_writes_bytes_opt_(cbData16) LPBYTE pData16,
_In_ INT iMapMode,
_In_ HDC hdcRef);
WINGDIAPI BOOL WINAPI PlayEnhMetaFile( _In_ HDC hdc, _In_ HENHMETAFILE hmf, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( _In_ HDC hdc,
_In_reads_(cht) LPHANDLETABLE pht,
_In_ CONST ENHMETARECORD *pmr,
_In_ UINT cht);
WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( _In_ UINT nSize,
_In_reads_bytes_(nSize) CONST BYTE * pb);
WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( _In_ UINT nSize,
_In_reads_bytes_(nSize) CONST BYTE *lpMeta16Data,
_In_opt_ HDC hdcRef,
_In_opt_ CONST METAFILEPICT *lpMFP);
WINGDIAPI BOOL WINAPI GdiComment(_In_ HDC hdc, _In_ UINT nSize, _In_reads_bytes_(nSize) CONST BYTE *lpData);
WINGDIAPI BOOL WINAPI GetTextMetricsA( _In_ HDC hdc, _Out_ LPTEXTMETRICA lptm);
WINGDIAPI BOOL WINAPI GetTextMetricsW( _In_ HDC hdc, _Out_ LPTEXTMETRICW lptm);
typedef struct tagDIBSECTION {
BITMAP dsBm;
BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3];
HANDLE dshSection;
DWORD dsOffset;
} DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION;
WINGDIAPI BOOL WINAPI AngleArc( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ DWORD r, _In_ FLOAT StartAngle, _In_ FLOAT SweepAngle);
WINGDIAPI BOOL WINAPI PolyPolyline(_In_ HDC hdc, _In_ CONST POINT *apt, _In_reads_(csz) CONST DWORD *asz, _In_ DWORD csz);
WINGDIAPI BOOL WINAPI GetWorldTransform( _In_ HDC hdc, _Out_ LPXFORM lpxf);
WINGDIAPI BOOL WINAPI SetWorldTransform( _In_ HDC hdc, _In_ CONST XFORM * lpxf);
WINGDIAPI BOOL WINAPI ModifyWorldTransform( _In_ HDC hdc, _In_opt_ CONST XFORM * lpxf, _In_ DWORD mode);
WINGDIAPI BOOL WINAPI CombineTransform( _Out_ LPXFORM lpxfOut, _In_ CONST XFORM *lpxf1, _In_ CONST XFORM *lpxf2);
WINGDIAPI _Success_(return != NULL) HBITMAP WINAPI CreateDIBSection(
_In_opt_ HDC hdc,
_In_ CONST BITMAPINFO *pbmi,
_In_ UINT usage,
_When_((pbmi->bmiHeader.biBitCount != 0), _Outptr_result_bytebuffer_(_Inexpressible_(GDI_DIBSIZE((pbmi->bmiHeader)))))
_When_((pbmi->bmiHeader.biBitCount == 0), _Outptr_result_bytebuffer_((pbmi->bmiHeader).biSizeImage))
VOID **ppvBits,
_In_opt_ HANDLE hSection,
_In_ DWORD offset);
_Ret_range_(0,cEntries)
WINGDIAPI UINT WINAPI GetDIBColorTable( _In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_to_(cEntries,return) RGBQUAD *prgbq);
WINGDIAPI UINT WINAPI SetDIBColorTable( _In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_In_reads_(cEntries) CONST RGBQUAD *prgbq);
typedef struct tagCOLORADJUSTMENT {
WORD caSize;
WORD caFlags;
WORD caIlluminantIndex;
WORD caRedGamma;
WORD caGreenGamma;
WORD caBlueGamma;
WORD caReferenceBlack;
WORD caReferenceWhite;
SHORT caContrast;
SHORT caBrightness;
SHORT caColorfulness;
SHORT caRedGreenTint;
} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;
WINGDIAPI BOOL WINAPI SetColorAdjustment( _In_ HDC hdc, _In_ CONST COLORADJUSTMENT *lpca);
WINGDIAPI BOOL WINAPI GetColorAdjustment( _In_ HDC hdc, _Out_ LPCOLORADJUSTMENT lpca);
WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( _In_opt_ HDC hdc);
typedef BOOL (CALLBACK* ABORTPROC)( _In_ HDC, _In_ int);
typedef struct _DOCINFOA {
int cbSize;
LPCSTR lpszDocName;
LPCSTR lpszOutput;
LPCSTR lpszDatatype;
DWORD fwType;
} DOCINFOA, *LPDOCINFOA;
typedef struct _DOCINFOW {
int cbSize;
LPCWSTR lpszDocName;
LPCWSTR lpszOutput;
LPCWSTR lpszDatatype;
DWORD fwType;
} DOCINFOW, *LPDOCINFOW;
typedef DOCINFOA DOCINFO;
typedef LPDOCINFOA LPDOCINFO;
WINGDIAPI int WINAPI StartDocA(_In_ HDC hdc, _In_ CONST DOCINFOA *lpdi);
WINGDIAPI int WINAPI StartDocW(_In_ HDC hdc, _In_ CONST DOCINFOW *lpdi);
WINGDIAPI int WINAPI EndDoc(_In_ HDC hdc);
WINGDIAPI int WINAPI StartPage(_In_ HDC hdc);
WINGDIAPI int WINAPI EndPage(_In_ HDC hdc);
WINGDIAPI int WINAPI AbortDoc(_In_ HDC hdc);
WINGDIAPI int WINAPI SetAbortProc(_In_ HDC hdc, _In_ ABORTPROC proc);
WINGDIAPI BOOL WINAPI AbortPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI ArcTo(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom, _In_ int xr1, _In_ int yr1, _In_ int xr2, _In_ int yr2);
WINGDIAPI BOOL WINAPI BeginPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI CloseFigure(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI EndPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI FillPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI FlattenPath(_In_ HDC hdc);
WINGDIAPI int WINAPI GetPath(_In_ HDC hdc, _Out_writes_opt_(cpt) LPPOINT apt, _Out_writes_opt_(cpt) LPBYTE aj, int cpt);
WINGDIAPI HRGN WINAPI PathToRegion(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI PolyDraw(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * apt, _In_reads_(cpt) CONST BYTE * aj, _In_ int cpt);
WINGDIAPI BOOL WINAPI SelectClipPath(_In_ HDC hdc, _In_ int mode);
WINGDIAPI int WINAPI SetArcDirection(_In_ HDC hdc, _In_ int dir);
WINGDIAPI BOOL WINAPI SetMiterLimit(_In_ HDC hdc, _In_ FLOAT limit, _Out_opt_ PFLOAT old);
WINGDIAPI BOOL WINAPI StrokeAndFillPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI StrokePath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI WidenPath(_In_ HDC hdc);
WINGDIAPI HPEN WINAPI ExtCreatePen( _In_ DWORD iPenStyle,
_In_ DWORD cWidth,
_In_ CONST LOGBRUSH *plbrush,
_In_ DWORD cStyle,
_In_reads_opt_(cStyle) CONST DWORD *pstyle);
WINGDIAPI BOOL WINAPI GetMiterLimit(_In_ HDC hdc, _Out_ PFLOAT plimit);
WINGDIAPI int WINAPI GetArcDirection(_In_ HDC hdc);
WINGDIAPI int WINAPI GetObjectA(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv);
WINGDIAPI int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv);
WINGDIAPI BOOL WINAPI MoveToEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI TextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCSTR lpString, _In_ int c);
WINGDIAPI BOOL WINAPI TextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCWSTR lpString, _In_ int c);
WINGDIAPI BOOL WINAPI ExtTextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ CONST RECT * lprect, _In_reads_opt_(c) LPCSTR lpString, _In_ UINT c, _In_reads_opt_(c) CONST INT * lpDx);
WINGDIAPI BOOL WINAPI ExtTextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ CONST RECT * lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) CONST INT * lpDx);
WINGDIAPI BOOL WINAPI PolyTextOutA(_In_ HDC hdc, _In_reads_(nstrings) CONST POLYTEXTA * ppt, _In_ int nstrings);
WINGDIAPI BOOL WINAPI PolyTextOutW(_In_ HDC hdc, _In_reads_(nstrings) CONST POLYTEXTW * ppt, _In_ int nstrings);
WINGDIAPI HRGN WINAPI CreatePolygonRgn( _In_reads_(cPoint) CONST POINT *pptl,
_In_ int cPoint,
_In_ int iMode);
WINGDIAPI BOOL WINAPI DPtoLP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _In_ int c);
WINGDIAPI BOOL WINAPI LPtoDP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _In_ int c);
WINGDIAPI BOOL WINAPI Polygon(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *apt, _In_ int cpt);
WINGDIAPI BOOL WINAPI Polyline(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *apt, _In_ int cpt);
WINGDIAPI BOOL WINAPI PolyBezier(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * apt, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI PolyBezierTo(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * apt, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI PolylineTo(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * apt, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI SetViewportExtEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetViewportOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI SetWindowExtEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetWindowOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI ScaleViewportExtEx( _In_ HDC hdc, _In_ int xn, _In_ int dx, _In_ int yn, _In_ int yd, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI ScaleWindowExtEx( _In_ HDC hdc, _In_ int xn, _In_ int xd, _In_ int yn, _In_ int yd, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( _In_ HBITMAP hbm, _In_ int w, _In_ int h, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetBrushOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt_ LPPOINT lppt);
WINGDIAPI int WINAPI GetTextFaceA( _In_ HDC hdc, _In_ int c, _Out_writes_to_opt_(c, return) LPSTR lpName);
WINGDIAPI int WINAPI GetTextFaceW( _In_ HDC hdc, _In_ int c, _Out_writes_to_opt_(c, return) LPWSTR lpName);
typedef struct tagKERNINGPAIR {
WORD wFirst;
WORD wSecond;
int iKernAmount;
} KERNINGPAIR, *LPKERNINGPAIR;
WINGDIAPI DWORD WINAPI GetKerningPairsA( _In_ HDC hdc,
_In_ DWORD nPairs,
_Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair);
WINGDIAPI DWORD WINAPI GetKerningPairsW( _In_ HDC hdc,
_In_ DWORD nPairs,
_Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair);
WINGDIAPI BOOL WINAPI GetDCOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI FixBrushOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _In_opt_ LPPOINT ptl);
WINGDIAPI BOOL WINAPI UnrealizeObject( _In_ HGDIOBJ h);
WINGDIAPI BOOL WINAPI GdiFlush(void);
WINGDIAPI DWORD WINAPI GdiSetBatchLimit( _In_ DWORD dw);
WINGDIAPI DWORD WINAPI GdiGetBatchLimit(void);
typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM);
typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM);
WINGDIAPI int WINAPI SetICMMode( _In_ HDC hdc, _In_ int mode);
WINGDIAPI BOOL WINAPI CheckColorsInGamut( _In_ HDC hdc,
_In_reads_(nCount) LPRGBTRIPLE lpRGBTriple,
_Out_writes_bytes_(nCount) LPVOID dlpBuffer,
_In_ DWORD nCount);
WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetLogColorSpaceA( _In_ HCOLORSPACE hColorSpace,
_Out_writes_bytes_(nSize) LPLOGCOLORSPACEA lpBuffer,
_In_ DWORD nSize);
WINGDIAPI BOOL WINAPI GetLogColorSpaceW( _In_ HCOLORSPACE hColorSpace,
_Out_writes_bytes_(nSize) LPLOGCOLORSPACEW lpBuffer,
_In_ DWORD nSize);
WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( _In_ LPLOGCOLORSPACEA lplcs);
WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( _In_ LPLOGCOLORSPACEW lplcs);
WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( _In_ HDC hdc, _In_ HCOLORSPACE hcs);
WINGDIAPI BOOL WINAPI DeleteColorSpace( _In_ HCOLORSPACE hcs);
WINGDIAPI BOOL WINAPI GetICMProfileA( _In_ HDC hdc,
_Inout_ LPDWORD pBufSize,
_Out_writes_opt_(*pBufSize) LPSTR pszFilename);
WINGDIAPI BOOL WINAPI GetICMProfileW( _In_ HDC hdc,
_Inout_ LPDWORD pBufSize,
_Out_writes_opt_(*pBufSize) LPWSTR pszFilename);
WINGDIAPI BOOL WINAPI SetICMProfileA( _In_ HDC hdc, _In_ LPSTR lpFileName);
WINGDIAPI BOOL WINAPI SetICMProfileW( _In_ HDC hdc, _In_ LPWSTR lpFileName);
WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( _In_ HDC hdc, _Out_writes_bytes_(3*256*2) LPVOID lpRamp);
WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( _In_ HDC hdc, _In_reads_bytes_(3*256*2) LPVOID lpRamp);
WINGDIAPI BOOL WINAPI ColorMatchToTarget( _In_ HDC hdc, _In_ HDC hdcTarget, _In_ DWORD action);
WINGDIAPI int WINAPI EnumICMProfilesA( _In_ HDC hdc, _In_ ICMENUMPROCA proc, _In_opt_ LPARAM param);
WINGDIAPI int WINAPI EnumICMProfilesW( _In_ HDC hdc, _In_ ICMENUMPROCW proc, _In_opt_ LPARAM param);
WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( _Reserved_ DWORD reserved, _In_ LPSTR lpszCMID, _In_ LPSTR lpszFileName, _In_ UINT command);
WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( _Reserved_ DWORD reserved, _In_ LPWSTR lpszCMID, _In_ LPWSTR lpszFileName, _In_ UINT command);
WINGDIAPI BOOL WINAPI ColorCorrectPalette( _In_ HDC hdc, _In_ HPALETTE hPal, _In_ DWORD deFirst, _In_ DWORD num);
typedef struct tagEMR
{
DWORD iType;
DWORD nSize;
} EMR, *PEMR;
typedef struct tagEMRTEXT
{
POINTL ptlReference;
DWORD nChars;
DWORD offString;
DWORD fOptions;
RECTL rcl;
DWORD offDx;
} EMRTEXT, *PEMRTEXT;
typedef struct tagABORTPATH
{
EMR emr;
} EMRABORTPATH, *PEMRABORTPATH,
EMRBEGINPATH, *PEMRBEGINPATH,
EMRENDPATH, *PEMRENDPATH,
EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
EMRFLATTENPATH, *PEMRFLATTENPATH,
EMRWIDENPATH, *PEMRWIDENPATH,
EMRSETMETARGN, *PEMRSETMETARGN,
EMRSAVEDC, *PEMRSAVEDC,
EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
typedef struct tagEMRSELECTCLIPPATH
{
EMR emr;
DWORD iMode;
} EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
EMRSETBKMODE, *PEMRSETBKMODE,
EMRSETMAPMODE, *PEMRSETMAPMODE,
EMRSETLAYOUT, *PEMRSETLAYOUT,
EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
EMRSETROP2, *PEMRSETROP2,
EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
EMRSETICMMODE, *PEMRSETICMMODE,
EMRSETTEXTALIGN, *PEMRSETTEXTALIGN;
typedef struct tagEMRSETMITERLIMIT
{
EMR emr;
FLOAT eMiterLimit;
} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
typedef struct tagEMRRESTOREDC
{
EMR emr;
LONG iRelative;
} EMRRESTOREDC, *PEMRRESTOREDC;
typedef struct tagEMRSETARCDIRECTION
{
EMR emr;
DWORD iArcDirection;
} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
typedef struct tagEMRSETMAPPERFLAGS
{
EMR emr;
DWORD dwFlags;
} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
typedef struct tagEMRSETTEXTCOLOR
{
EMR emr;
COLORREF crColor;
} EMRSETBKCOLOR, *PEMRSETBKCOLOR,
EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
typedef struct tagEMRSELECTOBJECT
{
EMR emr;
DWORD ihObject;
} EMRSELECTOBJECT, *PEMRSELECTOBJECT,
EMRDELETEOBJECT, *PEMRDELETEOBJECT;
typedef struct tagEMRSELECTPALETTE
{
EMR emr;
DWORD ihPal;
} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
typedef struct tagEMRRESIZEPALETTE
{
EMR emr;
DWORD ihPal;
DWORD cEntries;
} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
typedef struct tagEMRSETPALETTEENTRIES
{
EMR emr;
DWORD ihPal;
DWORD iStart;
DWORD cEntries;
PALETTEENTRY aPalEntries[1];
} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
typedef struct tagEMRSETCOLORADJUSTMENT
{
EMR emr;
COLORADJUSTMENT ColorAdjustment;
} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
typedef struct tagEMRGDICOMMENT
{
EMR emr;
DWORD cbData;
BYTE Data[1];
} EMRGDICOMMENT, *PEMRGDICOMMENT;
typedef struct tagEMREOF
{
EMR emr;
DWORD nPalEntries;
DWORD offPalEntries;
DWORD nSizeLast;
} EMREOF, *PEMREOF;
typedef struct tagEMRLINETO
{
EMR emr;
POINTL ptl;
} EMRLINETO, *PEMRLINETO,
EMRMOVETOEX, *PEMRMOVETOEX;
typedef struct tagEMROFFSETCLIPRGN
{
EMR emr;
POINTL ptlOffset;
} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
typedef struct tagEMRFILLPATH
{
EMR emr;
RECTL rclBounds;
} EMRFILLPATH, *PEMRFILLPATH,
EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
EMRSTROKEPATH, *PEMRSTROKEPATH;
typedef struct tagEMREXCLUDECLIPRECT
{
EMR emr;
RECTL rclClip;
} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
typedef struct tagEMRSETVIEWPORTORGEX
{
EMR emr;
POINTL ptlOrigin;
} EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX,
EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX;
typedef struct tagEMRSETVIEWPORTEXTEX
{
EMR emr;
SIZEL szlExtent;
} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
typedef struct tagEMRSCALEVIEWPORTEXTEX
{
EMR emr;
LONG xNum;
LONG xDenom;
LONG yNum;
LONG yDenom;
} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
typedef struct tagEMRSETWORLDTRANSFORM
{
EMR emr;
XFORM xform;
} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
typedef struct tagEMRMODIFYWORLDTRANSFORM
{
EMR emr;
XFORM xform;
DWORD iMode;
} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
typedef struct tagEMRSETPIXELV
{
EMR emr;
POINTL ptlPixel;
COLORREF crColor;
} EMRSETPIXELV, *PEMRSETPIXELV;
typedef struct tagEMREXTFLOODFILL
{
EMR emr;
POINTL ptlStart;
COLORREF crColor;
DWORD iMode;
} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
typedef struct tagEMRELLIPSE
{
EMR emr;
RECTL rclBox;
} EMRELLIPSE, *PEMRELLIPSE,
EMRRECTANGLE, *PEMRRECTANGLE;
typedef struct tagEMRROUNDRECT
{
EMR emr;
RECTL rclBox;
SIZEL szlCorner;
} EMRROUNDRECT, *PEMRROUNDRECT;
typedef struct tagEMRARC
{
EMR emr;
RECTL rclBox;
POINTL ptlStart;
POINTL ptlEnd;
} EMRARC, *PEMRARC,
EMRARCTO, *PEMRARCTO,
EMRCHORD, *PEMRCHORD,
EMRPIE, *PEMRPIE;
typedef struct tagEMRANGLEARC
{
EMR emr;
POINTL ptlCenter;
DWORD nRadius;
FLOAT eStartAngle;
FLOAT eSweepAngle;
} EMRANGLEARC, *PEMRANGLEARC;
typedef struct tagEMRPOLYLINE
{
EMR emr;
RECTL rclBounds;
DWORD cptl;
POINTL aptl[1];
} EMRPOLYLINE, *PEMRPOLYLINE,
EMRPOLYBEZIER, *PEMRPOLYBEZIER,
EMRPOLYGON, *PEMRPOLYGON,
EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
EMRPOLYLINETO, *PEMRPOLYLINETO;
typedef struct tagEMRPOLYLINE16
{
EMR emr;
RECTL rclBounds;
DWORD cpts;
POINTS apts[1];
} EMRPOLYLINE16, *PEMRPOLYLINE16,
EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
EMRPOLYGON16, *PEMRPOLYGON16,
EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
EMRPOLYLINETO16, *PEMRPOLYLINETO16;
typedef struct tagEMRPOLYDRAW
{
EMR emr;
RECTL rclBounds;
DWORD cptl;
POINTL aptl[1];
BYTE abTypes[1];
} EMRPOLYDRAW, *PEMRPOLYDRAW;
typedef struct tagEMRPOLYDRAW16
{
EMR emr;
RECTL rclBounds;
DWORD cpts;
POINTS apts[1];
BYTE abTypes[1];
} EMRPOLYDRAW16, *PEMRPOLYDRAW16;
typedef struct tagEMRPOLYPOLYLINE
{
EMR emr;
RECTL rclBounds;
DWORD nPolys;
DWORD cptl;
DWORD aPolyCounts[1];
POINTL aptl[1];
} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
typedef struct tagEMRPOLYPOLYLINE16
{
EMR emr;
RECTL rclBounds;
DWORD nPolys;
DWORD cpts;
DWORD aPolyCounts[1];
POINTS apts[1];
} EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
typedef struct tagEMRINVERTRGN
{
EMR emr;
RECTL rclBounds;
DWORD cbRgnData;
BYTE RgnData[1];
} EMRINVERTRGN, *PEMRINVERTRGN,
EMRPAINTRGN, *PEMRPAINTRGN;
typedef struct tagEMRFILLRGN
{
EMR emr;
RECTL rclBounds;
DWORD cbRgnData;
DWORD ihBrush;
BYTE RgnData[1];
} EMRFILLRGN, *PEMRFILLRGN;
typedef struct tagEMRFRAMERGN
{
EMR emr;
RECTL rclBounds;
DWORD cbRgnData;
DWORD ihBrush;
SIZEL szlStroke;
BYTE RgnData[1];
} EMRFRAMERGN, *PEMRFRAMERGN;
typedef struct tagEMREXTSELECTCLIPRGN
{
EMR emr;
DWORD cbRgnData;
DWORD iMode;
BYTE RgnData[1];
} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
typedef struct tagEMREXTTEXTOUTA
{
EMR emr;
RECTL rclBounds;
DWORD iGraphicsMode;
FLOAT exScale;
FLOAT eyScale;
EMRTEXT emrtext;
} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
typedef struct tagEMRPOLYTEXTOUTA
{
EMR emr;
RECTL rclBounds;
DWORD iGraphicsMode;
FLOAT exScale;
FLOAT eyScale;
LONG cStrings;
EMRTEXT aemrtext[1];
} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
typedef struct tagEMRBITBLT
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
} EMRBITBLT, *PEMRBITBLT;
typedef struct tagEMRSTRETCHBLT
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG cxSrc;
LONG cySrc;
} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
typedef struct tagEMRMASKBLT
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG xMask;
LONG yMask;
DWORD iUsageMask;
DWORD offBmiMask;
DWORD cbBmiMask;
DWORD offBitsMask;
DWORD cbBitsMask;
} EMRMASKBLT, *PEMRMASKBLT;
typedef struct tagEMRPLGBLT
{
EMR emr;
RECTL rclBounds;
POINTL aptlDest[3];
LONG xSrc;
LONG ySrc;
LONG cxSrc;
LONG cySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG xMask;
LONG yMask;
DWORD iUsageMask;
DWORD offBmiMask;
DWORD cbBmiMask;
DWORD offBitsMask;
DWORD cbBitsMask;
} EMRPLGBLT, *PEMRPLGBLT;
typedef struct tagEMRSETDIBITSTODEVICE
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG xSrc;
LONG ySrc;
LONG cxSrc;
LONG cySrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
DWORD iUsageSrc;
DWORD iStartScan;
DWORD cScans;
} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
typedef struct tagEMRSTRETCHDIBITS
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG xSrc;
LONG ySrc;
LONG cxSrc;
LONG cySrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
DWORD iUsageSrc;
DWORD dwRop;
LONG cxDest;
LONG cyDest;
} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
typedef struct tagEMREXTCREATEFONTINDIRECTW
{
EMR emr;
DWORD ihFont;
EXTLOGFONTW elfw;
} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
typedef struct tagEMRCREATEPALETTE
{
EMR emr;
DWORD ihPal;
LOGPALETTE lgpl;
} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
typedef struct tagEMRCREATEPEN
{
EMR emr;
DWORD ihPen;
LOGPEN lopn;
} EMRCREATEPEN, *PEMRCREATEPEN;
typedef struct tagEMREXTCREATEPEN
{
EMR emr;
DWORD ihPen;
DWORD offBmi;
DWORD cbBmi;
DWORD offBits;
DWORD cbBits;
EXTLOGPEN32 elp;
} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
typedef struct tagEMRCREATEBRUSHINDIRECT
{
EMR emr;
DWORD ihBrush;
LOGBRUSH32 lb;
} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
typedef struct tagEMRCREATEMONOBRUSH
{
EMR emr;
DWORD ihBrush;
DWORD iUsage;
DWORD offBmi;
DWORD cbBmi;
DWORD offBits;
DWORD cbBits;
} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
typedef struct tagEMRCREATEDIBPATTERNBRUSHPT
{
EMR emr;
DWORD ihBrush;
DWORD iUsage;
DWORD offBmi;
DWORD cbBmi;
DWORD offBits;
DWORD cbBits;
} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
typedef struct tagEMRFORMAT
{
DWORD dSignature;
DWORD nVersion;
DWORD cbData;
DWORD offData;
} EMRFORMAT, *PEMRFORMAT;
typedef struct tagEMRGLSRECORD
{
EMR emr;
DWORD cbData;
BYTE Data[1];
} EMRGLSRECORD, *PEMRGLSRECORD;
typedef struct tagEMRGLSBOUNDEDRECORD
{
EMR emr;
RECTL rclBounds;
DWORD cbData;
BYTE Data[1];
} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
typedef struct tagEMRPIXELFORMAT
{
EMR emr;
PIXELFORMATDESCRIPTOR pfd;
} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
typedef struct tagEMRCREATECOLORSPACE
{
EMR emr;
DWORD ihCS;
LOGCOLORSPACEA lcs;
} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
typedef struct tagEMRSETCOLORSPACE
{
EMR emr;
DWORD ihCS;
} EMRSETCOLORSPACE, *PEMRSETCOLORSPACE,
EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
typedef struct tagEMREXTESCAPE
{
EMR emr;
INT iEscape;
INT cbEscData;
BYTE EscData[1];
} EMREXTESCAPE, *PEMREXTESCAPE,
EMRDRAWESCAPE, *PEMRDRAWESCAPE;
typedef struct tagEMRNAMEDESCAPE
{
EMR emr;
INT iEscape;
INT cbDriver;
INT cbEscData;
BYTE EscData[1];
} EMRNAMEDESCAPE, *PEMRNAMEDESCAPE;
typedef struct tagEMRSETICMPROFILE
{
EMR emr;
DWORD dwFlags;
DWORD cbName;
DWORD cbData;
BYTE Data[1];
} EMRSETICMPROFILE, *PEMRSETICMPROFILE,
EMRSETICMPROFILEA, *PEMRSETICMPROFILEA,
EMRSETICMPROFILEW, *PEMRSETICMPROFILEW;
typedef struct tagEMRCREATECOLORSPACEW
{
EMR emr;
DWORD ihCS;
LOGCOLORSPACEW lcs;
DWORD dwFlags;
DWORD cbData;
BYTE Data[1];
} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
typedef struct tagCOLORMATCHTOTARGET
{
EMR emr;
DWORD dwAction;
DWORD dwFlags;
DWORD cbName;
DWORD cbData;
BYTE Data[1];
} EMRCOLORMATCHTOTARGET, *PEMRCOLORMATCHTOTARGET;
typedef struct tagCOLORCORRECTPALETTE
{
EMR emr;
DWORD ihPalette;
DWORD nFirstEntry;
DWORD nPalEntries;
DWORD nReserved;
} EMRCOLORCORRECTPALETTE, *PEMRCOLORCORRECTPALETTE;
typedef struct tagEMRALPHABLEND
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG cxSrc;
LONG cySrc;
} EMRALPHABLEND, *PEMRALPHABLEND;
typedef struct tagEMRGRADIENTFILL
{
EMR emr;
RECTL rclBounds;
DWORD nVer;
DWORD nTri;
ULONG ulMode;
TRIVERTEX Ver[1];
}EMRGRADIENTFILL,*PEMRGRADIENTFILL;
typedef struct tagEMRTRANSPARENTBLT
{
EMR emr;
RECTL rclBounds;
LONG xDest;
LONG yDest;
LONG cxDest;
LONG cyDest;
DWORD dwRop;
LONG xSrc;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
DWORD iUsageSrc;
DWORD offBmiSrc;
DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
LONG cxSrc;
LONG cySrc;
} EMRTRANSPARENTBLT, *PEMRTRANSPARENTBLT;
WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC, HGLRC, UINT);
WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC, int);
WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC);
WINGDIAPI HGLRC WINAPI wglGetCurrentContext(VOID);
WINGDIAPI HDC WINAPI wglGetCurrentDC(VOID);
WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC, HGLRC);
WINGDIAPI BOOL WINAPI wglShareLists(HGLRC, HGLRC);
WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
WINGDIAPI BOOL WINAPI SwapBuffers(HDC);
typedef struct _POINTFLOAT {
FLOAT x;
FLOAT y;
} POINTFLOAT, *PPOINTFLOAT;
typedef struct _GLYPHMETRICSFLOAT {
FLOAT gmfBlackBoxX;
FLOAT gmfBlackBoxY;
POINTFLOAT gmfptGlyphOrigin;
FLOAT gmfCellIncX;
FLOAT gmfCellIncY;
} GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, FAR *LPGLYPHMETRICSFLOAT;
WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT,
FLOAT, int, LPGLYPHMETRICSFLOAT);
WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT,
FLOAT, int, LPGLYPHMETRICSFLOAT);
typedef struct tagLAYERPLANEDESCRIPTOR {
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerPlane;
BYTE bReserved;
COLORREF crTransparent;
} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, FAR *LPLAYERPLANEDESCRIPTOR;
WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC, int, int, UINT,
LPLAYERPLANEDESCRIPTOR);
WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC, int, int, int,
CONST COLORREF *);
WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC, int, int, int,
COLORREF *);
WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC, int, BOOL);
WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC, UINT);
typedef struct _WGLSWAP
{
HDC hdc;
UINT uiFlags;
} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;
WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);
typedef HANDLE HDWP;
typedef VOID MENUTEMPLATEA;
typedef VOID MENUTEMPLATEW;
typedef MENUTEMPLATEA MENUTEMPLATE;
typedef PVOID LPMENUTEMPLATEA;
typedef PVOID LPMENUTEMPLATEW;
typedef LPMENUTEMPLATEA LPMENUTEMPLATE;
typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD);
typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int);
typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM);
typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT);
typedef BOOL (CALLBACK* PROPENUMPROCA)(HWND, LPCSTR, HANDLE);
typedef BOOL (CALLBACK* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE);
typedef BOOL (CALLBACK* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR);
typedef BOOL (CALLBACK* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR);
typedef int (CALLBACK* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code);
typedef int (CALLBACK* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code);
typedef BOOL (CALLBACK* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy);
typedef PROPENUMPROCA PROPENUMPROC;
typedef PROPENUMPROCEXA PROPENUMPROCEX;
typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC;
typedef BOOL (CALLBACK* NAMEENUMPROCA)(LPSTR, LPARAM);
typedef BOOL (CALLBACK* NAMEENUMPROCW)(LPWSTR, LPARAM);
typedef NAMEENUMPROCA WINSTAENUMPROCA;
typedef NAMEENUMPROCA DESKTOPENUMPROCA;
typedef NAMEENUMPROCW WINSTAENUMPROCW;
typedef NAMEENUMPROCW DESKTOPENUMPROCW;
typedef WINSTAENUMPROCA WINSTAENUMPROC;
typedef DESKTOPENUMPROCA DESKTOPENUMPROC;
WINUSERAPI
int
WINAPI
wvsprintfA(
_Out_ LPSTR,
_In_ _Printf_format_string_ LPCSTR,
_In_ va_list arglist);
WINUSERAPI
int
WINAPI
wvsprintfW(
_Out_ LPWSTR,
_In_ _Printf_format_string_ LPCWSTR,
_In_ va_list arglist);
WINUSERAPI
int
WINAPIV
wsprintfA(
_Out_ LPSTR,
_In_ _Printf_format_string_ LPCSTR,
...);
WINUSERAPI
int
WINAPIV
wsprintfW(
_Out_ LPWSTR,
_In_ _Printf_format_string_ LPCWSTR,
...);
typedef struct tagCBT_CREATEWNDA
{
struct tagCREATESTRUCTA *lpcs;
HWND hwndInsertAfter;
} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
typedef struct tagCBT_CREATEWNDW
{
struct tagCREATESTRUCTW *lpcs;
HWND hwndInsertAfter;
} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
typedef CBT_CREATEWNDA CBT_CREATEWND;
typedef LPCBT_CREATEWNDA LPCBT_CREATEWND;
typedef struct tagCBTACTIVATESTRUCT
{
BOOL fMouse;
HWND hWndActive;
} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
typedef struct tagWTSSESSION_NOTIFICATION
{
DWORD cbSize;
DWORD dwSessionId;
} WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION;
typedef struct
{
HWND hwnd;
RECT rc;
} SHELLHOOKINFO, *LPSHELLHOOKINFO;
typedef struct tagEVENTMSG {
UINT message;
UINT paramL;
UINT paramH;
DWORD time;
HWND hwnd;
} EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG;
typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG;
typedef struct tagCWPSTRUCT {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;
typedef struct tagCWPRETSTRUCT {
LRESULT lResult;
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT;
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
typedef struct tagMSLLHOOKSTRUCT {
POINT pt;
DWORD mouseData;
DWORD flags;
DWORD time;
ULONG_PTR dwExtraInfo;
} MSLLHOOKSTRUCT, FAR *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
typedef struct tagDEBUGHOOKINFO
{
DWORD idThread;
DWORD idThreadInstaller;
LPARAM lParam;
WPARAM wParam;
int code;
} DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO;
typedef struct tagMOUSEHOOKSTRUCT {
POINT pt;
HWND hwnd;
UINT wHitTestCode;
ULONG_PTR dwExtraInfo;
} MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
typedef struct tagMOUSEHOOKSTRUCTEX
{
MOUSEHOOKSTRUCT DUMMYSTRUCTNAME;
DWORD mouseData;
} MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
typedef struct tagHARDWAREHOOKSTRUCT {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
} HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT;
WINUSERAPI
HKL
WINAPI
LoadKeyboardLayoutA(
_In_ LPCSTR pwszKLID,
_In_ UINT Flags);
WINUSERAPI
HKL
WINAPI
LoadKeyboardLayoutW(
_In_ LPCWSTR pwszKLID,
_In_ UINT Flags);
WINUSERAPI
HKL
WINAPI
ActivateKeyboardLayout(
_In_ HKL hkl,
_In_ UINT Flags);
WINUSERAPI
int
WINAPI
ToUnicodeEx(
_In_ UINT wVirtKey,
_In_ UINT wScanCode,
_In_reads_bytes_(256) CONST BYTE *lpKeyState,
_Out_writes_(cchBuff) LPWSTR pwszBuff,
_In_ int cchBuff,
_In_ UINT wFlags,
_In_opt_ HKL dwhkl);
WINUSERAPI
BOOL
WINAPI
UnloadKeyboardLayout(
_In_ HKL hkl);
WINUSERAPI
BOOL
WINAPI
GetKeyboardLayoutNameA(
_Out_writes_(KL_NAMELENGTH) LPSTR pwszKLID);
WINUSERAPI
BOOL
WINAPI
GetKeyboardLayoutNameW(
_Out_writes_(KL_NAMELENGTH) LPWSTR pwszKLID);
WINUSERAPI
int
WINAPI
GetKeyboardLayoutList(
_In_ int nBuff,
_Out_writes_to_opt_(nBuff, return) HKL FAR *lpList);
WINUSERAPI
HKL
WINAPI
GetKeyboardLayout(
_In_ DWORD idThread);
typedef struct tagMOUSEMOVEPOINT {
int x;
int y;
DWORD time;
ULONG_PTR dwExtraInfo;
} MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT;
WINUSERAPI
int
WINAPI
GetMouseMovePointsEx(
_In_ UINT cbSize,
_In_ LPMOUSEMOVEPOINT lppt,
_Out_writes_(nBufPoints) LPMOUSEMOVEPOINT lpptBuf,
_In_ int nBufPoints,
_In_ DWORD resolution);
WINUSERAPI
HDESK
WINAPI
CreateDesktopA(
_In_ LPCSTR lpszDesktop,
_Reserved_ LPCSTR lpszDevice,
_Reserved_ DEVMODEA* pDevmode,
_In_ DWORD dwFlags,
_In_ ACCESS_MASK dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HDESK
WINAPI
CreateDesktopW(
_In_ LPCWSTR lpszDesktop,
_Reserved_ LPCWSTR lpszDevice,
_Reserved_ DEVMODEW* pDevmode,
_In_ DWORD dwFlags,
_In_ ACCESS_MASK dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HDESK
WINAPI
CreateDesktopExA(
_In_ LPCSTR lpszDesktop,
_Reserved_ LPCSTR lpszDevice,
_Reserved_ DEVMODEA* pDevmode,
_In_ DWORD dwFlags,
_In_ ACCESS_MASK dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpsa,
_In_ ULONG ulHeapSize,
_Reserved_ PVOID pvoid);
WINUSERAPI
HDESK
WINAPI
CreateDesktopExW(
_In_ LPCWSTR lpszDesktop,
_Reserved_ LPCWSTR lpszDevice,
_Reserved_ DEVMODEW* pDevmode,
_In_ DWORD dwFlags,
_In_ ACCESS_MASK dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpsa,
_In_ ULONG ulHeapSize,
_Reserved_ PVOID pvoid);
WINUSERAPI
HDESK
WINAPI
OpenDesktopA(
_In_ LPCSTR lpszDesktop,
_In_ DWORD dwFlags,
_In_ BOOL fInherit,
_In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HDESK
WINAPI
OpenDesktopW(
_In_ LPCWSTR lpszDesktop,
_In_ DWORD dwFlags,
_In_ BOOL fInherit,
_In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HDESK
WINAPI
OpenInputDesktop(
_In_ DWORD dwFlags,
_In_ BOOL fInherit,
_In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI
BOOL
WINAPI
EnumDesktopsA(
_In_opt_ HWINSTA hwinsta,
_In_ DESKTOPENUMPROCA lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumDesktopsW(
_In_opt_ HWINSTA hwinsta,
_In_ DESKTOPENUMPROCW lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumDesktopWindows(
_In_opt_ HDESK hDesktop,
_In_ WNDENUMPROC lpfn,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
SwitchDesktop(
_In_ HDESK hDesktop);
WINUSERAPI
BOOL
WINAPI
SetThreadDesktop(
_In_ HDESK hDesktop);
WINUSERAPI
BOOL
WINAPI
CloseDesktop(
_In_ HDESK hDesktop);
WINUSERAPI
HDESK
WINAPI
GetThreadDesktop(
_In_ DWORD dwThreadId);
WINUSERAPI
HWINSTA
WINAPI
CreateWindowStationA(
_In_opt_ LPCSTR lpwinsta,
_In_ DWORD dwFlags,
_In_ ACCESS_MASK dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HWINSTA
WINAPI
CreateWindowStationW(
_In_opt_ LPCWSTR lpwinsta,
_In_ DWORD dwFlags,
_In_ ACCESS_MASK dwDesiredAccess,
_In_opt_ LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HWINSTA
WINAPI
OpenWindowStationA(
_In_ LPCSTR lpszWinSta,
_In_ BOOL fInherit,
_In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HWINSTA
WINAPI
OpenWindowStationW(
_In_ LPCWSTR lpszWinSta,
_In_ BOOL fInherit,
_In_ ACCESS_MASK dwDesiredAccess);
WINUSERAPI
BOOL
WINAPI
EnumWindowStationsA(
_In_ WINSTAENUMPROCA lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumWindowStationsW(
_In_ WINSTAENUMPROCW lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
CloseWindowStation(
_In_ HWINSTA hWinSta);
WINUSERAPI
BOOL
WINAPI
SetProcessWindowStation(
_In_ HWINSTA hWinSta);
WINUSERAPI
HWINSTA
WINAPI
GetProcessWindowStation(
VOID);
WINUSERAPI
BOOL
WINAPI
SetUserObjectSecurity(
_In_ HANDLE hObj,
_In_ PSECURITY_INFORMATION pSIRequested,
_In_ PSECURITY_DESCRIPTOR pSID);
WINUSERAPI
BOOL
WINAPI
GetUserObjectSecurity(
_In_ HANDLE hObj,
_In_ PSECURITY_INFORMATION pSIRequested,
_Out_writes_bytes_opt_(nLength) PSECURITY_DESCRIPTOR pSID,
_In_ DWORD nLength,
_Out_ LPDWORD lpnLengthNeeded);
typedef struct tagUSEROBJECTFLAGS {
BOOL fInherit;
BOOL fReserved;
DWORD dwFlags;
} USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
WINUSERAPI
BOOL
WINAPI
GetUserObjectInformationA(
_In_ HANDLE hObj,
_In_ int nIndex,
_Out_writes_bytes_opt_(nLength) PVOID pvInfo,
_In_ DWORD nLength,
_Out_opt_ LPDWORD lpnLengthNeeded);
WINUSERAPI
BOOL
WINAPI
GetUserObjectInformationW(
_In_ HANDLE hObj,
_In_ int nIndex,
_Out_writes_bytes_opt_(nLength) PVOID pvInfo,
_In_ DWORD nLength,
_Out_opt_ LPDWORD lpnLengthNeeded);
WINUSERAPI
BOOL
WINAPI
SetUserObjectInformationA(
_In_ HANDLE hObj,
_In_ int nIndex,
_In_reads_bytes_(nLength) PVOID pvInfo,
_In_ DWORD nLength);
WINUSERAPI
BOOL
WINAPI
SetUserObjectInformationW(
_In_ HANDLE hObj,
_In_ int nIndex,
_In_reads_bytes_(nLength) PVOID pvInfo,
_In_ DWORD nLength);
typedef struct tagWNDCLASSEXA {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEXA, *PWNDCLASSEXA, NEAR *NPWNDCLASSEXA, FAR *LPWNDCLASSEXA;
typedef struct tagWNDCLASSEXW {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCWSTR lpszMenuName;
LPCWSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEXW, *PWNDCLASSEXW, NEAR *NPWNDCLASSEXW, FAR *LPWNDCLASSEXW;
typedef WNDCLASSEXA WNDCLASSEX;
typedef PWNDCLASSEXA PWNDCLASSEX;
typedef NPWNDCLASSEXA NPWNDCLASSEX;
typedef LPWNDCLASSEXA LPWNDCLASSEX;
typedef struct tagWNDCLASSA {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
typedef struct tagWNDCLASSW {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCWSTR lpszMenuName;
LPCWSTR lpszClassName;
} WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
typedef WNDCLASSA WNDCLASS;
typedef PWNDCLASSA PWNDCLASS;
typedef NPWNDCLASSA NPWNDCLASS;
typedef LPWNDCLASSA LPWNDCLASS;
WINUSERAPI
BOOL
WINAPI
IsHungAppWindow(
_In_ HWND hwnd);
WINUSERAPI
VOID
WINAPI
DisableProcessWindowsGhosting(
VOID);
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
typedef struct tagMINMAXINFO {
POINT ptReserved;
POINT ptMaxSize;
POINT ptMaxPosition;
POINT ptMinTrackSize;
POINT ptMaxTrackSize;
} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
typedef struct tagCOPYDATASTRUCT {
ULONG_PTR dwData;
DWORD cbData;
_Field_size_bytes_(cbData) PVOID lpData;
} COPYDATASTRUCT, *PCOPYDATASTRUCT;
typedef struct tagMDINEXTMENU
{
HMENU hmenuIn;
HMENU hmenuNext;
HWND hwndNext;
} MDINEXTMENU, * PMDINEXTMENU, FAR * LPMDINEXTMENU;
typedef struct {
GUID PowerSetting;
DWORD DataLength;
UCHAR Data[1];
} POWERBROADCAST_SETTING, *PPOWERBROADCAST_SETTING;
WINUSERAPI
UINT
WINAPI
RegisterWindowMessageA(
_In_ LPCSTR lpString);
WINUSERAPI
UINT
WINAPI
RegisterWindowMessageW(
_In_ LPCWSTR lpString);
typedef struct tagWINDOWPOS {
HWND hwnd;
HWND hwndInsertAfter;
int x;
int y;
int cx;
int cy;
UINT flags;
} WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;
typedef struct tagNCCALCSIZE_PARAMS {
RECT rgrc[3];
PWINDOWPOS lppos;
} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
typedef struct tagTRACKMOUSEEVENT {
DWORD cbSize;
DWORD dwFlags;
HWND hwndTrack;
DWORD dwHoverTime;
} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;
WINUSERAPI
BOOL
WINAPI
TrackMouseEvent(
_Inout_ LPTRACKMOUSEEVENT lpEventTrack);
WINUSERAPI
BOOL
WINAPI
DrawEdge(
_In_ HDC hdc,
_Inout_ LPRECT qrc,
_In_ UINT edge,
_In_ UINT grfFlags);
WINUSERAPI
BOOL
WINAPI
DrawFrameControl(
_In_ HDC,
_Inout_ LPRECT,
_In_ UINT,
_In_ UINT);
WINUSERAPI
BOOL
WINAPI
DrawCaption(
_In_ HWND hwnd,
_In_ HDC hdc,
_In_ CONST RECT * lprect,
_In_ UINT flags);
WINUSERAPI
BOOL
WINAPI
DrawAnimatedRects(
_In_opt_ HWND hwnd,
_In_ int idAni,
_In_ CONST RECT *lprcFrom,
_In_ CONST RECT *lprcTo);
typedef struct tagACCEL {
BYTE fVirt;
WORD key;
WORD cmd;
} ACCEL, *LPACCEL;
typedef struct tagPAINTSTRUCT {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;
typedef struct tagCREATESTRUCTA {
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCSTR lpszName;
LPCSTR lpszClass;
DWORD dwExStyle;
} CREATESTRUCTA, *LPCREATESTRUCTA;
typedef struct tagCREATESTRUCTW {
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCWSTR lpszName;
LPCWSTR lpszClass;
DWORD dwExStyle;
} CREATESTRUCTW, *LPCREATESTRUCTW;
typedef CREATESTRUCTA CREATESTRUCT;
typedef LPCREATESTRUCTA LPCREATESTRUCT;
typedef struct tagWINDOWPLACEMENT {
UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
} WINDOWPLACEMENT;
typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT;
typedef struct tagNMHDR
{
HWND hwndFrom;
UINT_PTR idFrom;
UINT code;
} NMHDR;
typedef NMHDR FAR * LPNMHDR;
typedef struct tagSTYLESTRUCT
{
DWORD styleOld;
DWORD styleNew;
} STYLESTRUCT, * LPSTYLESTRUCT;
typedef struct tagMEASUREITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemWidth;
UINT itemHeight;
ULONG_PTR itemData;
} MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT;
typedef struct tagDRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
ULONG_PTR itemData;
} DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT;
typedef struct tagDELETEITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
HWND hwndItem;
ULONG_PTR itemData;
} DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT;
typedef struct tagCOMPAREITEMSTRUCT {
UINT CtlType;
UINT CtlID;
HWND hwndItem;
UINT itemID1;
ULONG_PTR itemData1;
UINT itemID2;
ULONG_PTR itemData2;
DWORD dwLocaleId;
} COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT;
WINUSERAPI
BOOL
WINAPI
GetMessageA(
_Out_ LPMSG lpMsg,
_In_opt_ HWND hWnd,
_In_ UINT wMsgFilterMin,
_In_ UINT wMsgFilterMax);
WINUSERAPI
BOOL
WINAPI
GetMessageW(
_Out_ LPMSG lpMsg,
_In_opt_ HWND hWnd,
_In_ UINT wMsgFilterMin,
_In_ UINT wMsgFilterMax);
WINUSERAPI
BOOL
WINAPI
TranslateMessage(
_In_ CONST MSG *lpMsg);
WINUSERAPI
LRESULT
WINAPI
DispatchMessageA(
_In_ CONST MSG *lpMsg);
WINUSERAPI
LRESULT
WINAPI
DispatchMessageW(
_In_ CONST MSG *lpMsg);
WINUSERAPI
BOOL
WINAPI
SetMessageQueue(
_In_ int cMessagesMax);
WINUSERAPI
BOOL
WINAPI
PeekMessageA(
_Out_ LPMSG lpMsg,
_In_opt_ HWND hWnd,
_In_ UINT wMsgFilterMin,
_In_ UINT wMsgFilterMax,
_In_ UINT wRemoveMsg);
WINUSERAPI
BOOL
WINAPI
PeekMessageW(
_Out_ LPMSG lpMsg,
_In_opt_ HWND hWnd,
_In_ UINT wMsgFilterMin,
_In_ UINT wMsgFilterMax,
_In_ UINT wRemoveMsg);
WINUSERAPI
BOOL
WINAPI
RegisterHotKey(
_In_opt_ HWND hWnd,
_In_ int id,
_In_ UINT fsModifiers,
_In_ UINT vk);
WINUSERAPI
BOOL
WINAPI
UnregisterHotKey(
_In_opt_ HWND hWnd,
_In_ int id);
_When_((uFlags&(EWX_POWEROFF|EWX_SHUTDOWN|EWX_FORCE))!=0,
__drv_preferredFunction("InitiateSystemShutdownEx",
"Legacy API. Rearchitect to avoid Reboot"))
WINUSERAPI
BOOL
WINAPI
ExitWindowsEx(
_In_ UINT uFlags,
_In_ DWORD dwReason);
WINUSERAPI
BOOL
WINAPI
SwapMouseButton(
_In_ BOOL fSwap);
WINUSERAPI
DWORD
WINAPI
GetMessagePos(
VOID);
WINUSERAPI
LONG
WINAPI
GetMessageTime(
VOID);
WINUSERAPI
LPARAM
WINAPI
GetMessageExtraInfo(
VOID);
WINUSERAPI
DWORD
WINAPI
GetUnpredictedMessagePos(
VOID);
WINUSERAPI
BOOL
WINAPI
IsWow64Message(
VOID);
WINUSERAPI
LPARAM
WINAPI
SetMessageExtraInfo(
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
SendMessageA(
_In_ HWND hWnd,
_In_ UINT Msg,
_Pre_maybenull_ _Post_valid_ WPARAM wParam,
_Pre_maybenull_ _Post_valid_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
SendMessageW(
_In_ HWND hWnd,
_In_ UINT Msg,
_Pre_maybenull_ _Post_valid_ WPARAM wParam,
_Pre_maybenull_ _Post_valid_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
SendMessageTimeoutA(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam,
_In_ UINT fuFlags,
_In_ UINT uTimeout,
_Out_opt_ PDWORD_PTR lpdwResult);
WINUSERAPI
LRESULT
WINAPI
SendMessageTimeoutW(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam,
_In_ UINT fuFlags,
_In_ UINT uTimeout,
_Out_opt_ PDWORD_PTR lpdwResult);
WINUSERAPI
BOOL
WINAPI
SendNotifyMessageA(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
SendNotifyMessageW(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
SendMessageCallbackA(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam,
_In_ SENDASYNCPROC lpResultCallBack,
_In_ ULONG_PTR dwData);
WINUSERAPI
BOOL
WINAPI
SendMessageCallbackW(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam,
_In_ SENDASYNCPROC lpResultCallBack,
_In_ ULONG_PTR dwData);
typedef struct {
UINT cbSize;
HDESK hdesk;
HWND hwnd;
LUID luid;
} BSMINFO, *PBSMINFO;
WINUSERAPI
long
WINAPI
BroadcastSystemMessageExA(
_In_ DWORD flags,
_Inout_opt_ LPDWORD lpInfo,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam,
_Out_opt_ PBSMINFO pbsmInfo);
WINUSERAPI
long
WINAPI
BroadcastSystemMessageExW(
_In_ DWORD flags,
_Inout_opt_ LPDWORD lpInfo,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam,
_Out_opt_ PBSMINFO pbsmInfo);
WINUSERAPI
long
WINAPI
BroadcastSystemMessageA(
_In_ DWORD flags,
_Inout_opt_ LPDWORD lpInfo,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
long
WINAPI
BroadcastSystemMessageW(
_In_ DWORD flags,
_Inout_opt_ LPDWORD lpInfo,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
typedef PVOID HDEVNOTIFY;
typedef HDEVNOTIFY *PHDEVNOTIFY;
WINUSERAPI
HDEVNOTIFY
WINAPI
RegisterDeviceNotificationA(
_In_ HANDLE hRecipient,
_In_ LPVOID NotificationFilter,
_In_ DWORD Flags);
WINUSERAPI
HDEVNOTIFY
WINAPI
RegisterDeviceNotificationW(
_In_ HANDLE hRecipient,
_In_ LPVOID NotificationFilter,
_In_ DWORD Flags);
WINUSERAPI
BOOL
WINAPI
UnregisterDeviceNotification(
_In_ HDEVNOTIFY Handle
);
typedef PVOID HPOWERNOTIFY;
typedef HPOWERNOTIFY *PHPOWERNOTIFY;
WINUSERAPI
HPOWERNOTIFY
WINAPI
RegisterPowerSettingNotification(
IN HANDLE hRecipient,
IN LPCGUID PowerSettingGuid,
IN DWORD Flags
);
WINUSERAPI
BOOL
WINAPI
UnregisterPowerSettingNotification(
IN HPOWERNOTIFY Handle
);
WINUSERAPI
HPOWERNOTIFY
WINAPI
RegisterSuspendResumeNotification (
IN HANDLE hRecipient,
IN DWORD Flags
);
WINUSERAPI
BOOL
WINAPI
UnregisterSuspendResumeNotification (
IN HPOWERNOTIFY Handle
);
WINUSERAPI
BOOL
WINAPI
PostMessageA(
_In_opt_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
PostMessageW(
_In_opt_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
PostThreadMessageA(
_In_ DWORD idThread,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
PostThreadMessageW(
_In_ DWORD idThread,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
AttachThreadInput(
_In_ DWORD idAttach,
_In_ DWORD idAttachTo,
_In_ BOOL fAttach);
WINUSERAPI
BOOL
WINAPI
ReplyMessage(
_In_ LRESULT lResult);
WINUSERAPI
BOOL
WINAPI
WaitMessage(
VOID);
WINUSERAPI
DWORD
WINAPI
WaitForInputIdle(
_In_ HANDLE hProcess,
_In_ DWORD dwMilliseconds);
WINUSERAPI
LRESULT
WINAPI
DefWindowProcA(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
DefWindowProcW(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
VOID
WINAPI
PostQuitMessage(
_In_ int nExitCode);
WINUSERAPI
LRESULT
WINAPI
CallWindowProcA(
_In_ WNDPROC lpPrevWndFunc,
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
CallWindowProcW(
_In_ WNDPROC lpPrevWndFunc,
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
InSendMessage(
VOID);
WINUSERAPI
DWORD
WINAPI
InSendMessageEx(
_Reserved_ LPVOID lpReserved);
WINUSERAPI
UINT
WINAPI
GetDoubleClickTime(
VOID);
WINUSERAPI
BOOL
WINAPI
SetDoubleClickTime(
_In_ UINT);
WINUSERAPI
ATOM
WINAPI
RegisterClassA(
_In_ CONST WNDCLASSA *lpWndClass);
WINUSERAPI
ATOM
WINAPI
RegisterClassW(
_In_ CONST WNDCLASSW *lpWndClass);
WINUSERAPI
BOOL
WINAPI
UnregisterClassA(
_In_ LPCSTR lpClassName,
_In_opt_ HINSTANCE hInstance);
WINUSERAPI
BOOL
WINAPI
UnregisterClassW(
_In_ LPCWSTR lpClassName,
_In_opt_ HINSTANCE hInstance);
_Success_(return)
WINUSERAPI
BOOL
WINAPI
GetClassInfoA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpClassName,
_Out_ LPWNDCLASSA lpWndClass);
_Success_(return)
WINUSERAPI
BOOL
WINAPI
GetClassInfoW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpClassName,
_Out_ LPWNDCLASSW lpWndClass);
WINUSERAPI
ATOM
WINAPI
RegisterClassExA(
_In_ CONST WNDCLASSEXA *);
WINUSERAPI
ATOM
WINAPI
RegisterClassExW(
_In_ CONST WNDCLASSEXW *);
_Success_(return)
WINUSERAPI
BOOL
WINAPI
GetClassInfoExA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpszClass,
_Out_ LPWNDCLASSEXA lpwcx);
_Success_(return)
WINUSERAPI
BOOL
WINAPI
GetClassInfoExW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpszClass,
_Out_ LPWNDCLASSEXW lpwcx);
typedef BOOLEAN (WINAPI * PREGISTERCLASSNAMEW)(LPCWSTR);
WINUSERAPI
HWND
WINAPI
CreateWindowExA(
_In_ DWORD dwExStyle,
_In_opt_ LPCSTR lpClassName,
_In_opt_ LPCSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HMENU hMenu,
_In_opt_ HINSTANCE hInstance,
_In_opt_ LPVOID lpParam);
WINUSERAPI
HWND
WINAPI
CreateWindowExW(
_In_ DWORD dwExStyle,
_In_opt_ LPCWSTR lpClassName,
_In_opt_ LPCWSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HMENU hMenu,
_In_opt_ HINSTANCE hInstance,
_In_opt_ LPVOID lpParam);
WINUSERAPI
BOOL
WINAPI
IsWindow(
_In_opt_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
IsMenu(
_In_ HMENU hMenu);
WINUSERAPI
BOOL
WINAPI
IsChild(
_In_ HWND hWndParent,
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
DestroyWindow(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
ShowWindow(
_In_ HWND hWnd,
_In_ int nCmdShow);
WINUSERAPI
BOOL
WINAPI
AnimateWindow(
_In_ HWND hWnd,
_In_ DWORD dwTime,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
UpdateLayeredWindow(
_In_ HWND hWnd,
_In_opt_ HDC hdcDst,
_In_opt_ POINT* pptDst,
_In_opt_ SIZE* psize,
_In_opt_ HDC hdcSrc,
_In_opt_ POINT* pptSrc,
_In_ COLORREF crKey,
_In_opt_ BLENDFUNCTION* pblend,
_In_ DWORD dwFlags);
typedef struct tagUPDATELAYEREDWINDOWINFO
{
DWORD cbSize;
HDC hdcDst;
const POINT* pptDst;
const SIZE* psize;
HDC hdcSrc;
const POINT* pptSrc;
COLORREF crKey;
const BLENDFUNCTION* pblend;
DWORD dwFlags;
const RECT* prcDirty;
} UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO;
WINUSERAPI
BOOL
WINAPI
UpdateLayeredWindowIndirect(
_In_ HWND hWnd,
_In_ const UPDATELAYEREDWINDOWINFO* pULWInfo);
WINUSERAPI
BOOL
WINAPI
GetLayeredWindowAttributes(
_In_ HWND hwnd,
_Out_opt_ COLORREF* pcrKey,
_Out_opt_ BYTE* pbAlpha,
_Out_opt_ DWORD* pdwFlags);
WINUSERAPI
BOOL
WINAPI
PrintWindow(
_In_ HWND hwnd,
_In_ HDC hdcBlt,
_In_ UINT nFlags);
WINUSERAPI
BOOL
WINAPI
SetLayeredWindowAttributes(
_In_ HWND hwnd,
_In_ COLORREF crKey,
_In_ BYTE bAlpha,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
ShowWindowAsync(
_In_ HWND hWnd,
_In_ int nCmdShow);
WINUSERAPI
BOOL
WINAPI
FlashWindow(
_In_ HWND hWnd,
_In_ BOOL bInvert);
typedef struct {
UINT cbSize;
HWND hwnd;
DWORD dwFlags;
UINT uCount;
DWORD dwTimeout;
} FLASHWINFO, *PFLASHWINFO;
WINUSERAPI
BOOL
WINAPI
FlashWindowEx(
_In_ PFLASHWINFO pfwi);
WINUSERAPI
BOOL
WINAPI
ShowOwnedPopups(
_In_ HWND hWnd,
_In_ BOOL fShow);
WINUSERAPI
BOOL
WINAPI
OpenIcon(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
CloseWindow(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
MoveWindow(
_In_ HWND hWnd,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight,
_In_ BOOL bRepaint);
WINUSERAPI
BOOL
WINAPI
SetWindowPos(
_In_ HWND hWnd,
_In_opt_ HWND hWndInsertAfter,
_In_ int X,
_In_ int Y,
_In_ int cx,
_In_ int cy,
_In_ UINT uFlags);
WINUSERAPI
BOOL
WINAPI
GetWindowPlacement(
_In_ HWND hWnd,
_Inout_ WINDOWPLACEMENT *lpwndpl);
WINUSERAPI
BOOL
WINAPI
SetWindowPlacement(
_In_ HWND hWnd,
_In_ CONST WINDOWPLACEMENT *lpwndpl);
WINUSERAPI
BOOL
WINAPI
GetWindowDisplayAffinity(
_In_ HWND hWnd,
_Out_ DWORD* pdwAffinity);
WINUSERAPI
BOOL
WINAPI
SetWindowDisplayAffinity(
_In_ HWND hWnd,
_In_ DWORD dwAffinity);
WINUSERAPI
HDWP
WINAPI
BeginDeferWindowPos(
_In_ int nNumWindows);
WINUSERAPI
HDWP
WINAPI
DeferWindowPos(
_In_ HDWP hWinPosInfo,
_In_ HWND hWnd,
_In_opt_ HWND hWndInsertAfter,
_In_ int x,
_In_ int y,
_In_ int cx,
_In_ int cy,
_In_ UINT uFlags);
WINUSERAPI
BOOL
WINAPI
EndDeferWindowPos(
_In_ HDWP hWinPosInfo);
WINUSERAPI
BOOL
WINAPI
IsWindowVisible(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
IsIconic(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
AnyPopup(
VOID);
WINUSERAPI
BOOL
WINAPI
BringWindowToTop(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
IsZoomed(
_In_ HWND hWnd);
typedef struct {
DWORD style;
DWORD dwExtendedStyle;
WORD cdit;
short x;
short y;
short cx;
short cy;
} DLGTEMPLATE;
typedef DLGTEMPLATE *LPDLGTEMPLATEA;
typedef DLGTEMPLATE *LPDLGTEMPLATEW;
typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
typedef struct {
DWORD style;
DWORD dwExtendedStyle;
short x;
short y;
short cx;
short cy;
WORD id;
} DLGITEMTEMPLATE;
typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
WINUSERAPI
HWND
WINAPI
CreateDialogParamA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpTemplateName,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
HWND
WINAPI
CreateDialogParamW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpTemplateName,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
HWND
WINAPI
CreateDialogIndirectParamA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCDLGTEMPLATEA lpTemplate,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
HWND
WINAPI
CreateDialogIndirectParamW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCDLGTEMPLATEW lpTemplate,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
INT_PTR
WINAPI
DialogBoxParamA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpTemplateName,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
INT_PTR
WINAPI
DialogBoxParamW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpTemplateName,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
INT_PTR
WINAPI
DialogBoxIndirectParamA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCDLGTEMPLATEA hDialogTemplate,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
INT_PTR
WINAPI
DialogBoxIndirectParamW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCDLGTEMPLATEW hDialogTemplate,
_In_opt_ HWND hWndParent,
_In_opt_ DLGPROC lpDialogFunc,
_In_ LPARAM dwInitParam);
WINUSERAPI
BOOL
WINAPI
EndDialog(
_In_ HWND hDlg,
_In_ INT_PTR nResult);
WINUSERAPI
HWND
WINAPI
GetDlgItem(
_In_opt_ HWND hDlg,
_In_ int nIDDlgItem);
WINUSERAPI
BOOL
WINAPI
SetDlgItemInt(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_In_ UINT uValue,
_In_ BOOL bSigned);
WINUSERAPI
UINT
WINAPI
GetDlgItemInt(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_Out_opt_ BOOL *lpTranslated,
_In_ BOOL bSigned);
WINUSERAPI
BOOL
WINAPI
SetDlgItemTextA(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_In_ LPCSTR lpString);
WINUSERAPI
BOOL
WINAPI
SetDlgItemTextW(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_In_ LPCWSTR lpString);
_Ret_range_(0, cchMax)
WINUSERAPI
UINT
WINAPI
GetDlgItemTextA(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_Out_writes_(cchMax) LPSTR lpString,
_In_ int cchMax);
_Ret_range_(0, cchMax)
WINUSERAPI
UINT
WINAPI
GetDlgItemTextW(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_Out_writes_(cchMax) LPWSTR lpString,
_In_ int cchMax);
WINUSERAPI
BOOL
WINAPI
CheckDlgButton(
_In_ HWND hDlg,
_In_ int nIDButton,
_In_ UINT uCheck);
WINUSERAPI
BOOL
WINAPI
CheckRadioButton(
_In_ HWND hDlg,
_In_ int nIDFirstButton,
_In_ int nIDLastButton,
_In_ int nIDCheckButton);
WINUSERAPI
UINT
WINAPI
IsDlgButtonChecked(
_In_ HWND hDlg,
_In_ int nIDButton);
WINUSERAPI
LRESULT
WINAPI
SendDlgItemMessageA(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
SendDlgItemMessageW(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
HWND
WINAPI
GetNextDlgGroupItem(
_In_ HWND hDlg,
_In_opt_ HWND hCtl,
_In_ BOOL bPrevious);
WINUSERAPI
HWND
WINAPI
GetNextDlgTabItem(
_In_ HWND hDlg,
_In_opt_ HWND hCtl,
_In_ BOOL bPrevious);
WINUSERAPI
int
WINAPI
GetDlgCtrlID(
_In_ HWND hWnd);
WINUSERAPI
long
WINAPI
GetDialogBaseUnits(VOID);
WINUSERAPI
LRESULT
WINAPI
DefDlgProcA(
_In_ HWND hDlg,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
DefDlgProcW(
_In_ HWND hDlg,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
typedef enum DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS {
DCDC_DEFAULT = 0x0000,
DCDC_DISABLE_FONT_UPDATE = 0x0001,
DCDC_DISABLE_RELAYOUT = 0x0002,
} DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS;
DEFINE_ENUM_FLAG_OPERATORS(DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS);
BOOL
WINAPI
SetDialogControlDpiChangeBehavior(
_In_ HWND hWnd,
_In_ DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS mask,
_In_ DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS values);
DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS
WINAPI
GetDialogControlDpiChangeBehavior(
_In_ HWND hWnd);
typedef enum DIALOG_DPI_CHANGE_BEHAVIORS {
DDC_DEFAULT = 0x0000,
DDC_DISABLE_ALL = 0x0001,
DDC_DISABLE_RESIZE = 0x0002,
DDC_DISABLE_CONTROL_RELAYOUT = 0x0004,
} DIALOG_DPI_CHANGE_BEHAVIORS;
DEFINE_ENUM_FLAG_OPERATORS(DIALOG_DPI_CHANGE_BEHAVIORS);
BOOL
WINAPI
SetDialogDpiChangeBehavior(
_In_ HWND hDlg,
_In_ DIALOG_DPI_CHANGE_BEHAVIORS mask,
_In_ DIALOG_DPI_CHANGE_BEHAVIORS values);
DIALOG_DPI_CHANGE_BEHAVIORS
WINAPI
GetDialogDpiChangeBehavior(
_In_ HWND hDlg);
WINUSERAPI
BOOL
WINAPI
CallMsgFilterA(
_In_ LPMSG lpMsg,
_In_ int nCode);
WINUSERAPI
BOOL
WINAPI
CallMsgFilterW(
_In_ LPMSG lpMsg,
_In_ int nCode);
WINUSERAPI
BOOL
WINAPI
OpenClipboard(
_In_opt_ HWND hWndNewOwner);
WINUSERAPI
BOOL
WINAPI
CloseClipboard(
VOID);
WINUSERAPI
DWORD
WINAPI
GetClipboardSequenceNumber(
VOID);
WINUSERAPI
HWND
WINAPI
GetClipboardOwner(
VOID);
WINUSERAPI
HWND
WINAPI
SetClipboardViewer(
_In_ HWND hWndNewViewer);
WINUSERAPI
HWND
WINAPI
GetClipboardViewer(
VOID);
WINUSERAPI
BOOL
WINAPI
ChangeClipboardChain(
_In_ HWND hWndRemove,
_In_ HWND hWndNewNext);
WINUSERAPI
HANDLE
WINAPI
SetClipboardData(
_In_ UINT uFormat,
_In_opt_ HANDLE hMem);
WINUSERAPI
HANDLE
WINAPI
GetClipboardData(
_In_ UINT uFormat);
typedef struct tagGETCLIPBMETADATA {
UINT Version;
BOOL IsDelayRendered;
BOOL IsSynthetic;
} GETCLIPBMETADATA, *PGETCLIPBMETADATA;
WINUSERAPI
BOOL
WINAPI
GetClipboardMetadata(
UINT format,
_Inout_ PGETCLIPBMETADATA metadata);
WINUSERAPI
UINT
WINAPI
RegisterClipboardFormatA(
_In_ LPCSTR lpszFormat);
WINUSERAPI
UINT
WINAPI
RegisterClipboardFormatW(
_In_ LPCWSTR lpszFormat);
WINUSERAPI
int
WINAPI
CountClipboardFormats(
VOID);
WINUSERAPI
UINT
WINAPI
EnumClipboardFormats(
_In_ UINT format);
WINUSERAPI
int
WINAPI
GetClipboardFormatNameA(
_In_ UINT format,
_Out_writes_(cchMaxCount) LPSTR lpszFormatName,
_In_ int cchMaxCount);
WINUSERAPI
int
WINAPI
GetClipboardFormatNameW(
_In_ UINT format,
_Out_writes_(cchMaxCount) LPWSTR lpszFormatName,
_In_ int cchMaxCount);
WINUSERAPI
BOOL
WINAPI
EmptyClipboard(
VOID);
WINUSERAPI
BOOL
WINAPI
IsClipboardFormatAvailable(
_In_ UINT format);
WINUSERAPI
int
WINAPI
GetPriorityClipboardFormat(
_In_reads_(cFormats) UINT *paFormatPriorityList,
_In_ int cFormats);
WINUSERAPI
HWND
WINAPI
GetOpenClipboardWindow(
VOID);
WINUSERAPI
BOOL
WINAPI
AddClipboardFormatListener(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
RemoveClipboardFormatListener(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
GetUpdatedClipboardFormats(
_Out_writes_(cFormats) PUINT lpuiFormats,
_In_ UINT cFormats,
_Out_ PUINT pcFormatsOut);
WINUSERAPI
BOOL
WINAPI
CharToOemA(
_In_ LPCSTR pSrc,
_Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPSTR pDst);
WINUSERAPI
BOOL
WINAPI
CharToOemW(
_In_ LPCWSTR pSrc,
_Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPSTR pDst);
__drv_preferredFunction("OemToCharBuff","Does not validate buffer size")
WINUSERAPI
BOOL
WINAPI
OemToCharA(
_In_ LPCSTR pSrc,
_Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPSTR pDst);
__drv_preferredFunction("OemToCharBuff","Does not validate buffer size")
WINUSERAPI
BOOL
WINAPI
OemToCharW(
_In_ LPCSTR pSrc,
_Out_writes_(_Inexpressible_(strlen(pSrc) + 1)) LPWSTR pDst);
WINUSERAPI
BOOL
WINAPI
CharToOemBuffA(
_In_ LPCSTR lpszSrc,
_Out_writes_(cchDstLength) LPSTR lpszDst,
_In_ DWORD cchDstLength);
WINUSERAPI
BOOL
WINAPI
CharToOemBuffW(
_In_ LPCWSTR lpszSrc,
_Out_writes_(cchDstLength) LPSTR lpszDst,
_In_ DWORD cchDstLength);
WINUSERAPI
BOOL
WINAPI
OemToCharBuffA(
_In_ LPCSTR lpszSrc,
_Out_writes_(cchDstLength) LPSTR lpszDst,
_In_ DWORD cchDstLength);
WINUSERAPI
BOOL
WINAPI
OemToCharBuffW(
_In_ LPCSTR lpszSrc,
_Out_writes_(cchDstLength) LPWSTR lpszDst,
_In_ DWORD cchDstLength);
WINUSERAPI
LPSTR
WINAPI
CharUpperA(
_Inout_ LPSTR lpsz);
WINUSERAPI
LPWSTR
WINAPI
CharUpperW(
_Inout_ LPWSTR lpsz);
WINUSERAPI
DWORD
WINAPI
CharUpperBuffA(
_Inout_updates_(cchLength) LPSTR lpsz,
_In_ DWORD cchLength);
WINUSERAPI
DWORD
WINAPI
CharUpperBuffW(
_Inout_updates_(cchLength) LPWSTR lpsz,
_In_ DWORD cchLength);
WINUSERAPI
LPSTR
WINAPI
CharLowerA(
_Inout_ LPSTR lpsz);
WINUSERAPI
LPWSTR
WINAPI
CharLowerW(
_Inout_ LPWSTR lpsz);
WINUSERAPI
DWORD
WINAPI
CharLowerBuffA(
_Inout_updates_(cchLength) LPSTR lpsz,
_In_ DWORD cchLength);
WINUSERAPI
DWORD
WINAPI
CharLowerBuffW(
_Inout_updates_(cchLength) LPWSTR lpsz,
_In_ DWORD cchLength);
WINUSERAPI
LPSTR
WINAPI
CharNextA(
_In_ LPCSTR lpsz);
WINUSERAPI
LPWSTR
WINAPI
CharNextW(
_In_ LPCWSTR lpsz);
WINUSERAPI
LPSTR
WINAPI
CharPrevA(
_In_ LPCSTR lpszStart,
_In_ LPCSTR lpszCurrent);
WINUSERAPI
LPWSTR
WINAPI
CharPrevW(
_In_ LPCWSTR lpszStart,
_In_ LPCWSTR lpszCurrent);
WINUSERAPI
LPSTR
WINAPI
CharNextExA(
_In_ WORD CodePage,
_In_ LPCSTR lpCurrentChar,
_In_ DWORD dwFlags);
WINUSERAPI
LPSTR
WINAPI
CharPrevExA(
_In_ WORD CodePage,
_In_ LPCSTR lpStart,
_In_ LPCSTR lpCurrentChar,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
IsCharAlphaA(
_In_ CHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharAlphaW(
_In_ WCHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharAlphaNumericA(
_In_ CHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharAlphaNumericW(
_In_ WCHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharUpperA(
_In_ CHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharUpperW(
_In_ WCHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharLowerA(
_In_ CHAR ch);
WINUSERAPI
BOOL
WINAPI
IsCharLowerW(
_In_ WCHAR ch);
WINUSERAPI
HWND
WINAPI
SetFocus(
_In_opt_ HWND hWnd);
WINUSERAPI
HWND
WINAPI
GetActiveWindow(
VOID);
WINUSERAPI
HWND
WINAPI
GetFocus(
VOID);
WINUSERAPI
UINT
WINAPI
GetKBCodePage(
VOID);
WINUSERAPI
SHORT
WINAPI
GetKeyState(
_In_ int nVirtKey);
WINUSERAPI
SHORT
WINAPI
GetAsyncKeyState(
_In_ int vKey);
WINUSERAPI
_Check_return_
BOOL
WINAPI
GetKeyboardState(
_Out_writes_(256) PBYTE lpKeyState);
WINUSERAPI
BOOL
WINAPI
SetKeyboardState(
_In_reads_(256) LPBYTE lpKeyState);
WINUSERAPI
int
WINAPI
GetKeyNameTextA(
_In_ LONG lParam,
_Out_writes_(cchSize) LPSTR lpString,
_In_ int cchSize);
WINUSERAPI
int
WINAPI
GetKeyNameTextW(
_In_ LONG lParam,
_Out_writes_(cchSize) LPWSTR lpString,
_In_ int cchSize);
WINUSERAPI
int
WINAPI
GetKeyboardType(
_In_ int nTypeFlag);
WINUSERAPI
int
WINAPI
ToAscii(
_In_ UINT uVirtKey,
_In_ UINT uScanCode,
_In_reads_opt_(256) CONST BYTE *lpKeyState,
_Out_ LPWORD lpChar,
_In_ UINT uFlags);
WINUSERAPI
int
WINAPI
ToAsciiEx(
_In_ UINT uVirtKey,
_In_ UINT uScanCode,
_In_reads_opt_(256) CONST BYTE *lpKeyState,
_Out_ LPWORD lpChar,
_In_ UINT uFlags,
_In_opt_ HKL dwhkl);
WINUSERAPI
int
WINAPI
ToUnicode(
_In_ UINT wVirtKey,
_In_ UINT wScanCode,
_In_reads_bytes_opt_(256) CONST BYTE *lpKeyState,
_Out_writes_(cchBuff) LPWSTR pwszBuff,
_In_ int cchBuff,
_In_ UINT wFlags);
WINUSERAPI
DWORD
WINAPI
OemKeyScan(
_In_ WORD wOemChar);
WINUSERAPI
SHORT
WINAPI
VkKeyScanA(
_In_ CHAR ch);
WINUSERAPI
SHORT
WINAPI
VkKeyScanW(
_In_ WCHAR ch);
WINUSERAPI
SHORT
WINAPI
VkKeyScanExA(
_In_ CHAR ch,
_In_ HKL dwhkl);
WINUSERAPI
SHORT
WINAPI
VkKeyScanExW(
_In_ WCHAR ch,
_In_ HKL dwhkl);
WINUSERAPI
VOID
WINAPI
keybd_event(
_In_ BYTE bVk,
_In_ BYTE bScan,
_In_ DWORD dwFlags,
_In_ ULONG_PTR dwExtraInfo);
WINUSERAPI
VOID
WINAPI
mouse_event(
_In_ DWORD dwFlags,
_In_ DWORD dx,
_In_ DWORD dy,
_In_ DWORD dwData,
_In_ ULONG_PTR dwExtraInfo);
typedef struct tagMOUSEINPUT {
LONG dx;
LONG dy;
DWORD mouseData;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT;
typedef struct tagKEYBDINPUT {
WORD wVk;
WORD wScan;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT;
typedef struct tagHARDWAREINPUT {
DWORD uMsg;
WORD wParamL;
WORD wParamH;
} HARDWAREINPUT, *PHARDWAREINPUT, FAR* LPHARDWAREINPUT;
typedef struct tagINPUT {
DWORD type;
union
{
MOUSEINPUT mi;
KEYBDINPUT ki;
HARDWAREINPUT hi;
} DUMMYUNIONNAME;
} INPUT, *PINPUT, FAR* LPINPUT;
WINUSERAPI
UINT
WINAPI
SendInput(
_In_ UINT cInputs,
_In_reads_(cInputs) LPINPUT pInputs,
_In_ int cbSize);
DECLARE_HANDLE(HTOUCHINPUT);
typedef struct tagTOUCHINPUT {
LONG x;
LONG y;
HANDLE hSource;
DWORD dwID;
DWORD dwFlags;
DWORD dwMask;
DWORD dwTime;
ULONG_PTR dwExtraInfo;
DWORD cxContact;
DWORD cyContact;
} TOUCHINPUT, *PTOUCHINPUT;
typedef TOUCHINPUT const * PCTOUCHINPUT;
WINUSERAPI
BOOL
WINAPI
GetTouchInputInfo(
_In_ HTOUCHINPUT hTouchInput,
_In_ UINT cInputs,
_Out_writes_(cInputs) PTOUCHINPUT pInputs,
_In_ int cbSize);
WINUSERAPI
BOOL
WINAPI
CloseTouchInputHandle(
_In_ HTOUCHINPUT hTouchInput);
WINUSERAPI
BOOL
WINAPI
RegisterTouchWindow(
_In_ HWND hwnd,
_In_ ULONG ulFlags);
WINUSERAPI
BOOL
WINAPI
UnregisterTouchWindow(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
IsTouchWindow(
_In_ HWND hwnd,
_Out_opt_ PULONG pulFlags);
enum tagPOINTER_INPUT_TYPE {
PT_POINTER = 1,
PT_TOUCH = 2,
PT_PEN = 3,
PT_MOUSE = 4,
PT_TOUCHPAD = 5,
};
typedef DWORD POINTER_INPUT_TYPE;
typedef UINT32 POINTER_FLAGS;
typedef enum tagPOINTER_BUTTON_CHANGE_TYPE {
POINTER_CHANGE_NONE,
POINTER_CHANGE_FIRSTBUTTON_DOWN,
POINTER_CHANGE_FIRSTBUTTON_UP,
POINTER_CHANGE_SECONDBUTTON_DOWN,
POINTER_CHANGE_SECONDBUTTON_UP,
POINTER_CHANGE_THIRDBUTTON_DOWN,
POINTER_CHANGE_THIRDBUTTON_UP,
POINTER_CHANGE_FOURTHBUTTON_DOWN,
POINTER_CHANGE_FOURTHBUTTON_UP,
POINTER_CHANGE_FIFTHBUTTON_DOWN,
POINTER_CHANGE_FIFTHBUTTON_UP,
} POINTER_BUTTON_CHANGE_TYPE;
typedef struct tagPOINTER_INFO {
POINTER_INPUT_TYPE pointerType;
UINT32 pointerId;
UINT32 frameId;
POINTER_FLAGS pointerFlags;
HANDLE sourceDevice;
HWND hwndTarget;
POINT ptPixelLocation;
POINT ptHimetricLocation;
POINT ptPixelLocationRaw;
POINT ptHimetricLocationRaw;
DWORD dwTime;
UINT32 historyCount;
INT32 InputData;
DWORD dwKeyStates;
UINT64 PerformanceCount;
POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
} POINTER_INFO;
typedef UINT32 TOUCH_FLAGS;
typedef UINT32 TOUCH_MASK;
typedef struct tagPOINTER_TOUCH_INFO {
POINTER_INFO pointerInfo;
TOUCH_FLAGS touchFlags;
TOUCH_MASK touchMask;
RECT rcContact;
RECT rcContactRaw;
UINT32 orientation;
UINT32 pressure;
} POINTER_TOUCH_INFO;
typedef UINT32 PEN_FLAGS;
typedef UINT32 PEN_MASK;
typedef struct tagPOINTER_PEN_INFO {
POINTER_INFO pointerInfo;
PEN_FLAGS penFlags;
PEN_MASK penMask;
UINT32 pressure;
UINT32 rotation;
INT32 tiltX;
INT32 tiltY;
} POINTER_PEN_INFO;
typedef enum {
POINTER_FEEDBACK_DEFAULT = 1,
POINTER_FEEDBACK_INDIRECT = 2,
POINTER_FEEDBACK_NONE = 3,
} POINTER_FEEDBACK_MODE;
WINUSERAPI
BOOL
WINAPI
InitializeTouchInjection(
_In_ UINT32 maxCount,
_In_ DWORD dwMode);
WINUSERAPI
BOOL
WINAPI
InjectTouchInput(
_In_ UINT32 count,
_In_reads_(count) CONST POINTER_TOUCH_INFO *contacts);
typedef struct tagUSAGE_PROPERTIES {
USHORT level;
USHORT page;
USHORT usage;
INT32 logicalMinimum;
INT32 logicalMaximum;
USHORT unit;
USHORT exponent;
BYTE count;
INT32 physicalMinimum;
INT32 physicalMaximum;
}USAGE_PROPERTIES, *PUSAGE_PROPERTIES;
typedef struct tagPOINTER_TYPE_INFO {
POINTER_INPUT_TYPE type;
union{
POINTER_TOUCH_INFO touchInfo;
POINTER_PEN_INFO penInfo;
} DUMMYUNIONNAME;
}POINTER_TYPE_INFO, *PPOINTER_TYPE_INFO;
typedef struct tagINPUT_INJECTION_VALUE {
USHORT page;
USHORT usage;
INT32 value;
USHORT index;
}INPUT_INJECTION_VALUE, *PINPUT_INJECTION_VALUE;
WINUSERAPI
BOOL
WINAPI
GetPointerType(
_In_ UINT32 pointerId,
_Out_ POINTER_INPUT_TYPE *pointerType);
WINUSERAPI
BOOL
WINAPI
GetPointerCursorId(
_In_ UINT32 pointerId,
_Out_ UINT32 *cursorId);
WINUSERAPI
BOOL
WINAPI
GetPointerInfo(
_In_ UINT32 pointerId,
_Out_writes_(1) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Out_writes_opt_(*entriesCount) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameInfo(
_In_ UINT32 pointerId,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*pointerCount) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*entriesCount * *pointerCount) POINTER_INFO *pointerInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerTouchInfo(
_In_ UINT32 pointerId,
_Out_writes_(1) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerTouchInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Out_writes_opt_(*entriesCount) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchInfo(
_In_ UINT32 pointerId,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*pointerCount) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*entriesCount * *pointerCount) POINTER_TOUCH_INFO *touchInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerPenInfo(
_In_ UINT32 pointerId,
_Out_writes_(1) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerPenInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Out_writes_opt_(*entriesCount) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFramePenInfo(
_In_ UINT32 pointerId,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*pointerCount) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
GetPointerFramePenInfoHistory(
_In_ UINT32 pointerId,
_Inout_ UINT32 *entriesCount,
_Inout_ UINT32 *pointerCount,
_Out_writes_opt_(*entriesCount * *pointerCount) POINTER_PEN_INFO *penInfo);
WINUSERAPI
BOOL
WINAPI
SkipPointerFrameMessages(
_In_ UINT32 pointerId);
WINUSERAPI
BOOL
WINAPI
RegisterPointerInputTarget(
_In_ HWND hwnd,
_In_ POINTER_INPUT_TYPE pointerType);
WINUSERAPI
BOOL
WINAPI
UnregisterPointerInputTarget(
_In_ HWND hwnd,
_In_ POINTER_INPUT_TYPE pointerType);
WINUSERAPI
BOOL
WINAPI
RegisterPointerInputTargetEx(
_In_ HWND hwnd,
_In_ POINTER_INPUT_TYPE pointerType,
_In_ BOOL fObserve);
WINUSERAPI
BOOL
WINAPI
UnregisterPointerInputTargetEx(
_In_ HWND hwnd,
_In_ POINTER_INPUT_TYPE pointerType);
DECLARE_HANDLE(HSYNTHETICPOINTERDEVICE);
WINUSERAPI
HSYNTHETICPOINTERDEVICE
WINAPI
CreateSyntheticPointerDevice(
_In_ POINTER_INPUT_TYPE pointerType,
_In_ ULONG maxCount,
_In_ POINTER_FEEDBACK_MODE mode);
WINUSERAPI
BOOL
WINAPI
InjectSyntheticPointerInput(
_In_ HSYNTHETICPOINTERDEVICE device,
_In_reads_(count) CONST POINTER_TYPE_INFO* pointerInfo,
_In_ UINT32 count);
WINUSERAPI
VOID
WINAPI
DestroySyntheticPointerDevice(
_In_ HSYNTHETICPOINTERDEVICE device);
WINUSERAPI
BOOL
WINAPI
EnableMouseInPointer(
_In_ BOOL fEnable);
WINUSERAPI
BOOL
WINAPI
IsMouseInPointerEnabled(
VOID);
WINUSERAPI
BOOL
WINAPI
EnableMouseInPointerForThread(VOID);
WINUSERAPI
BOOL
WINAPI
RegisterTouchHitTestingWindow(
_In_ HWND hwnd,
_In_ ULONG value);
typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION
{
UINT16 score;
POINT adjustedPoint;
} TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, *PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
typedef struct tagTOUCH_HIT_TESTING_INPUT
{
UINT32 pointerId;
POINT point;
RECT boundingBox;
RECT nonOccludedBoundingBox;
UINT32 orientation;
} TOUCH_HIT_TESTING_INPUT, *PTOUCH_HIT_TESTING_INPUT;
WINUSERAPI
BOOL
WINAPI
EvaluateProximityToRect(
_In_ const RECT *controlBoundingBox,
_In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
_Out_ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
WINUSERAPI
BOOL
WINAPI
EvaluateProximityToPolygon(
UINT32 numVertices,
_In_reads_(numVertices) const POINT *controlPolygon,
_In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
_Out_ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
WINUSERAPI
LRESULT
WINAPI
PackTouchHitTestingProximityEvaluation(
_In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
_In_ const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval);
typedef enum tagFEEDBACK_TYPE {
FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1,
FEEDBACK_PEN_BARRELVISUALIZATION = 2,
FEEDBACK_PEN_TAP = 3,
FEEDBACK_PEN_DOUBLETAP = 4,
FEEDBACK_PEN_PRESSANDHOLD = 5,
FEEDBACK_PEN_RIGHTTAP = 6,
FEEDBACK_TOUCH_TAP = 7,
FEEDBACK_TOUCH_DOUBLETAP = 8,
FEEDBACK_TOUCH_PRESSANDHOLD = 9,
FEEDBACK_TOUCH_RIGHTTAP = 10,
FEEDBACK_GESTURE_PRESSANDTAP = 11,
FEEDBACK_MAX = 0xFFFFFFFF
} FEEDBACK_TYPE;
WINUSERAPI
BOOL
WINAPI
GetWindowFeedbackSetting(
_In_ HWND hwnd,
_In_ FEEDBACK_TYPE feedback,
_In_ DWORD dwFlags,
_Inout_ UINT32* pSize,
_Out_writes_bytes_opt_(*pSize) VOID* config);
WINUSERAPI
BOOL
WINAPI
SetWindowFeedbackSetting(
_In_ HWND hwnd,
_In_ FEEDBACK_TYPE feedback,
_In_ DWORD dwFlags,
_In_ UINT32 size,
_In_reads_bytes_opt_(size) CONST VOID* configuration);
typedef struct tagINPUT_TRANSFORM {
union {
struct {
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _34;
float _41, _42, _43, _44;
} DUMMYSTRUCTNAME;
float m[4][4];
} DUMMYUNIONNAME;
} INPUT_TRANSFORM;
WINUSERAPI
BOOL
WINAPI
GetPointerInputTransform(
_In_ UINT32 pointerId,
_In_ UINT32 historyCount,
_Out_writes_(historyCount) INPUT_TRANSFORM *inputTransform);
typedef struct tagLASTINPUTINFO {
UINT cbSize;
DWORD dwTime;
} LASTINPUTINFO, * PLASTINPUTINFO;
WINUSERAPI
BOOL
WINAPI
GetLastInputInfo(
_Out_ PLASTINPUTINFO plii);
WINUSERAPI
UINT
WINAPI
MapVirtualKeyA(
_In_ UINT uCode,
_In_ UINT uMapType);
WINUSERAPI
UINT
WINAPI
MapVirtualKeyW(
_In_ UINT uCode,
_In_ UINT uMapType);
WINUSERAPI
UINT
WINAPI
MapVirtualKeyExA(
_In_ UINT uCode,
_In_ UINT uMapType,
_In_opt_ HKL dwhkl);
WINUSERAPI
UINT
WINAPI
MapVirtualKeyExW(
_In_ UINT uCode,
_In_ UINT uMapType,
_In_opt_ HKL dwhkl);
WINUSERAPI
BOOL
WINAPI
GetInputState(
VOID);
WINUSERAPI
DWORD
WINAPI
GetQueueStatus(
_In_ UINT flags);
WINUSERAPI
HWND
WINAPI
GetCapture(
VOID);
WINUSERAPI
HWND
WINAPI
SetCapture(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
ReleaseCapture(
VOID);
WINUSERAPI
DWORD
WINAPI
MsgWaitForMultipleObjects(
_In_ DWORD nCount,
_In_reads_opt_(nCount) CONST HANDLE *pHandles,
_In_ BOOL fWaitAll,
_In_ DWORD dwMilliseconds,
_In_ DWORD dwWakeMask);
WINUSERAPI
DWORD
WINAPI
MsgWaitForMultipleObjectsEx(
_In_ DWORD nCount,
_In_reads_opt_(nCount) CONST HANDLE *pHandles,
_In_ DWORD dwMilliseconds,
_In_ DWORD dwWakeMask,
_In_ DWORD dwFlags);
WINUSERAPI
UINT_PTR
WINAPI
SetTimer(
_In_opt_ HWND hWnd,
_In_ UINT_PTR nIDEvent,
_In_ UINT uElapse,
_In_opt_ TIMERPROC lpTimerFunc);
WINUSERAPI
UINT_PTR
WINAPI
SetCoalescableTimer(
_In_opt_ HWND hWnd,
_In_ UINT_PTR nIDEvent,
_In_ UINT uElapse,
_In_opt_ TIMERPROC lpTimerFunc,
_In_ ULONG uToleranceDelay);
WINUSERAPI
BOOL
WINAPI
KillTimer(
_In_opt_ HWND hWnd,
_In_ UINT_PTR uIDEvent);
WINUSERAPI
BOOL
WINAPI
IsWindowUnicode(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
EnableWindow(
_In_ HWND hWnd,
_In_ BOOL bEnable);
WINUSERAPI
BOOL
WINAPI
IsWindowEnabled(
_In_ HWND hWnd);
WINUSERAPI
HACCEL
WINAPI
LoadAcceleratorsA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpTableName);
WINUSERAPI
HACCEL
WINAPI
LoadAcceleratorsW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpTableName);
WINUSERAPI
HACCEL
WINAPI
CreateAcceleratorTableA(
_In_reads_(cAccel) LPACCEL paccel,
_In_ int cAccel);
WINUSERAPI
HACCEL
WINAPI
CreateAcceleratorTableW(
_In_reads_(cAccel) LPACCEL paccel,
_In_ int cAccel);
WINUSERAPI
BOOL
WINAPI
DestroyAcceleratorTable(
_In_ HACCEL hAccel);
WINUSERAPI
int
WINAPI
CopyAcceleratorTableA(
_In_ HACCEL hAccelSrc,
_Out_writes_to_opt_(cAccelEntries, return) LPACCEL lpAccelDst,
_In_ int cAccelEntries);
WINUSERAPI
int
WINAPI
CopyAcceleratorTableW(
_In_ HACCEL hAccelSrc,
_Out_writes_to_opt_(cAccelEntries, return) LPACCEL lpAccelDst,
_In_ int cAccelEntries);
WINUSERAPI
int
WINAPI
TranslateAcceleratorA(
_In_ HWND hWnd,
_In_ HACCEL hAccTable,
_In_ LPMSG lpMsg);
WINUSERAPI
int
WINAPI
TranslateAcceleratorW(
_In_ HWND hWnd,
_In_ HACCEL hAccTable,
_In_ LPMSG lpMsg);
WINUSERAPI
int
WINAPI
GetSystemMetrics(
_In_ int nIndex);
WINUSERAPI
int
WINAPI
GetSystemMetricsForDpi(
_In_ int nIndex,
_In_ UINT dpi);
WINUSERAPI
HMENU
WINAPI
LoadMenuA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpMenuName);
WINUSERAPI
HMENU
WINAPI
LoadMenuW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpMenuName);
WINUSERAPI
HMENU
WINAPI
LoadMenuIndirectA(
_In_ CONST MENUTEMPLATEA *lpMenuTemplate);
WINUSERAPI
HMENU
WINAPI
LoadMenuIndirectW(
_In_ CONST MENUTEMPLATEW *lpMenuTemplate);
WINUSERAPI
HMENU
WINAPI
GetMenu(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
SetMenu(
_In_ HWND hWnd,
_In_opt_ HMENU hMenu);
WINUSERAPI
BOOL
WINAPI
ChangeMenuA(
_In_ HMENU hMenu,
_In_ UINT cmd,
_In_opt_ LPCSTR lpszNewItem,
_In_ UINT cmdInsert,
_In_ UINT flags);
WINUSERAPI
BOOL
WINAPI
ChangeMenuW(
_In_ HMENU hMenu,
_In_ UINT cmd,
_In_opt_ LPCWSTR lpszNewItem,
_In_ UINT cmdInsert,
_In_ UINT flags);
WINUSERAPI
BOOL
WINAPI
HiliteMenuItem(
_In_ HWND hWnd,
_In_ HMENU hMenu,
_In_ UINT uIDHiliteItem,
_In_ UINT uHilite);
WINUSERAPI
int
WINAPI
GetMenuStringA(
_In_ HMENU hMenu,
_In_ UINT uIDItem,
_Out_writes_opt_(cchMax) LPSTR lpString,
_In_ int cchMax,
_In_ UINT flags);
WINUSERAPI
int
WINAPI
GetMenuStringW(
_In_ HMENU hMenu,
_In_ UINT uIDItem,
_Out_writes_opt_(cchMax) LPWSTR lpString,
_In_ int cchMax,
_In_ UINT flags);
WINUSERAPI
UINT
WINAPI
GetMenuState(
_In_ HMENU hMenu,
_In_ UINT uId,
_In_ UINT uFlags);
WINUSERAPI
BOOL
WINAPI
DrawMenuBar(
_In_ HWND hWnd);
WINUSERAPI
HMENU
WINAPI
GetSystemMenu(
_In_ HWND hWnd,
_In_ BOOL bRevert);
WINUSERAPI
HMENU
WINAPI
CreateMenu(
VOID);
WINUSERAPI
HMENU
WINAPI
CreatePopupMenu(
VOID);
WINUSERAPI
BOOL
WINAPI
DestroyMenu(
_In_ HMENU hMenu);
WINUSERAPI
DWORD
WINAPI
CheckMenuItem(
_In_ HMENU hMenu,
_In_ UINT uIDCheckItem,
_In_ UINT uCheck);
WINUSERAPI
BOOL
WINAPI
EnableMenuItem(
_In_ HMENU hMenu,
_In_ UINT uIDEnableItem,
_In_ UINT uEnable);
WINUSERAPI
HMENU
WINAPI
GetSubMenu(
_In_ HMENU hMenu,
_In_ int nPos);
WINUSERAPI
UINT
WINAPI
GetMenuItemID(
_In_ HMENU hMenu,
_In_ int nPos);
WINUSERAPI
int
WINAPI
GetMenuItemCount(
_In_opt_ HMENU hMenu);
WINUSERAPI
BOOL
WINAPI
InsertMenuA(
_In_ HMENU hMenu,
_In_ UINT uPosition,
_In_ UINT uFlags,
_In_ UINT_PTR uIDNewItem,
_In_opt_ LPCSTR lpNewItem);
WINUSERAPI
BOOL
WINAPI
InsertMenuW(
_In_ HMENU hMenu,
_In_ UINT uPosition,
_In_ UINT uFlags,
_In_ UINT_PTR uIDNewItem,
_In_opt_ LPCWSTR lpNewItem);
WINUSERAPI
BOOL
WINAPI
AppendMenuA(
_In_ HMENU hMenu,
_In_ UINT uFlags,
_In_ UINT_PTR uIDNewItem,
_In_opt_ LPCSTR lpNewItem);
WINUSERAPI
BOOL
WINAPI
AppendMenuW(
_In_ HMENU hMenu,
_In_ UINT uFlags,
_In_ UINT_PTR uIDNewItem,
_In_opt_ LPCWSTR lpNewItem);
WINUSERAPI
BOOL
WINAPI
ModifyMenuA(
_In_ HMENU hMnu,
_In_ UINT uPosition,
_In_ UINT uFlags,
_In_ UINT_PTR uIDNewItem,
_In_opt_ LPCSTR lpNewItem);
WINUSERAPI
BOOL
WINAPI
ModifyMenuW(
_In_ HMENU hMnu,
_In_ UINT uPosition,
_In_ UINT uFlags,
_In_ UINT_PTR uIDNewItem,
_In_opt_ LPCWSTR lpNewItem);
WINUSERAPI
BOOL
WINAPI RemoveMenu(
_In_ HMENU hMenu,
_In_ UINT uPosition,
_In_ UINT uFlags);
WINUSERAPI
BOOL
WINAPI
DeleteMenu(
_In_ HMENU hMenu,
_In_ UINT uPosition,
_In_ UINT uFlags);
WINUSERAPI
BOOL
WINAPI
SetMenuItemBitmaps(
_In_ HMENU hMenu,
_In_ UINT uPosition,
_In_ UINT uFlags,
_In_opt_ HBITMAP hBitmapUnchecked,
_In_opt_ HBITMAP hBitmapChecked);
WINUSERAPI
LONG
WINAPI
GetMenuCheckMarkDimensions(
VOID);
WINUSERAPI
BOOL
WINAPI
TrackPopupMenu(
_In_ HMENU hMenu,
_In_ UINT uFlags,
_In_ int x,
_In_ int y,
_Reserved_ int nReserved,
_In_ HWND hWnd,
_Reserved_ CONST RECT *prcRect);
typedef struct tagTPMPARAMS
{
UINT cbSize;
RECT rcExclude;
} TPMPARAMS;
typedef TPMPARAMS FAR *LPTPMPARAMS;
WINUSERAPI
BOOL
WINAPI
TrackPopupMenuEx(
_In_ HMENU hMenu,
_In_ UINT uFlags,
_In_ int x,
_In_ int y,
_In_ HWND hwnd,
_In_opt_ LPTPMPARAMS lptpm);
WINUSERAPI
BOOL
WINAPI
CalculatePopupWindowPosition(
_In_ const POINT *anchorPoint,
_In_ const SIZE *windowSize,
_In_ UINT flags,
_In_opt_ RECT *excludeRect,
_Out_ RECT *popupWindowPosition);
typedef struct tagMENUINFO
{
DWORD cbSize;
DWORD fMask;
DWORD dwStyle;
UINT cyMax;
HBRUSH hbrBack;
DWORD dwContextHelpID;
ULONG_PTR dwMenuData;
} MENUINFO, FAR *LPMENUINFO;
typedef MENUINFO CONST FAR *LPCMENUINFO;
WINUSERAPI
BOOL
WINAPI
GetMenuInfo(
_In_ HMENU,
_Inout_ LPMENUINFO);
WINUSERAPI
BOOL
WINAPI
SetMenuInfo(
_In_ HMENU,
_In_ LPCMENUINFO);
WINUSERAPI
BOOL
WINAPI
EndMenu(
VOID);
typedef struct tagMENUGETOBJECTINFO
{
DWORD dwFlags;
UINT uPos;
HMENU hmenu;
PVOID riid;
PVOID pvObj;
} MENUGETOBJECTINFO, * PMENUGETOBJECTINFO;
typedef struct tagMENUITEMINFOA
{
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
ULONG_PTR dwItemData;
LPSTR dwTypeData;
UINT cch;
HBITMAP hbmpItem;
} MENUITEMINFOA, FAR *LPMENUITEMINFOA;
typedef struct tagMENUITEMINFOW
{
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
ULONG_PTR dwItemData;
LPWSTR dwTypeData;
UINT cch;
HBITMAP hbmpItem;
} MENUITEMINFOW, FAR *LPMENUITEMINFOW;
typedef MENUITEMINFOA MENUITEMINFO;
typedef LPMENUITEMINFOA LPMENUITEMINFO;
typedef MENUITEMINFOA CONST FAR *LPCMENUITEMINFOA;
typedef MENUITEMINFOW CONST FAR *LPCMENUITEMINFOW;
typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
WINUSERAPI
BOOL
WINAPI
InsertMenuItemA(
_In_ HMENU hmenu,
_In_ UINT item,
_In_ BOOL fByPosition,
_In_ LPCMENUITEMINFOA lpmi);
WINUSERAPI
BOOL
WINAPI
InsertMenuItemW(
_In_ HMENU hmenu,
_In_ UINT item,
_In_ BOOL fByPosition,
_In_ LPCMENUITEMINFOW lpmi);
WINUSERAPI
BOOL
WINAPI
GetMenuItemInfoA(
_In_ HMENU hmenu,
_In_ UINT item,
_In_ BOOL fByPosition,
_Inout_ LPMENUITEMINFOA lpmii);
WINUSERAPI
BOOL
WINAPI
GetMenuItemInfoW(
_In_ HMENU hmenu,
_In_ UINT item,
_In_ BOOL fByPosition,
_Inout_ LPMENUITEMINFOW lpmii);
WINUSERAPI
BOOL
WINAPI
SetMenuItemInfoA(
_In_ HMENU hmenu,
_In_ UINT item,
_In_ BOOL fByPositon,
_In_ LPCMENUITEMINFOA lpmii);
WINUSERAPI
BOOL
WINAPI
SetMenuItemInfoW(
_In_ HMENU hmenu,
_In_ UINT item,
_In_ BOOL fByPositon,
_In_ LPCMENUITEMINFOW lpmii);
WINUSERAPI
UINT
WINAPI
GetMenuDefaultItem(
_In_ HMENU hMenu,
_In_ UINT fByPos,
_In_ UINT gmdiFlags);
WINUSERAPI
BOOL
WINAPI
SetMenuDefaultItem(
_In_ HMENU hMenu,
_In_ UINT uItem,
_In_ UINT fByPos);
WINUSERAPI
BOOL
WINAPI
GetMenuItemRect(
_In_opt_ HWND hWnd,
_In_ HMENU hMenu,
_In_ UINT uItem,
_Out_ LPRECT lprcItem);
WINUSERAPI
int
WINAPI
MenuItemFromPoint(
_In_opt_ HWND hWnd,
_In_ HMENU hMenu,
_In_ POINT ptScreen);
typedef struct tagDROPSTRUCT
{
HWND hwndSource;
HWND hwndSink;
DWORD wFmt;
ULONG_PTR dwData;
POINT ptDrop;
DWORD dwControlData;
} DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT;
WINUSERAPI
DWORD
WINAPI
DragObject(
_In_ HWND hwndParent,
_In_ HWND hwndFrom,
_In_ UINT fmt,
_In_ ULONG_PTR data,
_In_opt_ HCURSOR hcur);
WINUSERAPI
BOOL
WINAPI
DragDetect(
_In_ HWND hwnd,
_In_ POINT pt);
WINUSERAPI
BOOL
WINAPI
DrawIcon(
_In_ HDC hDC,
_In_ int X,
_In_ int Y,
_In_ HICON hIcon);
typedef struct tagDRAWTEXTPARAMS
{
UINT cbSize;
int iTabLength;
int iLeftMargin;
int iRightMargin;
UINT uiLengthDrawn;
} DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
WINUSERAPI
_Success_(return)
int
WINAPI
DrawTextA(
_In_ HDC hdc,
_When_((format & DT_MODIFYSTRING), _At_((LPSTR)lpchText, _Inout_grows_updates_bypassable_or_z_(cchText, 4)))
_When_((!(format & DT_MODIFYSTRING)), _In_bypassable_reads_or_z_(cchText))
LPCSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format);
WINUSERAPI
_Success_(return)
int
WINAPI
DrawTextW(
_In_ HDC hdc,
_When_((format & DT_MODIFYSTRING), _At_((LPWSTR)lpchText, _Inout_grows_updates_bypassable_or_z_(cchText, 4)))
_When_((!(format & DT_MODIFYSTRING)), _In_bypassable_reads_or_z_(cchText))
LPCWSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format);
WINUSERAPI
_Success_(return)
int
WINAPI
DrawTextExA(
_In_ HDC hdc,
_When_((cchText) < -1, _Unreferenced_parameter_)
_When_((format & DT_MODIFYSTRING), _Inout_grows_updates_bypassable_or_z_(cchText, 4))
_When_((!(format & DT_MODIFYSTRING)), _At_((LPCSTR)lpchText, _In_bypassable_reads_or_z_(cchText)))
LPSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format,
_In_opt_ LPDRAWTEXTPARAMS lpdtp);
WINUSERAPI
_Success_(return)
int
WINAPI
DrawTextExW(
_In_ HDC hdc,
_When_((cchText) < -1, _Unreferenced_parameter_)
_When_((format & DT_MODIFYSTRING), _Inout_grows_updates_bypassable_or_z_(cchText, 4))
_When_((!(format & DT_MODIFYSTRING)), _At_((LPCWSTR)lpchText, _In_bypassable_reads_or_z_(cchText)))
LPWSTR lpchText,
_In_ int cchText,
_Inout_ LPRECT lprc,
_In_ UINT format,
_In_opt_ LPDRAWTEXTPARAMS lpdtp);
WINUSERAPI
BOOL
WINAPI
GrayStringA(
_In_ HDC hDC,
_In_opt_ HBRUSH hBrush,
_In_opt_ GRAYSTRINGPROC lpOutputFunc,
_In_ LPARAM lpData,
_In_ int nCount,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight);
WINUSERAPI
BOOL
WINAPI
GrayStringW(
_In_ HDC hDC,
_In_opt_ HBRUSH hBrush,
_In_opt_ GRAYSTRINGPROC lpOutputFunc,
_In_ LPARAM lpData,
_In_ int nCount,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight);
WINUSERAPI
BOOL
WINAPI
DrawStateA(
_In_ HDC hdc,
_In_opt_ HBRUSH hbrFore,
_In_opt_ DRAWSTATEPROC qfnCallBack,
_In_ LPARAM lData,
_In_ WPARAM wData,
_In_ int x,
_In_ int y,
_In_ int cx,
_In_ int cy,
_In_ UINT uFlags);
WINUSERAPI
BOOL
WINAPI
DrawStateW(
_In_ HDC hdc,
_In_opt_ HBRUSH hbrFore,
_In_opt_ DRAWSTATEPROC qfnCallBack,
_In_ LPARAM lData,
_In_ WPARAM wData,
_In_ int x,
_In_ int y,
_In_ int cx,
_In_ int cy,
_In_ UINT uFlags);
WINUSERAPI
LONG
WINAPI
TabbedTextOutA(
_In_ HDC hdc,
_In_ int x,
_In_ int y,
_In_reads_(chCount) LPCSTR lpString,
_In_ int chCount,
_In_ int nTabPositions,
_In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions,
_In_ int nTabOrigin);
WINUSERAPI
LONG
WINAPI
TabbedTextOutW(
_In_ HDC hdc,
_In_ int x,
_In_ int y,
_In_reads_(chCount) LPCWSTR lpString,
_In_ int chCount,
_In_ int nTabPositions,
_In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions,
_In_ int nTabOrigin);
WINUSERAPI
DWORD
WINAPI
GetTabbedTextExtentA(
_In_ HDC hdc,
_In_reads_(chCount) LPCSTR lpString,
_In_ int chCount,
_In_ int nTabPositions,
_In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions);
WINUSERAPI
DWORD
WINAPI
GetTabbedTextExtentW(
_In_ HDC hdc,
_In_reads_(chCount) LPCWSTR lpString,
_In_ int chCount,
_In_ int nTabPositions,
_In_reads_opt_(nTabPositions) CONST INT *lpnTabStopPositions);
WINUSERAPI
BOOL
WINAPI
UpdateWindow(
_In_ HWND hWnd);
WINUSERAPI
HWND
WINAPI
SetActiveWindow(
_In_ HWND hWnd);
WINUSERAPI
HWND
WINAPI
GetForegroundWindow(
VOID);
WINUSERAPI
BOOL
WINAPI
PaintDesktop(
_In_ HDC hdc);
WINUSERAPI
VOID
WINAPI
SwitchToThisWindow(
_In_ HWND hwnd,
_In_ BOOL fUnknown);
WINUSERAPI
BOOL
WINAPI
SetForegroundWindow(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
AllowSetForegroundWindow(
_In_ DWORD dwProcessId);
WINUSERAPI
BOOL
WINAPI
LockSetForegroundWindow(
_In_ UINT uLockCode);
WINUSERAPI
HWND
WINAPI
WindowFromDC(
_In_ HDC hDC);
WINUSERAPI
HDC
WINAPI
GetDC(
_In_opt_ HWND hWnd);
WINUSERAPI
HDC
WINAPI
GetDCEx(
_In_opt_ HWND hWnd,
_In_opt_ HRGN hrgnClip,
_In_ DWORD flags);
WINUSERAPI
HDC
WINAPI
GetWindowDC(
_In_opt_ HWND hWnd);
WINUSERAPI
int
WINAPI
ReleaseDC(
_In_opt_ HWND hWnd,
_In_ HDC hDC);
WINUSERAPI
HDC
WINAPI
BeginPaint(
_In_ HWND hWnd,
_Out_ LPPAINTSTRUCT lpPaint);
WINUSERAPI
BOOL
WINAPI
EndPaint(
_In_ HWND hWnd,
_In_ CONST PAINTSTRUCT *lpPaint);
WINUSERAPI
BOOL
WINAPI
GetUpdateRect(
_In_ HWND hWnd,
_Out_opt_ LPRECT lpRect,
_In_ BOOL bErase);
WINUSERAPI
int
WINAPI
GetUpdateRgn(
_In_ HWND hWnd,
_In_ HRGN hRgn,
_In_ BOOL bErase);
WINUSERAPI
int
WINAPI
SetWindowRgn(
_In_ HWND hWnd,
_In_opt_ HRGN hRgn,
_In_ BOOL bRedraw);
WINUSERAPI
int
WINAPI
GetWindowRgn(
_In_ HWND hWnd,
_In_ HRGN hRgn);
WINUSERAPI
int
WINAPI
GetWindowRgnBox(
_In_ HWND hWnd,
_Out_ LPRECT lprc);
WINUSERAPI
int
WINAPI
ExcludeUpdateRgn(
_In_ HDC hDC,
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
InvalidateRect(
_In_opt_ HWND hWnd,
_In_opt_ CONST RECT *lpRect,
_In_ BOOL bErase);
WINUSERAPI
BOOL
WINAPI
ValidateRect(
_In_opt_ HWND hWnd,
_In_opt_ CONST RECT *lpRect);
WINUSERAPI
BOOL
WINAPI
InvalidateRgn(
_In_ HWND hWnd,
_In_opt_ HRGN hRgn,
_In_ BOOL bErase);
WINUSERAPI
BOOL
WINAPI
ValidateRgn(
_In_ HWND hWnd,
_In_opt_ HRGN hRgn);
WINUSERAPI
BOOL
WINAPI
RedrawWindow(
_In_opt_ HWND hWnd,
_In_opt_ CONST RECT *lprcUpdate,
_In_opt_ HRGN hrgnUpdate,
_In_ UINT flags);
WINUSERAPI
BOOL
WINAPI
LockWindowUpdate(
_In_opt_ HWND hWndLock);
WINUSERAPI
BOOL
WINAPI
ScrollWindow(
_In_ HWND hWnd,
_In_ int XAmount,
_In_ int YAmount,
_In_opt_ CONST RECT *lpRect,
_In_opt_ CONST RECT *lpClipRect);
WINUSERAPI
BOOL
WINAPI
ScrollDC(
_In_ HDC hDC,
_In_ int dx,
_In_ int dy,
_In_opt_ CONST RECT *lprcScroll,
_In_opt_ CONST RECT *lprcClip,
_In_opt_ HRGN hrgnUpdate,
_Out_opt_ LPRECT lprcUpdate);
WINUSERAPI
int
WINAPI
ScrollWindowEx(
_In_ HWND hWnd,
_In_ int dx,
_In_ int dy,
_In_opt_ CONST RECT *prcScroll,
_In_opt_ CONST RECT *prcClip,
_In_opt_ HRGN hrgnUpdate,
_Out_opt_ LPRECT prcUpdate,
_In_ UINT flags);
WINUSERAPI
int
WINAPI
SetScrollPos(
_In_ HWND hWnd,
_In_ int nBar,
_In_ int nPos,
_In_ BOOL bRedraw);
WINUSERAPI
int
WINAPI
GetScrollPos(
_In_ HWND hWnd,
_In_ int nBar);
WINUSERAPI
BOOL
WINAPI
SetScrollRange(
_In_ HWND hWnd,
_In_ int nBar,
_In_ int nMinPos,
_In_ int nMaxPos,
_In_ BOOL bRedraw);
WINUSERAPI
BOOL
WINAPI
GetScrollRange(
_In_ HWND hWnd,
_In_ int nBar,
_Out_ LPINT lpMinPos,
_Out_ LPINT lpMaxPos);
WINUSERAPI
BOOL
WINAPI
ShowScrollBar(
_In_ HWND hWnd,
_In_ int wBar,
_In_ BOOL bShow);
WINUSERAPI
BOOL
WINAPI
EnableScrollBar(
_In_ HWND hWnd,
_In_ UINT wSBflags,
_In_ UINT wArrows);
WINUSERAPI
BOOL
WINAPI
SetPropA(
_In_ HWND hWnd,
_In_ LPCSTR lpString,
_In_opt_ HANDLE hData);
WINUSERAPI
BOOL
WINAPI
SetPropW(
_In_ HWND hWnd,
_In_ LPCWSTR lpString,
_In_opt_ HANDLE hData);
WINUSERAPI
HANDLE
WINAPI
GetPropA(
_In_ HWND hWnd,
_In_ LPCSTR lpString);
WINUSERAPI
HANDLE
WINAPI
GetPropW(
_In_ HWND hWnd,
_In_ LPCWSTR lpString);
WINUSERAPI
HANDLE
WINAPI
RemovePropA(
_In_ HWND hWnd,
_In_ LPCSTR lpString);
WINUSERAPI
HANDLE
WINAPI
RemovePropW(
_In_ HWND hWnd,
_In_ LPCWSTR lpString);
WINUSERAPI
int
WINAPI
EnumPropsExA(
_In_ HWND hWnd,
_In_ PROPENUMPROCEXA lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
int
WINAPI
EnumPropsExW(
_In_ HWND hWnd,
_In_ PROPENUMPROCEXW lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
int
WINAPI
EnumPropsA(
_In_ HWND hWnd,
_In_ PROPENUMPROCA lpEnumFunc);
WINUSERAPI
int
WINAPI
EnumPropsW(
_In_ HWND hWnd,
_In_ PROPENUMPROCW lpEnumFunc);
WINUSERAPI
BOOL
WINAPI
SetWindowTextA(
_In_ HWND hWnd,
_In_opt_ LPCSTR lpString);
WINUSERAPI
BOOL
WINAPI
SetWindowTextW(
_In_ HWND hWnd,
_In_opt_ LPCWSTR lpString);
_Ret_range_(0, nMaxCount)
WINUSERAPI
int
WINAPI
GetWindowTextA(
_In_ HWND hWnd,
_Out_writes_(nMaxCount) LPSTR lpString,
_In_ int nMaxCount);
_Ret_range_(0, nMaxCount)
WINUSERAPI
int
WINAPI
GetWindowTextW(
_In_ HWND hWnd,
_Out_writes_(nMaxCount) LPWSTR lpString,
_In_ int nMaxCount);
WINUSERAPI
int
WINAPI
GetWindowTextLengthA(
_In_ HWND hWnd);
WINUSERAPI
int
WINAPI
GetWindowTextLengthW(
_In_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
GetClientRect(
_In_ HWND hWnd,
_Out_ LPRECT lpRect);
WINUSERAPI
BOOL
WINAPI
GetWindowRect(
_In_ HWND hWnd,
_Out_ LPRECT lpRect);
WINUSERAPI
BOOL
WINAPI
AdjustWindowRect(
_Inout_ LPRECT lpRect,
_In_ DWORD dwStyle,
_In_ BOOL bMenu);
WINUSERAPI
BOOL
WINAPI
AdjustWindowRectEx(
_Inout_ LPRECT lpRect,
_In_ DWORD dwStyle,
_In_ BOOL bMenu,
_In_ DWORD dwExStyle);
WINUSERAPI
BOOL
WINAPI
AdjustWindowRectExForDpi(
_Inout_ LPRECT lpRect,
_In_ DWORD dwStyle,
_In_ BOOL bMenu,
_In_ DWORD dwExStyle,
_In_ UINT dpi);
typedef struct tagHELPINFO
{
UINT cbSize;
int iContextType;
int iCtrlId;
HANDLE hItemHandle;
DWORD_PTR dwContextId;
POINT MousePos;
} HELPINFO, FAR *LPHELPINFO;
WINUSERAPI
BOOL
WINAPI
SetWindowContextHelpId(
_In_ HWND,
_In_ DWORD);
WINUSERAPI
DWORD
WINAPI
GetWindowContextHelpId(
_In_ HWND);
WINUSERAPI
BOOL
WINAPI
SetMenuContextHelpId(
_In_ HMENU,
_In_ DWORD);
WINUSERAPI
DWORD
WINAPI
GetMenuContextHelpId(
_In_ HMENU);
WINUSERAPI
int
WINAPI
MessageBoxA(
_In_opt_ HWND hWnd,
_In_opt_ LPCSTR lpText,
_In_opt_ LPCSTR lpCaption,
_In_ UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxW(
_In_opt_ HWND hWnd,
_In_opt_ LPCWSTR lpText,
_In_opt_ LPCWSTR lpCaption,
_In_ UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxExA(
_In_opt_ HWND hWnd,
_In_opt_ LPCSTR lpText,
_In_opt_ LPCSTR lpCaption,
_In_ UINT uType,
_In_ WORD wLanguageId);
WINUSERAPI
int
WINAPI
MessageBoxExW(
_In_opt_ HWND hWnd,
_In_opt_ LPCWSTR lpText,
_In_opt_ LPCWSTR lpCaption,
_In_ UINT uType,
_In_ WORD wLanguageId);
typedef VOID (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
typedef struct tagMSGBOXPARAMSA
{
UINT cbSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCSTR lpszText;
LPCSTR lpszCaption;
DWORD dwStyle;
LPCSTR lpszIcon;
DWORD_PTR dwContextHelpId;
MSGBOXCALLBACK lpfnMsgBoxCallback;
DWORD dwLanguageId;
} MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA;
typedef struct tagMSGBOXPARAMSW
{
UINT cbSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCWSTR lpszText;
LPCWSTR lpszCaption;
DWORD dwStyle;
LPCWSTR lpszIcon;
DWORD_PTR dwContextHelpId;
MSGBOXCALLBACK lpfnMsgBoxCallback;
DWORD dwLanguageId;
} MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW;
typedef MSGBOXPARAMSA MSGBOXPARAMS;
typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
WINUSERAPI
int
WINAPI
MessageBoxIndirectA(
_In_ CONST MSGBOXPARAMSA * lpmbp);
WINUSERAPI
int
WINAPI
MessageBoxIndirectW(
_In_ CONST MSGBOXPARAMSW * lpmbp);
WINUSERAPI
BOOL
WINAPI
MessageBeep(
_In_ UINT uType);
WINUSERAPI
int
WINAPI
ShowCursor(
_In_ BOOL bShow);
WINUSERAPI
BOOL
WINAPI
SetCursorPos(
_In_ int X,
_In_ int Y);
WINUSERAPI
BOOL
WINAPI
SetPhysicalCursorPos(
_In_ int X,
_In_ int Y);
WINUSERAPI
HCURSOR
WINAPI
SetCursor(
_In_opt_ HCURSOR hCursor);
WINUSERAPI
BOOL
WINAPI
GetCursorPos(
_Out_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
GetPhysicalCursorPos(
_Out_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
GetClipCursor(
_Out_ LPRECT lpRect);
WINUSERAPI
HCURSOR
WINAPI
GetCursor(
VOID);
WINUSERAPI
BOOL
WINAPI
CreateCaret(
_In_ HWND hWnd,
_In_opt_ HBITMAP hBitmap,
_In_ int nWidth,
_In_ int nHeight);
WINUSERAPI
UINT
WINAPI
GetCaretBlinkTime(
VOID);
WINUSERAPI
BOOL
WINAPI
SetCaretBlinkTime(
_In_ UINT uMSeconds);
WINUSERAPI
BOOL
WINAPI
DestroyCaret(
VOID);
WINUSERAPI
BOOL
WINAPI
HideCaret(
_In_opt_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
ShowCaret(
_In_opt_ HWND hWnd);
WINUSERAPI
BOOL
WINAPI
SetCaretPos(
_In_ int X,
_In_ int Y);
WINUSERAPI
BOOL
WINAPI
GetCaretPos(
_Out_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
ClientToScreen(
_In_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
ScreenToClient(
_In_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
LogicalToPhysicalPoint(
_In_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
PhysicalToLogicalPoint(
_In_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
LogicalToPhysicalPointForPerMonitorDPI(
_In_opt_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
BOOL
WINAPI
PhysicalToLogicalPointForPerMonitorDPI(
_In_opt_ HWND hWnd,
_Inout_ LPPOINT lpPoint);
WINUSERAPI
int
WINAPI
MapWindowPoints(
_In_opt_ HWND hWndFrom,
_In_opt_ HWND hWndTo,
_Inout_updates_(cPoints) LPPOINT lpPoints,
_In_ UINT cPoints);
WINUSERAPI
HWND
WINAPI
WindowFromPoint(
_In_ POINT Point);
WINUSERAPI
HWND
WINAPI
WindowFromPhysicalPoint(
_In_ POINT Point);
WINUSERAPI
HWND
WINAPI
ChildWindowFromPoint(
_In_ HWND hWndParent,
_In_ POINT Point);
WINUSERAPI
BOOL
WINAPI
ClipCursor(
_In_opt_ CONST RECT *lpRect);
WINUSERAPI
HWND
WINAPI
ChildWindowFromPointEx(
_In_ HWND hwnd,
_In_ POINT pt,
_In_ UINT flags);
WINUSERAPI
DWORD
WINAPI
GetSysColor(
_In_ int nIndex);
WINUSERAPI
HBRUSH
WINAPI
GetSysColorBrush(
_In_ int nIndex);
WINUSERAPI
BOOL
WINAPI
SetSysColors(
_In_ int cElements,
_In_reads_(cElements) CONST INT * lpaElements,
_In_reads_(cElements) CONST COLORREF * lpaRgbValues);
WINUSERAPI
BOOL
WINAPI
DrawFocusRect(
_In_ HDC hDC,
_In_ CONST RECT * lprc);
WINUSERAPI
int
WINAPI
FillRect(
_In_ HDC hDC,
_In_ CONST RECT *lprc,
_In_ HBRUSH hbr);
WINUSERAPI
int
WINAPI
FrameRect(
_In_ HDC hDC,
_In_ CONST RECT *lprc,
_In_ HBRUSH hbr);
WINUSERAPI
BOOL
WINAPI
InvertRect(
_In_ HDC hDC,
_In_ CONST RECT *lprc);
WINUSERAPI
BOOL
WINAPI
SetRect(
_Out_ LPRECT lprc,
_In_ int xLeft,
_In_ int yTop,
_In_ int xRight,
_In_ int yBottom);
WINUSERAPI
BOOL
WINAPI
SetRectEmpty(
_Out_ LPRECT lprc);
WINUSERAPI
BOOL
WINAPI
CopyRect(
_Out_ LPRECT lprcDst,
_In_ CONST RECT *lprcSrc);
WINUSERAPI
BOOL
WINAPI
InflateRect(
_Inout_ LPRECT lprc,
_In_ int dx,
_In_ int dy);
WINUSERAPI
BOOL
WINAPI
IntersectRect(
_Out_ LPRECT lprcDst,
_In_ CONST RECT *lprcSrc1,
_In_ CONST RECT *lprcSrc2);
WINUSERAPI
BOOL
WINAPI
UnionRect(
_Out_ LPRECT lprcDst,
_In_ CONST RECT *lprcSrc1,
_In_ CONST RECT *lprcSrc2);
WINUSERAPI
BOOL
WINAPI
SubtractRect(
_Out_ LPRECT lprcDst,
_In_ CONST RECT *lprcSrc1,
_In_ CONST RECT *lprcSrc2);
WINUSERAPI
BOOL
WINAPI
OffsetRect(
_Inout_ LPRECT lprc,
_In_ int dx,
_In_ int dy);
WINUSERAPI
BOOL
WINAPI
IsRectEmpty(
_In_ CONST RECT *lprc);
WINUSERAPI
BOOL
WINAPI
EqualRect(
_In_ CONST RECT *lprc1,
_In_ CONST RECT *lprc2);
WINUSERAPI
BOOL
WINAPI
PtInRect(
_In_ CONST RECT *lprc,
_In_ POINT pt);
WINUSERAPI
WORD
WINAPI
GetWindowWord(
_In_ HWND hWnd,
_In_ int nIndex);
WINUSERAPI
WORD
WINAPI
SetWindowWord(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ WORD wNewWord);
WINUSERAPI
LONG
WINAPI
GetWindowLongA(
_In_ HWND hWnd,
_In_ int nIndex);
WINUSERAPI
LONG
WINAPI
GetWindowLongW(
_In_ HWND hWnd,
_In_ int nIndex);
WINUSERAPI
LONG
WINAPI
SetWindowLongA(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ LONG dwNewLong);
WINUSERAPI
LONG
WINAPI
SetWindowLongW(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ LONG dwNewLong);
WINUSERAPI
WORD
WINAPI
GetClassWord(
_In_ HWND hWnd,
_In_ int nIndex);
WINUSERAPI
WORD
WINAPI
SetClassWord(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ WORD wNewWord);
WINUSERAPI
DWORD
WINAPI
GetClassLongA(
_In_ HWND hWnd,
_In_ int nIndex);
WINUSERAPI
DWORD
WINAPI
GetClassLongW(
_In_ HWND hWnd,
_In_ int nIndex);
WINUSERAPI
DWORD
WINAPI
SetClassLongA(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ LONG dwNewLong);
WINUSERAPI
DWORD
WINAPI
SetClassLongW(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ LONG dwNewLong);
WINUSERAPI
BOOL
WINAPI
GetProcessDefaultLayout(
_Out_ DWORD *pdwDefaultLayout);
WINUSERAPI
BOOL
WINAPI
SetProcessDefaultLayout(
_In_ DWORD dwDefaultLayout);
WINUSERAPI
HWND
WINAPI
GetDesktopWindow(
VOID);
WINUSERAPI
HWND
WINAPI
GetParent(
_In_ HWND hWnd);
WINUSERAPI
HWND
WINAPI
SetParent(
_In_ HWND hWndChild,
_In_opt_ HWND hWndNewParent);
WINUSERAPI
BOOL
WINAPI
EnumChildWindows(
_In_opt_ HWND hWndParent,
_In_ WNDENUMPROC lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
HWND
WINAPI
FindWindowA(
_In_opt_ LPCSTR lpClassName,
_In_opt_ LPCSTR lpWindowName);
WINUSERAPI
HWND
WINAPI
FindWindowW(
_In_opt_ LPCWSTR lpClassName,
_In_opt_ LPCWSTR lpWindowName);
WINUSERAPI
HWND
WINAPI
FindWindowExA(
_In_opt_ HWND hWndParent,
_In_opt_ HWND hWndChildAfter,
_In_opt_ LPCSTR lpszClass,
_In_opt_ LPCSTR lpszWindow);
WINUSERAPI
HWND
WINAPI
FindWindowExW(
_In_opt_ HWND hWndParent,
_In_opt_ HWND hWndChildAfter,
_In_opt_ LPCWSTR lpszClass,
_In_opt_ LPCWSTR lpszWindow);
WINUSERAPI
HWND
WINAPI
GetShellWindow(
VOID);
WINUSERAPI
BOOL
WINAPI
RegisterShellHookWindow(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
DeregisterShellHookWindow(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
EnumWindows(
_In_ WNDENUMPROC lpEnumFunc,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumThreadWindows(
_In_ DWORD dwThreadId,
_In_ WNDENUMPROC lpfn,
_In_ LPARAM lParam);
WINUSERAPI
int
WINAPI
GetClassNameA(
_In_ HWND hWnd,
_Out_writes_to_(nMaxCount, return) LPSTR lpClassName,
_In_ int nMaxCount
);
WINUSERAPI
int
WINAPI
GetClassNameW(
_In_ HWND hWnd,
_Out_writes_to_(nMaxCount, return) LPWSTR lpClassName,
_In_ int nMaxCount
);
WINUSERAPI
HWND
WINAPI
GetTopWindow(
_In_opt_ HWND hWnd);
WINUSERAPI
DWORD
WINAPI
GetWindowThreadProcessId(
_In_ HWND hWnd,
_Out_opt_ LPDWORD lpdwProcessId);
WINUSERAPI
BOOL
WINAPI
IsGUIThread(
_In_ BOOL bConvert);
WINUSERAPI
HWND
WINAPI
GetLastActivePopup(
_In_ HWND hWnd);
WINUSERAPI
HWND
WINAPI
GetWindow(
_In_ HWND hWnd,
_In_ UINT uCmd);
WINUSERAPI
HHOOK
WINAPI
SetWindowsHookA(
_In_ int nFilterType,
_In_ HOOKPROC pfnFilterProc);
WINUSERAPI
HHOOK
WINAPI
SetWindowsHookW(
_In_ int nFilterType,
_In_ HOOKPROC pfnFilterProc);
WINUSERAPI
BOOL
WINAPI
UnhookWindowsHook(
_In_ int nCode,
_In_ HOOKPROC pfnFilterProc);
WINUSERAPI
HHOOK
WINAPI
SetWindowsHookExA(
_In_ int idHook,
_In_ HOOKPROC lpfn,
_In_opt_ HINSTANCE hmod,
_In_ DWORD dwThreadId);
WINUSERAPI
HHOOK
WINAPI
SetWindowsHookExW(
_In_ int idHook,
_In_ HOOKPROC lpfn,
_In_opt_ HINSTANCE hmod,
_In_ DWORD dwThreadId);
WINUSERAPI
BOOL
WINAPI
UnhookWindowsHookEx(
_In_ HHOOK hhk);
WINUSERAPI
LRESULT
WINAPI
CallNextHookEx(
_In_opt_ HHOOK hhk,
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
CheckMenuRadioItem(
_In_ HMENU hmenu,
_In_ UINT first,
_In_ UINT last,
_In_ UINT check,
_In_ UINT flags);
typedef struct {
WORD versionNumber;
WORD offset;
} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
typedef struct {
WORD mtOption;
WORD mtID;
WCHAR mtString[1];
} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
WINUSERAPI
HBITMAP
WINAPI
LoadBitmapA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpBitmapName);
WINUSERAPI
HBITMAP
WINAPI
LoadBitmapW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpBitmapName);
WINUSERAPI
HCURSOR
WINAPI
LoadCursorA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpCursorName);
WINUSERAPI
HCURSOR
WINAPI
LoadCursorW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpCursorName);
WINUSERAPI
HCURSOR
WINAPI
LoadCursorFromFileA(
_In_ LPCSTR lpFileName);
WINUSERAPI
HCURSOR
WINAPI
LoadCursorFromFileW(
_In_ LPCWSTR lpFileName);
WINUSERAPI
HCURSOR
WINAPI
CreateCursor(
_In_opt_ HINSTANCE hInst,
_In_ int xHotSpot,
_In_ int yHotSpot,
_In_ int nWidth,
_In_ int nHeight,
_In_ CONST VOID *pvANDPlane,
_In_ CONST VOID *pvXORPlane);
WINUSERAPI
BOOL
WINAPI
DestroyCursor(
_In_ HCURSOR hCursor);
WINUSERAPI
BOOL
WINAPI
SetSystemCursor(
_In_ HCURSOR hcur,
_In_ DWORD id);
typedef struct _ICONINFO {
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
HBITMAP hbmMask;
HBITMAP hbmColor;
} ICONINFO;
typedef ICONINFO *PICONINFO;
WINUSERAPI
HICON
WINAPI
LoadIconA(
_In_opt_ HINSTANCE hInstance,
_In_ LPCSTR lpIconName);
WINUSERAPI
HICON
WINAPI
LoadIconW(
_In_opt_ HINSTANCE hInstance,
_In_ LPCWSTR lpIconName);
WINUSERAPI
UINT
WINAPI
PrivateExtractIconsA(
_In_reads_(MAX_PATH) LPCSTR szFileName,
_In_ int nIconIndex,
_In_ int cxIcon,
_In_ int cyIcon,
_Out_writes_opt_(nIcons) HICON *phicon,
_Out_writes_opt_(nIcons) UINT *piconid,
_In_ UINT nIcons,
_In_ UINT flags);
WINUSERAPI
UINT
WINAPI
PrivateExtractIconsW(
_In_reads_(MAX_PATH) LPCWSTR szFileName,
_In_ int nIconIndex,
_In_ int cxIcon,
_In_ int cyIcon,
_Out_writes_opt_(nIcons) HICON *phicon,
_Out_writes_opt_(nIcons) UINT *piconid,
_In_ UINT nIcons,
_In_ UINT flags);
WINUSERAPI
HICON
WINAPI
CreateIcon(
_In_opt_ HINSTANCE hInstance,
_In_ int nWidth,
_In_ int nHeight,
_In_ BYTE cPlanes,
_In_ BYTE cBitsPixel,
_In_ CONST BYTE *lpbANDbits,
_In_ CONST BYTE *lpbXORbits);
WINUSERAPI
BOOL
WINAPI
DestroyIcon(
_In_ HICON hIcon);
WINUSERAPI
int
WINAPI
LookupIconIdFromDirectory(
_In_reads_bytes_(sizeof(WORD) * 3) PBYTE presbits,
_In_ BOOL fIcon);
WINUSERAPI
int
WINAPI
LookupIconIdFromDirectoryEx(
_In_reads_bytes_(sizeof(WORD) * 3) PBYTE presbits,
_In_ BOOL fIcon,
_In_ int cxDesired,
_In_ int cyDesired,
_In_ UINT Flags);
WINUSERAPI
HICON
WINAPI
CreateIconFromResource(
_In_reads_bytes_(dwResSize) PBYTE presbits,
_In_ DWORD dwResSize,
_In_ BOOL fIcon,
_In_ DWORD dwVer);
WINUSERAPI
HICON
WINAPI
CreateIconFromResourceEx(
_In_reads_bytes_(dwResSize) PBYTE presbits,
_In_ DWORD dwResSize,
_In_ BOOL fIcon,
_In_ DWORD dwVer,
_In_ int cxDesired,
_In_ int cyDesired,
_In_ UINT Flags);
typedef struct tagCURSORSHAPE
{
int xHotSpot;
int yHotSpot;
int cx;
int cy;
int cbWidth;
BYTE Planes;
BYTE BitsPixel;
} CURSORSHAPE, FAR *LPCURSORSHAPE;
WINUSERAPI
UINT
WINAPI
SetThreadCursorCreationScaling(
UINT cursorDpi);
WINUSERAPI
HANDLE
WINAPI
LoadImageA(
_In_opt_ HINSTANCE hInst,
_In_ LPCSTR name,
_In_ UINT type,
_In_ int cx,
_In_ int cy,
_In_ UINT fuLoad);
WINUSERAPI
HANDLE
WINAPI
LoadImageW(
_In_opt_ HINSTANCE hInst,
_In_ LPCWSTR name,
_In_ UINT type,
_In_ int cx,
_In_ int cy,
_In_ UINT fuLoad);
WINUSERAPI
HANDLE
WINAPI
CopyImage(
_In_ HANDLE h,
_In_ UINT type,
_In_ int cx,
_In_ int cy,
_In_ UINT flags);
WINUSERAPI BOOL WINAPI DrawIconEx(
_In_ HDC hdc,
_In_ int xLeft,
_In_ int yTop,
_In_ HICON hIcon,
_In_ int cxWidth,
_In_ int cyWidth,
_In_ UINT istepIfAniCur,
_In_opt_ HBRUSH hbrFlickerFreeDraw,
_In_ UINT diFlags);
WINUSERAPI
HICON
WINAPI
CreateIconIndirect(
_In_ PICONINFO piconinfo);
WINUSERAPI
HICON
WINAPI
CopyIcon(
_In_ HICON hIcon);
WINUSERAPI
BOOL
WINAPI
GetIconInfo(
_In_ HICON hIcon,
_Out_ PICONINFO piconinfo);
typedef struct _ICONINFOEXA {
DWORD cbSize;
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
HBITMAP hbmMask;
HBITMAP hbmColor;
WORD wResID;
CHAR szModName[MAX_PATH];
CHAR szResName[MAX_PATH];
} ICONINFOEXA, *PICONINFOEXA;
typedef struct _ICONINFOEXW {
DWORD cbSize;
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
HBITMAP hbmMask;
HBITMAP hbmColor;
WORD wResID;
WCHAR szModName[MAX_PATH];
WCHAR szResName[MAX_PATH];
} ICONINFOEXW, *PICONINFOEXW;
typedef ICONINFOEXA ICONINFOEX;
typedef PICONINFOEXA PICONINFOEX;
WINUSERAPI
BOOL
WINAPI
GetIconInfoExA(
_In_ HICON hicon,
_Inout_ PICONINFOEXA piconinfo);
WINUSERAPI
BOOL
WINAPI
GetIconInfoExW(
_In_ HICON hicon,
_Inout_ PICONINFOEXW piconinfo);
typedef enum {
EDIT_CONTROL_FEATURE_ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT = 0,
EDIT_CONTROL_FEATURE_PASTE_NOTIFICATIONS = 1,
} EDIT_CONTROL_FEATURE;
WINUSERAPI
BOOL
WINAPI
IsDialogMessageA(
_In_ HWND hDlg,
_In_ LPMSG lpMsg);
WINUSERAPI
BOOL
WINAPI
IsDialogMessageW(
_In_ HWND hDlg,
_In_ LPMSG lpMsg);
WINUSERAPI
BOOL
WINAPI
MapDialogRect(
_In_ HWND hDlg,
_Inout_ LPRECT lpRect);
WINUSERAPI
int
WINAPI
DlgDirListA(
_In_ HWND hDlg,
_Inout_ LPSTR lpPathSpec,
_In_ int nIDListBox,
_In_ int nIDStaticPath,
_In_ UINT uFileType);
WINUSERAPI
int
WINAPI
DlgDirListW(
_In_ HWND hDlg,
_Inout_ LPWSTR lpPathSpec,
_In_ int nIDListBox,
_In_ int nIDStaticPath,
_In_ UINT uFileType);
WINUSERAPI
BOOL
WINAPI
DlgDirSelectExA(
_In_ HWND hwndDlg,
_Out_writes_(chCount) LPSTR lpString,
_In_ int chCount,
_In_ int idListBox);
WINUSERAPI
BOOL
WINAPI
DlgDirSelectExW(
_In_ HWND hwndDlg,
_Out_writes_(chCount) LPWSTR lpString,
_In_ int chCount,
_In_ int idListBox);
WINUSERAPI
int
WINAPI
DlgDirListComboBoxA(
_In_ HWND hDlg,
_Inout_ LPSTR lpPathSpec,
_In_ int nIDComboBox,
_In_ int nIDStaticPath,
_In_ UINT uFiletype);
WINUSERAPI
int
WINAPI
DlgDirListComboBoxW(
_In_ HWND hDlg,
_Inout_ LPWSTR lpPathSpec,
_In_ int nIDComboBox,
_In_ int nIDStaticPath,
_In_ UINT uFiletype);
WINUSERAPI
BOOL
WINAPI
DlgDirSelectComboBoxExA(
_In_ HWND hwndDlg,
_Out_writes_(cchOut) LPSTR lpString,
_In_ int cchOut,
_In_ int idComboBox);
WINUSERAPI
BOOL
WINAPI
DlgDirSelectComboBoxExW(
_In_ HWND hwndDlg,
_Out_writes_(cchOut) LPWSTR lpString,
_In_ int cchOut,
_In_ int idComboBox);
typedef struct tagSCROLLINFO
{
UINT cbSize;
UINT fMask;
int nMin;
int nMax;
UINT nPage;
int nPos;
int nTrackPos;
} SCROLLINFO, FAR *LPSCROLLINFO;
typedef SCROLLINFO CONST FAR *LPCSCROLLINFO;
WINUSERAPI
int
WINAPI
SetScrollInfo(
_In_ HWND hwnd,
_In_ int nBar,
_In_ LPCSCROLLINFO lpsi,
_In_ BOOL redraw);
WINUSERAPI
BOOL
WINAPI
GetScrollInfo(
_In_ HWND hwnd,
_In_ int nBar,
_Inout_ LPSCROLLINFO lpsi);
typedef struct tagMDICREATESTRUCTA {
LPCSTR szClass;
LPCSTR szTitle;
HANDLE hOwner;
int x;
int y;
int cx;
int cy;
DWORD style;
LPARAM lParam;
} MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
typedef struct tagMDICREATESTRUCTW {
LPCWSTR szClass;
LPCWSTR szTitle;
HANDLE hOwner;
int x;
int y;
int cx;
int cy;
DWORD style;
LPARAM lParam;
} MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
typedef MDICREATESTRUCTA MDICREATESTRUCT;
typedef LPMDICREATESTRUCTA LPMDICREATESTRUCT;
typedef struct tagCLIENTCREATESTRUCT {
HANDLE hWindowMenu;
UINT idFirstChild;
} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
WINUSERAPI
LRESULT
WINAPI
DefFrameProcA(
_In_ HWND hWnd,
_In_opt_ HWND hWndMDIClient,
_In_ UINT uMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
DefFrameProcW(
_In_ HWND hWnd,
_In_opt_ HWND hWndMDIClient,
_In_ UINT uMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
DefMDIChildProcA(
_In_ HWND hWnd,
_In_ UINT uMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
LRESULT
WINAPI
DefMDIChildProcW(
_In_ HWND hWnd,
_In_ UINT uMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
TranslateMDISysAccel(
_In_ HWND hWndClient,
_In_ LPMSG lpMsg);
WINUSERAPI
UINT
WINAPI
ArrangeIconicWindows(
_In_ HWND hWnd);
WINUSERAPI
HWND
WINAPI
CreateMDIWindowA(
_In_ LPCSTR lpClassName,
_In_ LPCSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HINSTANCE hInstance,
_In_ LPARAM lParam);
WINUSERAPI
HWND
WINAPI
CreateMDIWindowW(
_In_ LPCWSTR lpClassName,
_In_ LPCWSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HINSTANCE hInstance,
_In_ LPARAM lParam);
WINUSERAPI
WORD
WINAPI
TileWindows(
_In_opt_ HWND hwndParent,
_In_ UINT wHow,
_In_opt_ CONST RECT * lpRect,
_In_ UINT cKids,
_In_reads_opt_(cKids) const HWND FAR * lpKids);
WINUSERAPI
WORD
WINAPI CascadeWindows(
_In_opt_ HWND hwndParent,
_In_ UINT wHow,
_In_opt_ CONST RECT * lpRect,
_In_ UINT cKids,
_In_reads_opt_(cKids) const HWND FAR * lpKids);
typedef DWORD HELPPOLY;
typedef struct tagMULTIKEYHELPA {
DWORD mkSize;
CHAR mkKeylist;
CHAR szKeyphrase[1];
} MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA;
typedef struct tagMULTIKEYHELPW {
DWORD mkSize;
WCHAR mkKeylist;
WCHAR szKeyphrase[1];
} MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW;
typedef MULTIKEYHELPA MULTIKEYHELP;
typedef PMULTIKEYHELPA PMULTIKEYHELP;
typedef LPMULTIKEYHELPA LPMULTIKEYHELP;
typedef struct tagHELPWININFOA {
int wStructSize;
int x;
int y;
int dx;
int dy;
int wMax;
CHAR rgchMember[2];
} HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA;
typedef struct tagHELPWININFOW {
int wStructSize;
int x;
int y;
int dx;
int dy;
int wMax;
WCHAR rgchMember[2];
} HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW;
typedef HELPWININFOA HELPWININFO;
typedef PHELPWININFOA PHELPWININFO;
typedef LPHELPWININFOA LPHELPWININFO;
WINUSERAPI
BOOL
WINAPI
WinHelpA(
_In_opt_ HWND hWndMain,
_In_opt_ LPCSTR lpszHelp,
_In_ UINT uCommand,
_In_ ULONG_PTR dwData);
WINUSERAPI
BOOL
WINAPI
WinHelpW(
_In_opt_ HWND hWndMain,
_In_opt_ LPCWSTR lpszHelp,
_In_ UINT uCommand,
_In_ ULONG_PTR dwData);
WINUSERAPI
DWORD
WINAPI
GetGuiResources(
_In_ HANDLE hProcess,
_In_ DWORD uiFlags);
typedef struct tagTouchPredictionParameters
{
UINT cbSize;
UINT dwLatency;
UINT dwSampleTime;
UINT bUseHWTimeStamp;
} TOUCHPREDICTIONPARAMETERS, *PTOUCHPREDICTIONPARAMETERS;
typedef enum tagHANDEDNESS {
HANDEDNESS_LEFT = 0,
HANDEDNESS_RIGHT
} HANDEDNESS, *PHANDEDNESS;
typedef struct tagNONCLIENTMETRICSA
{
UINT cbSize;
int iBorderWidth;
int iScrollWidth;
int iScrollHeight;
int iCaptionWidth;
int iCaptionHeight;
LOGFONTA lfCaptionFont;
int iSmCaptionWidth;
int iSmCaptionHeight;
LOGFONTA lfSmCaptionFont;
int iMenuWidth;
int iMenuHeight;
LOGFONTA lfMenuFont;
LOGFONTA lfStatusFont;
LOGFONTA lfMessageFont;
int iPaddedBorderWidth;
} NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, FAR* LPNONCLIENTMETRICSA;
typedef struct tagNONCLIENTMETRICSW
{
UINT cbSize;
int iBorderWidth;
int iScrollWidth;
int iScrollHeight;
int iCaptionWidth;
int iCaptionHeight;
LOGFONTW lfCaptionFont;
int iSmCaptionWidth;
int iSmCaptionHeight;
LOGFONTW lfSmCaptionFont;
int iMenuWidth;
int iMenuHeight;
LOGFONTW lfMenuFont;
LOGFONTW lfStatusFont;
LOGFONTW lfMessageFont;
int iPaddedBorderWidth;
} NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, FAR* LPNONCLIENTMETRICSW;
typedef NONCLIENTMETRICSA NONCLIENTMETRICS;
typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS;
typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS;
typedef struct tagMINIMIZEDMETRICS
{
UINT cbSize;
int iWidth;
int iHorzGap;
int iVertGap;
int iArrange;
} MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
typedef struct tagICONMETRICSA
{
UINT cbSize;
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
LOGFONTA lfFont;
} ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA;
typedef struct tagICONMETRICSW
{
UINT cbSize;
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
LOGFONTW lfFont;
} ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW;
typedef ICONMETRICSA ICONMETRICS;
typedef PICONMETRICSA PICONMETRICS;
typedef LPICONMETRICSA LPICONMETRICS;
typedef struct tagANIMATIONINFO
{
UINT cbSize;
int iMinAnimate;
} ANIMATIONINFO, *LPANIMATIONINFO;
typedef struct tagSERIALKEYSA
{
UINT cbSize;
DWORD dwFlags;
LPSTR lpszActivePort;
LPSTR lpszPort;
UINT iBaudRate;
UINT iPortState;
UINT iActive;
} SERIALKEYSA, *LPSERIALKEYSA;
typedef struct tagSERIALKEYSW
{
UINT cbSize;
DWORD dwFlags;
LPWSTR lpszActivePort;
LPWSTR lpszPort;
UINT iBaudRate;
UINT iPortState;
UINT iActive;
} SERIALKEYSW, *LPSERIALKEYSW;
typedef SERIALKEYSA SERIALKEYS;
typedef LPSERIALKEYSA LPSERIALKEYS;
typedef struct tagHIGHCONTRASTA
{
UINT cbSize;
DWORD dwFlags;
LPSTR lpszDefaultScheme;
} HIGHCONTRASTA, *LPHIGHCONTRASTA;
typedef struct tagHIGHCONTRASTW
{
UINT cbSize;
DWORD dwFlags;
LPWSTR lpszDefaultScheme;
} HIGHCONTRASTW, *LPHIGHCONTRASTW;
typedef HIGHCONTRASTA HIGHCONTRAST;
typedef LPHIGHCONTRASTA LPHIGHCONTRAST;
typedef struct _VIDEOPARAMETERS {
GUID Guid;
ULONG dwOffset;
ULONG dwCommand;
ULONG dwFlags;
ULONG dwMode;
ULONG dwTVStandard;
ULONG dwAvailableModes;
ULONG dwAvailableTVStandard;
ULONG dwFlickerFilter;
ULONG dwOverScanX;
ULONG dwOverScanY;
ULONG dwMaxUnscaledX;
ULONG dwMaxUnscaledY;
ULONG dwPositionX;
ULONG dwPositionY;
ULONG dwBrightness;
ULONG dwContrast;
ULONG dwCPType;
ULONG dwCPCommand;
ULONG dwCPStandard;
ULONG dwCPKey;
ULONG bCP_APSTriggerBits;
UCHAR bOEMCopyProtection[256];
} VIDEOPARAMETERS, *PVIDEOPARAMETERS, *LPVIDEOPARAMETERS;
WINUSERAPI
LONG
WINAPI
ChangeDisplaySettingsA(
_In_opt_ DEVMODEA* lpDevMode,
_In_ DWORD dwFlags);
WINUSERAPI
LONG
WINAPI
ChangeDisplaySettingsW(
_In_opt_ DEVMODEW* lpDevMode,
_In_ DWORD dwFlags);
WINUSERAPI
LONG
WINAPI
ChangeDisplaySettingsExA(
_In_opt_ LPCSTR lpszDeviceName,
_In_opt_ DEVMODEA* lpDevMode,
_Reserved_ HWND hwnd,
_In_ DWORD dwflags,
_In_opt_ LPVOID lParam);
WINUSERAPI
LONG
WINAPI
ChangeDisplaySettingsExW(
_In_opt_ LPCWSTR lpszDeviceName,
_In_opt_ DEVMODEW* lpDevMode,
_Reserved_ HWND hwnd,
_In_ DWORD dwflags,
_In_opt_ LPVOID lParam);
WINUSERAPI
BOOL
WINAPI
EnumDisplaySettingsA(
_In_opt_ LPCSTR lpszDeviceName,
_In_ DWORD iModeNum,
_Inout_ DEVMODEA* lpDevMode);
WINUSERAPI
BOOL
WINAPI
EnumDisplaySettingsW(
_In_opt_ LPCWSTR lpszDeviceName,
_In_ DWORD iModeNum,
_Inout_ DEVMODEW* lpDevMode);
WINUSERAPI
BOOL
WINAPI
EnumDisplaySettingsExA(
_In_opt_ LPCSTR lpszDeviceName,
_In_ DWORD iModeNum,
_Inout_ DEVMODEA* lpDevMode,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
EnumDisplaySettingsExW(
_In_opt_ LPCWSTR lpszDeviceName,
_In_ DWORD iModeNum,
_Inout_ DEVMODEW* lpDevMode,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
EnumDisplayDevicesA(
_In_opt_ LPCSTR lpDevice,
_In_ DWORD iDevNum,
_Inout_ PDISPLAY_DEVICEA lpDisplayDevice,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
EnumDisplayDevicesW(
_In_opt_ LPCWSTR lpDevice,
_In_ DWORD iDevNum,
_Inout_ PDISPLAY_DEVICEW lpDisplayDevice,
_In_ DWORD dwFlags);
WINUSERAPI
LONG
WINAPI
GetDisplayConfigBufferSizes(
_In_ UINT32 flags,
_Out_ UINT32* numPathArrayElements,
_Out_ UINT32* numModeInfoArrayElements);
WINUSERAPI
LONG
WINAPI
SetDisplayConfig(
_In_ UINT32 numPathArrayElements,
_In_reads_opt_(numPathArrayElements) DISPLAYCONFIG_PATH_INFO* pathArray,
_In_ UINT32 numModeInfoArrayElements,
_In_reads_opt_(numModeInfoArrayElements) DISPLAYCONFIG_MODE_INFO* modeInfoArray,
_In_ UINT32 flags);
WINUSERAPI
_Success_(return == ERROR_SUCCESS) LONG
WINAPI
QueryDisplayConfig(
_In_ UINT32 flags,
_Inout_ UINT32* numPathArrayElements,
_Out_writes_to_(*numPathArrayElements, *numPathArrayElements) DISPLAYCONFIG_PATH_INFO* pathArray,
_Inout_ UINT32* numModeInfoArrayElements,
_Out_writes_to_(*numModeInfoArrayElements, *numModeInfoArrayElements) DISPLAYCONFIG_MODE_INFO* modeInfoArray,
_When_(!(flags & QDC_DATABASE_CURRENT), _Pre_null_)
_When_(flags & QDC_DATABASE_CURRENT, _Out_)
DISPLAYCONFIG_TOPOLOGY_ID* currentTopologyId);
WINUSERAPI
LONG
WINAPI
DisplayConfigGetDeviceInfo(
_Inout_ DISPLAYCONFIG_DEVICE_INFO_HEADER* requestPacket);
WINUSERAPI
LONG
WINAPI
DisplayConfigSetDeviceInfo(
_In_ DISPLAYCONFIG_DEVICE_INFO_HEADER* setPacket);
WINUSERAPI
_Success_(return != FALSE)
BOOL
WINAPI
SystemParametersInfoA(
_In_ UINT uiAction,
_In_ UINT uiParam,
_Pre_maybenull_ _Post_valid_ PVOID pvParam,
_In_ UINT fWinIni);
WINUSERAPI
_Success_(return != FALSE)
BOOL
WINAPI
SystemParametersInfoW(
_In_ UINT uiAction,
_In_ UINT uiParam,
_Pre_maybenull_ _Post_valid_ PVOID pvParam,
_In_ UINT fWinIni);
WINUSERAPI
_Success_(return != FALSE)
BOOL
WINAPI
SystemParametersInfoForDpi(
_In_ UINT uiAction,
_In_ UINT uiParam,
_Pre_maybenull_ _Post_valid_ PVOID pvParam,
_In_ UINT fWinIni,
_In_ UINT dpi);
typedef struct tagFILTERKEYS
{
UINT cbSize;
DWORD dwFlags;
DWORD iWaitMSec;
DWORD iDelayMSec;
DWORD iRepeatMSec;
DWORD iBounceMSec;
} FILTERKEYS, *LPFILTERKEYS;
typedef struct tagSTICKYKEYS
{
UINT cbSize;
DWORD dwFlags;
} STICKYKEYS, *LPSTICKYKEYS;
typedef struct tagMOUSEKEYS
{
UINT cbSize;
DWORD dwFlags;
DWORD iMaxSpeed;
DWORD iTimeToMaxSpeed;
DWORD iCtrlSpeed;
DWORD dwReserved1;
DWORD dwReserved2;
} MOUSEKEYS, *LPMOUSEKEYS;
typedef struct tagACCESSTIMEOUT
{
UINT cbSize;
DWORD dwFlags;
DWORD iTimeOutMSec;
} ACCESSTIMEOUT, *LPACCESSTIMEOUT;
typedef struct tagSOUNDSENTRYA
{
UINT cbSize;
DWORD dwFlags;
DWORD iFSTextEffect;
DWORD iFSTextEffectMSec;
DWORD iFSTextEffectColorBits;
DWORD iFSGrafEffect;
DWORD iFSGrafEffectMSec;
DWORD iFSGrafEffectColor;
DWORD iWindowsEffect;
DWORD iWindowsEffectMSec;
LPSTR lpszWindowsEffectDLL;
DWORD iWindowsEffectOrdinal;
} SOUNDSENTRYA, *LPSOUNDSENTRYA;
typedef struct tagSOUNDSENTRYW
{
UINT cbSize;
DWORD dwFlags;
DWORD iFSTextEffect;
DWORD iFSTextEffectMSec;
DWORD iFSTextEffectColorBits;
DWORD iFSGrafEffect;
DWORD iFSGrafEffectMSec;
DWORD iFSGrafEffectColor;
DWORD iWindowsEffect;
DWORD iWindowsEffectMSec;
LPWSTR lpszWindowsEffectDLL;
DWORD iWindowsEffectOrdinal;
} SOUNDSENTRYW, *LPSOUNDSENTRYW;
typedef SOUNDSENTRYA SOUNDSENTRY;
typedef LPSOUNDSENTRYA LPSOUNDSENTRY;
WINUSERAPI
BOOL
WINAPI
SoundSentry(VOID);
typedef struct tagTOGGLEKEYS
{
UINT cbSize;
DWORD dwFlags;
} TOGGLEKEYS, *LPTOGGLEKEYS;
typedef struct tagAUDIODESCRIPTION {
UINT cbSize;
BOOL Enabled;
LCID Locale;
} AUDIODESCRIPTION, *LPAUDIODESCRIPTION;
WINUSERAPI
VOID
WINAPI
SetDebugErrorLevel(
_In_ DWORD dwLevel);
WINUSERAPI
VOID
WINAPI
SetLastErrorEx(
_In_ DWORD dwErrCode,
_In_ DWORD dwType);
WINUSERAPI
int
WINAPI
InternalGetWindowText(
_In_ HWND hWnd,
_Out_writes_to_(cchMaxCount, return + 1) LPWSTR pString,
_In_ int cchMaxCount);
WINUSERAPI
BOOL
WINAPI
CancelShutdown(
VOID);
WINUSERAPI
HMONITOR
WINAPI
MonitorFromPoint(
_In_ POINT pt,
_In_ DWORD dwFlags);
WINUSERAPI
HMONITOR
WINAPI
MonitorFromRect(
_In_ LPCRECT lprc,
_In_ DWORD dwFlags);
WINUSERAPI
HMONITOR
WINAPI
MonitorFromWindow(
_In_ HWND hwnd,
_In_ DWORD dwFlags);
typedef struct tagMONITORINFO
{
DWORD cbSize;
RECT rcMonitor;
RECT rcWork;
DWORD dwFlags;
} MONITORINFO, *LPMONITORINFO;
typedef struct tagMONITORINFOEXA
{
MONITORINFO DUMMYSTRUCTNAME;
CHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXA, *LPMONITORINFOEXA;
typedef struct tagMONITORINFOEXW
{
MONITORINFO DUMMYSTRUCTNAME;
WCHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXW, *LPMONITORINFOEXW;
typedef MONITORINFOEXA MONITORINFOEX;
typedef LPMONITORINFOEXA LPMONITORINFOEX;
WINUSERAPI
BOOL
WINAPI
GetMonitorInfoA(
_In_ HMONITOR hMonitor,
_Inout_ LPMONITORINFO lpmi);
WINUSERAPI
BOOL
WINAPI
GetMonitorInfoW(
_In_ HMONITOR hMonitor,
_Inout_ LPMONITORINFO lpmi);
typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);
WINUSERAPI
BOOL
WINAPI
EnumDisplayMonitors(
_In_opt_ HDC hdc,
_In_opt_ LPCRECT lprcClip,
_In_ MONITORENUMPROC lpfnEnum,
_In_ LPARAM dwData);
WINUSERAPI
VOID
WINAPI
NotifyWinEvent(
_In_ DWORD event,
_In_ HWND hwnd,
_In_ LONG idObject,
_In_ LONG idChild);
typedef VOID (CALLBACK* WINEVENTPROC)(
HWINEVENTHOOK hWinEventHook,
DWORD event,
HWND hwnd,
LONG idObject,
LONG idChild,
DWORD idEventThread,
DWORD dwmsEventTime);
WINUSERAPI
HWINEVENTHOOK
WINAPI
SetWinEventHook(
_In_ DWORD eventMin,
_In_ DWORD eventMax,
_In_opt_ HMODULE hmodWinEventProc,
_In_ WINEVENTPROC pfnWinEventProc,
_In_ DWORD idProcess,
_In_ DWORD idThread,
_In_ DWORD dwFlags);
WINUSERAPI
BOOL
WINAPI
IsWinEventHookInstalled(
_In_ DWORD event);
WINUSERAPI
BOOL
WINAPI
UnhookWinEvent(
_In_ HWINEVENTHOOK hWinEventHook);
typedef struct tagGUITHREADINFO
{
DWORD cbSize;
DWORD flags;
HWND hwndActive;
HWND hwndFocus;
HWND hwndCapture;
HWND hwndMenuOwner;
HWND hwndMoveSize;
HWND hwndCaret;
RECT rcCaret;
} GUITHREADINFO, *PGUITHREADINFO, FAR * LPGUITHREADINFO;
WINUSERAPI
BOOL
WINAPI
GetGUIThreadInfo(
_In_ DWORD idThread,
_Inout_ PGUITHREADINFO pgui);
WINUSERAPI
BOOL
WINAPI
BlockInput(
BOOL fBlockIt);
WINUSERAPI
BOOL
WINAPI
SetProcessDPIAware(
VOID);
WINUSERAPI
BOOL
WINAPI
IsProcessDPIAware(
VOID);
WINUSERAPI
DPI_AWARENESS_CONTEXT
WINAPI
SetThreadDpiAwarenessContext(
_In_ DPI_AWARENESS_CONTEXT dpiContext);
WINUSERAPI
DPI_AWARENESS_CONTEXT
WINAPI
GetThreadDpiAwarenessContext(
VOID);
WINUSERAPI
DPI_AWARENESS_CONTEXT
WINAPI
GetWindowDpiAwarenessContext(
_In_ HWND hwnd);
WINUSERAPI
DPI_AWARENESS
WINAPI
GetAwarenessFromDpiAwarenessContext(
_In_ DPI_AWARENESS_CONTEXT value);
WINUSERAPI
UINT
WINAPI
GetDpiFromDpiAwarenessContext(
_In_ DPI_AWARENESS_CONTEXT value);
WINUSERAPI
BOOL
WINAPI
AreDpiAwarenessContextsEqual(
_In_ DPI_AWARENESS_CONTEXT dpiContextA,
_In_ DPI_AWARENESS_CONTEXT dpiContextB);
WINUSERAPI
BOOL
WINAPI
IsValidDpiAwarenessContext(
_In_ DPI_AWARENESS_CONTEXT value);
WINUSERAPI
UINT
WINAPI
GetDpiForWindow(
_In_ HWND hwnd);
WINUSERAPI
UINT
WINAPI
GetDpiForSystem(
VOID);
WINUSERAPI
UINT
WINAPI
GetSystemDpiForProcess(
_In_ HANDLE hProcess);
WINUSERAPI
BOOL
WINAPI
EnableNonClientDpiScaling(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
InheritWindowMonitor(
_In_ HWND hwnd,
_In_opt_ HWND hwndInherit);
WINUSERAPI
BOOL
WINAPI
SetProcessDpiAwarenessContext(
_In_ DPI_AWARENESS_CONTEXT value);
WINUSERAPI
DPI_AWARENESS_CONTEXT
WINAPI
GetDpiAwarenessContextForProcess(
_In_ HANDLE hProcess);
WINUSERAPI
DPI_HOSTING_BEHAVIOR
WINAPI
SetThreadDpiHostingBehavior(
_In_ DPI_HOSTING_BEHAVIOR value);
WINUSERAPI
DPI_HOSTING_BEHAVIOR
WINAPI
GetThreadDpiHostingBehavior(VOID);
WINUSERAPI
DPI_HOSTING_BEHAVIOR
WINAPI
GetWindowDpiHostingBehavior(
_In_ HWND hwnd);
WINUSERAPI
UINT
WINAPI
GetWindowModuleFileNameA(
_In_ HWND hwnd,
_Out_writes_to_(cchFileNameMax, return) LPSTR pszFileName,
_In_ UINT cchFileNameMax);
WINUSERAPI
UINT
WINAPI
GetWindowModuleFileNameW(
_In_ HWND hwnd,
_Out_writes_to_(cchFileNameMax, return) LPWSTR pszFileName,
_In_ UINT cchFileNameMax);
typedef struct tagCURSORINFO
{
DWORD cbSize;
DWORD flags;
HCURSOR hCursor;
POINT ptScreenPos;
} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
WINUSERAPI
BOOL
WINAPI
GetCursorInfo(
_Inout_ PCURSORINFO pci);
typedef struct tagWINDOWINFO
{
DWORD cbSize;
RECT rcWindow;
RECT rcClient;
DWORD dwStyle;
DWORD dwExStyle;
DWORD dwWindowStatus;
UINT cxWindowBorders;
UINT cyWindowBorders;
ATOM atomWindowType;
WORD wCreatorVersion;
} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
WINUSERAPI
BOOL
WINAPI
GetWindowInfo(
_In_ HWND hwnd,
_Inout_ PWINDOWINFO pwi);
typedef struct tagTITLEBARINFO
{
DWORD cbSize;
RECT rcTitleBar;
DWORD rgstate[CCHILDREN_TITLEBAR + 1];
} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
WINUSERAPI
BOOL
WINAPI
GetTitleBarInfo(
_In_ HWND hwnd,
_Inout_ PTITLEBARINFO pti);
typedef struct tagTITLEBARINFOEX
{
DWORD cbSize;
RECT rcTitleBar;
DWORD rgstate[CCHILDREN_TITLEBAR + 1];
RECT rgrect[CCHILDREN_TITLEBAR + 1];
} TITLEBARINFOEX, *PTITLEBARINFOEX, *LPTITLEBARINFOEX;
typedef struct tagMENUBARINFO
{
DWORD cbSize;
RECT rcBar;
HMENU hMenu;
HWND hwndMenu;
BOOL fBarFocused:1;
BOOL fFocused:1;
BOOL fUnused:30;
} MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO;
WINUSERAPI
BOOL
WINAPI
GetMenuBarInfo(
_In_ HWND hwnd,
_In_ LONG idObject,
_In_ LONG idItem,
_Inout_ PMENUBARINFO pmbi);
typedef struct tagSCROLLBARINFO
{
DWORD cbSize;
RECT rcScrollBar;
int dxyLineButton;
int xyThumbTop;
int xyThumbBottom;
int reserved;
DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
WINUSERAPI
BOOL
WINAPI
GetScrollBarInfo(
_In_ HWND hwnd,
_In_ LONG idObject,
_Inout_ PSCROLLBARINFO psbi);
typedef struct tagCOMBOBOXINFO
{
DWORD cbSize;
RECT rcItem;
RECT rcButton;
DWORD stateButton;
HWND hwndCombo;
HWND hwndItem;
HWND hwndList;
} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
WINUSERAPI
BOOL
WINAPI
GetComboBoxInfo(
_In_ HWND hwndCombo,
_Inout_ PCOMBOBOXINFO pcbi);
WINUSERAPI
HWND
WINAPI
GetAncestor(
_In_ HWND hwnd,
_In_ UINT gaFlags);
WINUSERAPI
HWND
WINAPI
RealChildWindowFromPoint(
_In_ HWND hwndParent,
_In_ POINT ptParentClientCoords);
WINUSERAPI
UINT
WINAPI
RealGetWindowClassA(
_In_ HWND hwnd,
_Out_writes_to_(cchClassNameMax, return) LPSTR ptszClassName,
_In_ UINT cchClassNameMax);
WINUSERAPI
UINT
WINAPI
RealGetWindowClassW(
_In_ HWND hwnd,
_Out_writes_to_(cchClassNameMax, return) LPWSTR ptszClassName,
_In_ UINT cchClassNameMax);
typedef struct tagALTTABINFO
{
DWORD cbSize;
int cItems;
int cColumns;
int cRows;
int iColFocus;
int iRowFocus;
int cxItem;
int cyItem;
POINT ptStart;
} ALTTABINFO, *PALTTABINFO, *LPALTTABINFO;
WINUSERAPI
BOOL
WINAPI
GetAltTabInfoA(
_In_opt_ HWND hwnd,
_In_ int iItem,
_Inout_ PALTTABINFO pati,
_Out_writes_opt_(cchItemText) LPSTR pszItemText,
_In_ UINT cchItemText);
WINUSERAPI
BOOL
WINAPI
GetAltTabInfoW(
_In_opt_ HWND hwnd,
_In_ int iItem,
_Inout_ PALTTABINFO pati,
_Out_writes_opt_(cchItemText) LPWSTR pszItemText,
_In_ UINT cchItemText);
WINUSERAPI
DWORD
WINAPI
GetListBoxInfo(
_In_ HWND hwnd);
WINUSERAPI
BOOL
WINAPI
LockWorkStation(
VOID);
WINUSERAPI
BOOL
WINAPI
UserHandleGrantAccess(
_In_ HANDLE hUserHandle,
_In_ HANDLE hJob,
_In_ BOOL bGrant);
DECLARE_HANDLE(HRAWINPUT);
typedef struct tagRAWINPUTHEADER {
DWORD dwType;
DWORD dwSize;
HANDLE hDevice;
WPARAM wParam;
} RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER;
typedef struct tagRAWMOUSE {
USHORT usFlags;
union {
ULONG ulButtons;
struct {
USHORT usButtonFlags;
USHORT usButtonData;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
ULONG ulRawButtons;
LONG lLastX;
LONG lLastY;
ULONG ulExtraInformation;
} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE;
typedef struct tagRAWKEYBOARD {
USHORT MakeCode;
USHORT Flags;
USHORT Reserved;
USHORT VKey;
UINT Message;
ULONG ExtraInformation;
} RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD;
typedef struct tagRAWHID {
DWORD dwSizeHid;
DWORD dwCount;
BYTE bRawData[1];
} RAWHID, *PRAWHID, *LPRAWHID;
typedef struct tagRAWINPUT {
RAWINPUTHEADER header;
union {
RAWMOUSE mouse;
RAWKEYBOARD keyboard;
RAWHID hid;
} data;
} RAWINPUT, *PRAWINPUT, *LPRAWINPUT;
WINUSERAPI
UINT
WINAPI
GetRawInputData(
_In_ HRAWINPUT hRawInput,
_In_ UINT uiCommand,
_Out_writes_bytes_to_opt_(*pcbSize, return) LPVOID pData,
_Inout_ PUINT pcbSize,
_In_ UINT cbSizeHeader);
typedef struct tagRID_DEVICE_INFO_MOUSE {
DWORD dwId;
DWORD dwNumberOfButtons;
DWORD dwSampleRate;
BOOL fHasHorizontalWheel;
} RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE;
typedef struct tagRID_DEVICE_INFO_KEYBOARD {
DWORD dwType;
DWORD dwSubType;
DWORD dwKeyboardMode;
DWORD dwNumberOfFunctionKeys;
DWORD dwNumberOfIndicators;
DWORD dwNumberOfKeysTotal;
} RID_DEVICE_INFO_KEYBOARD, *PRID_DEVICE_INFO_KEYBOARD;
typedef struct tagRID_DEVICE_INFO_HID {
DWORD dwVendorId;
DWORD dwProductId;
DWORD dwVersionNumber;
USHORT usUsagePage;
USHORT usUsage;
} RID_DEVICE_INFO_HID, *PRID_DEVICE_INFO_HID;
typedef struct tagRID_DEVICE_INFO {
DWORD cbSize;
DWORD dwType;
union {
RID_DEVICE_INFO_MOUSE mouse;
RID_DEVICE_INFO_KEYBOARD keyboard;
RID_DEVICE_INFO_HID hid;
} DUMMYUNIONNAME;
} RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO;
WINUSERAPI
UINT
WINAPI
GetRawInputDeviceInfoA(
_In_opt_ HANDLE hDevice,
_In_ UINT uiCommand,
_Inout_updates_bytes_to_opt_(*pcbSize, *pcbSize) LPVOID pData,
_Inout_ PUINT pcbSize);
WINUSERAPI
UINT
WINAPI
GetRawInputDeviceInfoW(
_In_opt_ HANDLE hDevice,
_In_ UINT uiCommand,
_Inout_updates_bytes_to_opt_(*pcbSize, *pcbSize) LPVOID pData,
_Inout_ PUINT pcbSize);
WINUSERAPI
UINT
WINAPI
GetRawInputBuffer(
_Out_writes_bytes_opt_(*pcbSize) PRAWINPUT pData,
_Inout_ PUINT pcbSize,
_In_ UINT cbSizeHeader);
typedef struct tagRAWINPUTDEVICE {
USHORT usUsagePage;
USHORT usUsage;
DWORD dwFlags;
HWND hwndTarget;
} RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE;
typedef CONST RAWINPUTDEVICE* PCRAWINPUTDEVICE;
WINUSERAPI
BOOL
WINAPI
RegisterRawInputDevices(
_In_reads_(uiNumDevices) PCRAWINPUTDEVICE pRawInputDevices,
_In_ UINT uiNumDevices,
_In_ UINT cbSize);
WINUSERAPI
UINT
WINAPI
GetRegisteredRawInputDevices(
_Out_writes_opt_( *puiNumDevices) PRAWINPUTDEVICE pRawInputDevices,
_Inout_ PUINT puiNumDevices,
_In_ UINT cbSize);
typedef struct tagRAWINPUTDEVICELIST {
HANDLE hDevice;
DWORD dwType;
} RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST;
WINUSERAPI
UINT
WINAPI
GetRawInputDeviceList(
_Out_writes_opt_(*puiNumDevices) PRAWINPUTDEVICELIST pRawInputDeviceList,
_Inout_ PUINT puiNumDevices,
_In_ UINT cbSize);
WINUSERAPI
LRESULT
WINAPI
DefRawInputProc(
_In_reads_(nInput) PRAWINPUT* paRawInput,
_In_ INT nInput,
_In_ UINT cbSizeHeader);
typedef enum tagPOINTER_DEVICE_TYPE {
POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001,
POINTER_DEVICE_TYPE_EXTERNAL_PEN = 0x00000002,
POINTER_DEVICE_TYPE_TOUCH = 0x00000003,
POINTER_DEVICE_TYPE_TOUCH_PAD = 0x00000004,
POINTER_DEVICE_TYPE_MAX = 0xFFFFFFFF
} POINTER_DEVICE_TYPE;
typedef struct tagPOINTER_DEVICE_INFO {
DWORD displayOrientation;
HANDLE device;
POINTER_DEVICE_TYPE pointerDeviceType;
HMONITOR monitor;
ULONG startingCursorId;
USHORT maxActiveContacts;
WCHAR productString[POINTER_DEVICE_PRODUCT_STRING_MAX];
} POINTER_DEVICE_INFO;
typedef struct tagPOINTER_DEVICE_PROPERTY {
INT32 logicalMin;
INT32 logicalMax;
INT32 physicalMin;
INT32 physicalMax;
UINT32 unit;
UINT32 unitExponent;
USHORT usagePageId;
USHORT usageId;
} POINTER_DEVICE_PROPERTY;
typedef enum tagPOINTER_DEVICE_CURSOR_TYPE {
POINTER_DEVICE_CURSOR_TYPE_UNKNOWN = 0x00000000,
POINTER_DEVICE_CURSOR_TYPE_TIP = 0x00000001,
POINTER_DEVICE_CURSOR_TYPE_ERASER = 0x00000002,
POINTER_DEVICE_CURSOR_TYPE_MAX = 0xFFFFFFFF
} POINTER_DEVICE_CURSOR_TYPE;
typedef struct tagPOINTER_DEVICE_CURSOR_INFO {
UINT32 cursorId;
POINTER_DEVICE_CURSOR_TYPE cursor;
} POINTER_DEVICE_CURSOR_INFO;
WINUSERAPI
BOOL
WINAPI
GetPointerDevices(
_Inout_ UINT32* deviceCount,
_Out_writes_opt_(*deviceCount) POINTER_DEVICE_INFO *pointerDevices);
WINUSERAPI
BOOL
WINAPI
GetPointerDevice(
_In_ HANDLE device,
_Out_writes_(1) POINTER_DEVICE_INFO *pointerDevice);
WINUSERAPI
BOOL
WINAPI
GetPointerDeviceProperties(
_In_ HANDLE device,
_Inout_ UINT32* propertyCount,
_Out_writes_opt_(*propertyCount) POINTER_DEVICE_PROPERTY *pointerProperties);
WINUSERAPI
BOOL
WINAPI
RegisterPointerDeviceNotifications(
_In_ HWND window,
_In_ BOOL notifyRange);
WINUSERAPI
BOOL
WINAPI
GetPointerDeviceRects(
_In_ HANDLE device,
_Out_writes_(1) RECT* pointerDeviceRect,
_Out_writes_(1) RECT* displayRect);
WINUSERAPI
BOOL
WINAPI
GetPointerDeviceCursors(
_In_ HANDLE device,
_Inout_ UINT32* cursorCount,
_Out_writes_opt_(*cursorCount) POINTER_DEVICE_CURSOR_INFO *deviceCursors);
WINUSERAPI
BOOL
WINAPI
GetRawPointerDeviceData(
_In_ UINT32 pointerId,
_In_ UINT32 historyCount,
_In_ UINT32 propertiesCount,
_In_reads_(propertiesCount) POINTER_DEVICE_PROPERTY* pProperties,
_Out_writes_(historyCount * propertiesCount) LONG* pValues);
WINUSERAPI
BOOL
WINAPI
ChangeWindowMessageFilter(
_In_ UINT message,
_In_ DWORD dwFlag);
typedef struct tagCHANGEFILTERSTRUCT {
DWORD cbSize;
DWORD ExtStatus;
} CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT;
WINUSERAPI
BOOL
WINAPI
ChangeWindowMessageFilterEx(
_In_ HWND hwnd,
_In_ UINT message,
_In_ DWORD action,
_Inout_opt_ PCHANGEFILTERSTRUCT pChangeFilterStruct);
DECLARE_HANDLE(HGESTUREINFO);
typedef struct tagGESTUREINFO {
UINT cbSize;
DWORD dwFlags;
DWORD dwID;
HWND hwndTarget;
POINTS ptsLocation;
DWORD dwInstanceID;
DWORD dwSequenceID;
ULONGLONG ullArguments;
UINT cbExtraArgs;
} GESTUREINFO, *PGESTUREINFO;
typedef GESTUREINFO const * PCGESTUREINFO;
typedef struct tagGESTURENOTIFYSTRUCT {
UINT cbSize;
DWORD dwFlags;
HWND hwndTarget;
POINTS ptsLocation;
DWORD dwInstanceID;
} GESTURENOTIFYSTRUCT, *PGESTURENOTIFYSTRUCT;
WINUSERAPI
BOOL
WINAPI
GetGestureInfo(
_In_ HGESTUREINFO hGestureInfo,
_Out_ PGESTUREINFO pGestureInfo);
WINUSERAPI
BOOL
WINAPI
GetGestureExtraArgs(
_In_ HGESTUREINFO hGestureInfo,
_In_ UINT cbExtraArgs,
_Out_writes_bytes_(cbExtraArgs) PBYTE pExtraArgs);
WINUSERAPI
BOOL
WINAPI
CloseGestureInfoHandle(
_In_ HGESTUREINFO hGestureInfo);
typedef struct tagGESTURECONFIG {
DWORD dwID;
DWORD dwWant;
DWORD dwBlock;
} GESTURECONFIG, *PGESTURECONFIG;
WINUSERAPI
BOOL
WINAPI
SetGestureConfig(
_In_ HWND hwnd,
_In_ DWORD dwReserved,
_In_ UINT cIDs,
_In_reads_(cIDs) PGESTURECONFIG pGestureConfig,
_In_ UINT cbSize);
WINUSERAPI
BOOL
WINAPI
GetGestureConfig(
_In_ HWND hwnd,
_In_ DWORD dwReserved,
_In_ DWORD dwFlags,
_In_ PUINT pcIDs,
_Inout_updates_(*pcIDs) PGESTURECONFIG pGestureConfig,
_In_ UINT cbSize);
WINUSERAPI
BOOL
WINAPI
ShutdownBlockReasonCreate(
_In_ HWND hWnd,
_In_ LPCWSTR pwszReason);
WINUSERAPI
BOOL
WINAPI
ShutdownBlockReasonQuery(
_In_ HWND hWnd,
_Out_writes_opt_(*pcchBuff) LPWSTR pwszBuff,
_Inout_ DWORD *pcchBuff);
WINUSERAPI
BOOL
WINAPI
ShutdownBlockReasonDestroy(
_In_ HWND hWnd);
typedef enum tagINPUT_MESSAGE_DEVICE_TYPE {
IMDT_UNAVAILABLE = 0x00000000,
IMDT_KEYBOARD = 0x00000001,
IMDT_MOUSE = 0x00000002,
IMDT_TOUCH = 0x00000004,
IMDT_PEN = 0x00000008,
IMDT_TOUCHPAD = 0x00000010,
} INPUT_MESSAGE_DEVICE_TYPE;
typedef enum tagINPUT_MESSAGE_ORIGIN_ID {
IMO_UNAVAILABLE = 0x00000000,
IMO_HARDWARE = 0x00000001,
IMO_INJECTED = 0x00000002,
IMO_SYSTEM = 0x00000004,
} INPUT_MESSAGE_ORIGIN_ID;
typedef struct tagINPUT_MESSAGE_SOURCE {
INPUT_MESSAGE_DEVICE_TYPE deviceType;
INPUT_MESSAGE_ORIGIN_ID originId;
} INPUT_MESSAGE_SOURCE;
WINUSERAPI
BOOL
WINAPI
GetCurrentInputMessageSource(
_Out_ INPUT_MESSAGE_SOURCE *inputMessageSource);
WINUSERAPI
BOOL
WINAPI
GetCIMSSM(
_Out_ INPUT_MESSAGE_SOURCE *inputMessageSource);
typedef enum tagAR_STATE {
AR_ENABLED = 0x0,
AR_DISABLED = 0x1,
AR_SUPPRESSED = 0x2,
AR_REMOTESESSION = 0x4,
AR_MULTIMON = 0x8,
AR_NOSENSOR = 0x10,
AR_NOT_SUPPORTED = 0x20,
AR_DOCKED = 0x40,
AR_LAPTOP = 0x80
} AR_STATE, *PAR_STATE;
DEFINE_ENUM_FLAG_OPERATORS(AR_STATE)
typedef enum ORIENTATION_PREFERENCE {
ORIENTATION_PREFERENCE_NONE = 0x0,
ORIENTATION_PREFERENCE_LANDSCAPE = 0x1,
ORIENTATION_PREFERENCE_PORTRAIT = 0x2,
ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,
ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8
} ORIENTATION_PREFERENCE;
DEFINE_ENUM_FLAG_OPERATORS(ORIENTATION_PREFERENCE)
WINUSERAPI
BOOL
WINAPI
GetAutoRotationState(
_Out_ PAR_STATE pState);
WINUSERAPI
BOOL
WINAPI
GetDisplayAutoRotationPreferences(
_Out_ ORIENTATION_PREFERENCE *pOrientation);
WINUSERAPI
BOOL
WINAPI
GetDisplayAutoRotationPreferencesByProcessId(
_In_ DWORD dwProcessId,
_Out_ ORIENTATION_PREFERENCE *pOrientation,
_Out_ BOOL *fRotateScreen);
WINUSERAPI
BOOL
WINAPI
SetDisplayAutoRotationPreferences(
_In_ ORIENTATION_PREFERENCE orientation);
WINUSERAPI
BOOL
WINAPI
IsImmersiveProcess(
_In_ HANDLE hProcess);
WINUSERAPI
BOOL
WINAPI
SetProcessRestrictionExemption(
_In_ BOOL fEnableExemption);
WINUSERAPI
BOOL
WINAPI
SetAdditionalForegroundBoostProcesses(HWND topLevelWindow,
DWORD processHandleCount,
_In_reads_(processHandleCount) HANDLE *processHandleArray);
typedef enum {
TDF_REGISTER = 0x0001,
TDF_UNREGISTER = 0x0002,
} TOOLTIP_DISMISS_FLAGS;
WINUSERAPI
BOOL
WINAPI
RegisterForTooltipDismissNotification(HWND hWnd,
TOOLTIP_DISMISS_FLAGS tdFlags);
WINBASEAPI
int
WINAPI
GetDateFormatA(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpDate,
_In_opt_ LPCSTR lpFormat,
_Out_writes_opt_(cchDate) LPSTR lpDateStr,
_In_ int cchDate
);
WINBASEAPI
int
WINAPI
GetDateFormatW(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpDate,
_In_opt_ LPCWSTR lpFormat,
_Out_writes_opt_(cchDate) LPWSTR lpDateStr,
_In_ int cchDate
);
WINBASEAPI
int
WINAPI
GetTimeFormatA(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpTime,
_In_opt_ LPCSTR lpFormat,
_Out_writes_opt_(cchTime) LPSTR lpTimeStr,
_In_ int cchTime
);
WINBASEAPI
int
WINAPI
GetTimeFormatW(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpTime,
_In_opt_ LPCWSTR lpFormat,
_Out_writes_opt_(cchTime) LPWSTR lpTimeStr,
_In_ int cchTime
);
WINBASEAPI
int
WINAPI
GetTimeFormatEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpTime,
_In_opt_ LPCWSTR lpFormat,
_Out_writes_opt_(cchTime) LPWSTR lpTimeStr,
_In_ int cchTime
);
WINBASEAPI
int
WINAPI
GetDateFormatEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpDate,
_In_opt_ LPCWSTR lpFormat,
_Out_writes_opt_(cchDate) LPWSTR lpDateStr,
_In_ int cchDate,
_In_opt_ LPCWSTR lpCalendar
);
WINBASEAPI
int
WINAPI
GetDurationFormatEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME* lpDuration,
_In_ ULONGLONG ullDuration,
_In_opt_ LPCWSTR lpFormat,
_Out_writes_opt_(cchDuration) LPWSTR lpDurationStr,
_In_ int cchDuration
);
typedef DWORD LGRPID;
typedef DWORD LCTYPE;
typedef DWORD CALTYPE;
typedef DWORD CALID;
DEPRECATED("Use Unicode. The information in this structure cannot represent all encodings accurately and may be unreliable on many machines. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef struct _cpinfo {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
} CPINFO, *LPCPINFO;
typedef DWORD GEOTYPE;
typedef DWORD GEOCLASS;
typedef LONG GEOID;
DEPRECATED("Use Unicode. The information in this structure cannot represent all encodings accurately and may be unreliable on many machines. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef struct _cpinfoexA {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
WCHAR UnicodeDefaultChar;
UINT CodePage;
CHAR CodePageName[MAX_PATH];
} CPINFOEXA, *LPCPINFOEXA;
DEPRECATED("Use Unicode. The information in this structure cannot represent all encodings accurately and may be unreliable on many machines. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef struct _cpinfoexW {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
WCHAR UnicodeDefaultChar;
UINT CodePage;
WCHAR CodePageName[MAX_PATH];
} CPINFOEXW, *LPCPINFOEXW;
typedef CPINFOEXA CPINFOEX;
typedef LPCPINFOEXA LPCPINFOEX;
typedef struct _numberfmtA {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPSTR lpDecimalSep;
LPSTR lpThousandSep;
UINT NegativeOrder;
} NUMBERFMTA, *LPNUMBERFMTA;
typedef struct _numberfmtW {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPWSTR lpDecimalSep;
LPWSTR lpThousandSep;
UINT NegativeOrder;
} NUMBERFMTW, *LPNUMBERFMTW;
typedef NUMBERFMTA NUMBERFMT;
typedef LPNUMBERFMTA LPNUMBERFMT;
typedef struct _currencyfmtA {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPSTR lpDecimalSep;
LPSTR lpThousandSep;
UINT NegativeOrder;
UINT PositiveOrder;
LPSTR lpCurrencySymbol;
} CURRENCYFMTA, *LPCURRENCYFMTA;
typedef struct _currencyfmtW {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPWSTR lpDecimalSep;
LPWSTR lpThousandSep;
UINT NegativeOrder;
UINT PositiveOrder;
LPWSTR lpCurrencySymbol;
} CURRENCYFMTW, *LPCURRENCYFMTW;
typedef CURRENCYFMTA CURRENCYFMT;
typedef LPCURRENCYFMTA LPCURRENCYFMT;
enum SYSNLS_FUNCTION {
COMPARE_STRING = 0x0001,
};
typedef DWORD NLS_FUNCTION;
typedef struct _nlsversioninfo{
DWORD dwNLSVersionInfoSize;
DWORD dwNLSVersion;
DWORD dwDefinedVersion;
DWORD dwEffectiveId;
GUID guidCustomVersion;
} NLSVERSIONINFO, *LPNLSVERSIONINFO;
typedef struct _nlsversioninfoex{
DWORD dwNLSVersionInfoSize;
DWORD dwNLSVersion;
DWORD dwDefinedVersion;
DWORD dwEffectiveId;
GUID guidCustomVersion;
} NLSVERSIONINFOEX, *LPNLSVERSIONINFOEX;
enum SYSGEOTYPE {
GEO_NATION = 0x0001,
GEO_LATITUDE = 0x0002,
GEO_LONGITUDE = 0x0003,
GEO_ISO2 = 0x0004,
GEO_ISO3 = 0x0005,
GEO_RFC1766 = 0x0006,
GEO_LCID = 0x0007,
GEO_FRIENDLYNAME= 0x0008,
GEO_OFFICIALNAME= 0x0009,
GEO_TIMEZONES = 0x000A,
GEO_OFFICIALLANGUAGES = 0x000B,
GEO_ISO_UN_NUMBER = 0x000C,
GEO_PARENT = 0x000D,
GEO_DIALINGCODE = 0x000E,
GEO_CURRENCYCODE= 0x000F,
GEO_CURRENCYSYMBOL= 0x0010,
GEO_NAME = 0x0011,
GEO_ID = 0x0012
};
DEPRECATED("The Geo Class concept is obsolete and no longer supported. GetGeoInfoEx is preferred. Set DISABLE_NLS_DEPRECATION to disable this warning.")
enum SYSGEOCLASS {
GEOCLASS_NATION = 16,
GEOCLASS_REGION = 14,
GEOCLASS_ALL = 0
};
typedef BOOL (CALLBACK* LOCALE_ENUMPROCA)(LPSTR);
typedef BOOL (CALLBACK* LOCALE_ENUMPROCW)(LPWSTR);
typedef enum _NORM_FORM {
NormalizationOther = 0,
NormalizationC = 0x1,
NormalizationD = 0x2,
NormalizationKC = 0x5,
NormalizationKD = 0x6
} NORM_FORM;
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
typedef BOOL (CALLBACK* CODEPAGE_ENUMPROCA)(LPSTR);
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCA)(LPSTR);
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCA)(LPSTR);
typedef BOOL (CALLBACK* CALINFO_ENUMPROCA)(LPSTR);
typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXA)(LPSTR, CALID);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
typedef BOOL (CALLBACK* CODEPAGE_ENUMPROCW)(LPWSTR);
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCW)(LPWSTR);
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCW)(LPWSTR);
typedef BOOL (CALLBACK* CALINFO_ENUMPROCW)(LPWSTR);
typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
typedef BOOL (CALLBACK* GEO_ENUMPROC)(GEOID);
typedef BOOL (CALLBACK* GEO_ENUMNAMEPROC)(PWSTR, LPARAM);
typedef struct _FILEMUIINFO {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFileType;
BYTE pChecksum[16];
BYTE pServiceChecksum[16];
DWORD dwLanguageNameOffset;
DWORD dwTypeIDMainSize;
DWORD dwTypeIDMainOffset;
DWORD dwTypeNameMainOffset;
DWORD dwTypeIDMUISize;
DWORD dwTypeIDMUIOffset;
DWORD dwTypeNameMUIOffset;
BYTE abBuffer[8];
} FILEMUIINFO, *PFILEMUIINFO;
WINBASEAPI
int
WINAPI
CompareStringEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwCmpFlags,
_In_NLS_string_(cchCount1) LPCWCH lpString1,
_In_ int cchCount1,
_In_NLS_string_(cchCount2) LPCWCH lpString2,
_In_ int cchCount2,
_Reserved_ LPNLSVERSIONINFO lpVersionInformation,
_Reserved_ LPVOID lpReserved,
_Reserved_ LPARAM lParam
);
WINBASEAPI
int
WINAPI
CompareStringOrdinal(
_In_NLS_string_(cchCount1) LPCWCH lpString1,
_In_ int cchCount1,
_In_NLS_string_(cchCount2) LPCWCH lpString2,
_In_ int cchCount2,
_In_ BOOL bIgnoreCase
);
WINBASEAPI
int
WINAPI
CompareStringW(
_In_ LCID Locale,
_In_ DWORD dwCmpFlags,
_In_NLS_string_(cchCount1) PCNZWCH lpString1,
_In_ int cchCount1,
_In_NLS_string_(cchCount2) PCNZWCH lpString2,
_In_ int cchCount2
);
WINBASEAPI
int
WINAPI
FoldStringW(
_In_ DWORD dwMapFlags,
_In_NLS_string_(cchSrc) LPCWCH lpSrcStr,
_In_ int cchSrc,
_Out_writes_opt_(cchDest) LPWSTR lpDestStr,
_In_ int cchDest
);
WINBASEAPI
BOOL
WINAPI
GetStringTypeExW(
_In_ LCID Locale,
_In_ DWORD dwInfoType,
_In_NLS_string_(cchSrc) LPCWCH lpSrcStr,
_In_ int cchSrc,
_Out_writes_(cchSrc) LPWORD lpCharType
);
WINBASEAPI
BOOL
WINAPI
GetStringTypeW(
_In_ DWORD dwInfoType,
_In_NLS_string_(cchSrc) LPCWCH lpSrcStr,
_In_ int cchSrc,
_Out_ LPWORD lpCharType
);
WINBASEAPI
_Success_(return != 0)
_When_((cbMultiByte == -1) && (cchWideChar != 0), _Post_equal_to_(_String_length_(lpWideCharStr)+1))
int
WINAPI
MultiByteToWideChar(
_In_ UINT CodePage,
_In_ DWORD dwFlags,
_In_NLS_string_(cbMultiByte) LPCCH lpMultiByteStr,
_In_ int cbMultiByte,
_Out_writes_to_opt_(cchWideChar,return) LPWSTR lpWideCharStr,
_In_ int cchWideChar
);
WINBASEAPI
_Success_(return != 0)
_When_((cchWideChar == -1) && (cbMultiByte != 0), _Post_equal_to_(_String_length_(lpMultiByteStr)+1))
int
WINAPI
WideCharToMultiByte(
_In_ UINT CodePage,
_In_ DWORD dwFlags,
_In_NLS_string_(cchWideChar) LPCWCH lpWideCharStr,
_In_ int cchWideChar,
_Out_writes_bytes_to_opt_(cbMultiByte,return) LPSTR lpMultiByteStr,
_In_ int cbMultiByte,
_In_opt_ LPCCH lpDefaultChar,
_Out_opt_ LPBOOL lpUsedDefaultChar
);
WINBASEAPI
BOOL
WINAPI
IsValidCodePage(
_In_ UINT CodePage);
WINBASEAPI
UINT
WINAPI
GetACP(void);
WINBASEAPI
UINT
WINAPI
GetOEMCP(void);
DEPRECATED("Use Unicode. The information in this structure cannot represent all encodings accuratedly and may be unreliable on many machines. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
GetCPInfo(
_In_ UINT CodePage,
_Out_ LPCPINFO lpCPInfo);
DEPRECATED("Use Unicode. The information in this structure cannot represent all encodings accurately and may be unreliable on many machines. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
GetCPInfoExA(
_In_ UINT CodePage,
_In_ DWORD dwFlags,
_Out_ LPCPINFOEXA lpCPInfoEx);
DEPRECATED("Use Unicode. The information in this structure cannot represent all encodings accurately and may be unreliable on many machines. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
GetCPInfoExW(
_In_ UINT CodePage,
_In_ DWORD dwFlags,
_Out_ LPCPINFOEXW lpCPInfoEx);
DEPRECATED("CompareStringEx is preferred. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
int
WINAPI
CompareStringA(
_In_ LCID Locale,
_In_ DWORD dwCmpFlags,
_In_reads_(cchCount1) PCNZCH lpString1,
_In_ int cchCount1,
_In_reads_(cchCount2) PCNZCH lpString2,
_In_ int cchCount2);
WINBASEAPI
int
WINAPI
FindNLSString(
_In_ LCID Locale,
_In_ DWORD dwFindNLSStringFlags,
_In_reads_(cchSource) LPCWSTR lpStringSource,
_In_ int cchSource,
_In_reads_(cchValue) LPCWSTR lpStringValue,
_In_ int cchValue,
_Out_opt_ LPINT pcchFound);
WINBASEAPI
int
WINAPI
LCMapStringW(
_In_ LCID Locale,
_In_ DWORD dwMapFlags,
_In_reads_(cchSrc) LPCWSTR lpSrcStr,
_In_ int cchSrc,
_Out_writes_opt_(_Inexpressible_(cchDest)) LPWSTR lpDestStr,
_In_ int cchDest);
WINBASEAPI
int
WINAPI
LCMapStringA(
_In_ LCID Locale,
_In_ DWORD dwMapFlags,
_In_reads_(cchSrc) LPCSTR lpSrcStr,
_In_ int cchSrc,
_Out_writes_opt_(_Inexpressible_(cchDest)) LPSTR lpDestStr,
_In_ int cchDest);
WINBASEAPI
int
WINAPI
GetLocaleInfoW(
_In_ LCID Locale,
_In_ LCTYPE LCType,
_Out_writes_opt_(cchData) LPWSTR lpLCData,
_In_ int cchData);
WINBASEAPI
int
WINAPI
GetLocaleInfoA(
_In_ LCID Locale,
_In_ LCTYPE LCType,
_Out_writes_opt_(cchData) LPSTR lpLCData,
_In_ int cchData
);
WINBASEAPI
BOOL
WINAPI
SetLocaleInfoA(
_In_ LCID Locale,
_In_ LCTYPE LCType,
_In_ LPCSTR lpLCData);
WINBASEAPI
BOOL
WINAPI
SetLocaleInfoW(
_In_ LCID Locale,
_In_ LCTYPE LCType,
_In_ LPCWSTR lpLCData);
WINBASEAPI
int
WINAPI
GetCalendarInfoA(
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType,
_Out_writes_opt_(cchData) LPSTR lpCalData,
_In_ int cchData,
_Out_opt_ LPDWORD lpValue);
WINBASEAPI
int
WINAPI
GetCalendarInfoW(
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType,
_Out_writes_opt_(cchData) LPWSTR lpCalData,
_In_ int cchData,
_Out_opt_ LPDWORD lpValue);
WINBASEAPI
BOOL
WINAPI
SetCalendarInfoA(
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType,
_In_ LPCSTR lpCalData);
WINBASEAPI
BOOL
WINAPI
SetCalendarInfoW(
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType,
_In_ LPCWSTR lpCalData);
WINBASEAPI
BOOL
WINAPI
LoadStringByReference(
_In_ DWORD Flags,
_In_opt_ PCWSTR Language,
_In_ PCWSTR SourceString,
_Out_writes_opt_(cchBuffer) PWSTR Buffer,
_In_ ULONG cchBuffer,
_In_opt_ PCWSTR Directory,
_Out_opt_ PULONG pcchBufferOut
);
DEPRECATED("Use Unicode. The information provided by this structure is inaccurate for some encodings and may be unreliable on many machines.")
WINBASEAPI
BOOL
WINAPI
IsDBCSLeadByte(
_In_ BYTE TestChar
);
DEPRECATED("Use Unicode. The information provided by this structure is inaccurate for some encodings and may be unreliable on many machines.")
WINBASEAPI
BOOL
WINAPI
IsDBCSLeadByteEx(
_In_ UINT CodePage,
_In_ BYTE TestChar
);
WINBASEAPI
LCID
WINAPI
LocaleNameToLCID(
_In_ LPCWSTR lpName,
_In_ DWORD dwFlags);
WINBASEAPI
int
WINAPI
LCIDToLocaleName(
_In_ LCID Locale,
_Out_writes_opt_(cchName) LPWSTR lpName,
_In_ int cchName,
_In_ DWORD dwFlags);
WINBASEAPI
int
WINAPI
GetDurationFormat(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_opt_ CONST SYSTEMTIME *lpDuration,
_In_ ULONGLONG ullDuration,
_In_opt_ LPCWSTR lpFormat,
_Out_writes_opt_(cchDuration) LPWSTR lpDurationStr,
_In_ int cchDuration);
WINBASEAPI
int
WINAPI
GetNumberFormatA(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_ LPCSTR lpValue,
_In_opt_ CONST NUMBERFMTA *lpFormat,
_Out_writes_opt_(cchNumber) LPSTR lpNumberStr,
_In_ int cchNumber);
WINBASEAPI
int
WINAPI
GetNumberFormatW(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_ LPCWSTR lpValue,
_In_opt_ CONST NUMBERFMTW *lpFormat,
_Out_writes_opt_(cchNumber) LPWSTR lpNumberStr,
_In_ int cchNumber);
WINBASEAPI
int
WINAPI
GetCurrencyFormatA(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_ LPCSTR lpValue,
_In_opt_ CONST CURRENCYFMTA *lpFormat,
_Out_writes_opt_(cchCurrency) LPSTR lpCurrencyStr,
_In_ int cchCurrency);
WINBASEAPI
int
WINAPI
GetCurrencyFormatW(
_In_ LCID Locale,
_In_ DWORD dwFlags,
_In_ LPCWSTR lpValue,
_In_opt_ CONST CURRENCYFMTW *lpFormat,
_Out_writes_opt_(cchCurrency) LPWSTR lpCurrencyStr,
_In_ int cchCurrency);
WINBASEAPI
BOOL
WINAPI
EnumCalendarInfoA(
_In_ CALINFO_ENUMPROCA lpCalInfoEnumProc,
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType);
WINBASEAPI
BOOL
WINAPI
EnumCalendarInfoW(
_In_ CALINFO_ENUMPROCW lpCalInfoEnumProc,
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType);
WINBASEAPI
BOOL
WINAPI
EnumCalendarInfoExA(
_In_ CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx,
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType);
WINBASEAPI
BOOL
WINAPI
EnumCalendarInfoExW(
_In_ CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx,
_In_ LCID Locale,
_In_ CALID Calendar,
_In_ CALTYPE CalType);
WINBASEAPI
BOOL
WINAPI
EnumTimeFormatsA(
_In_ TIMEFMT_ENUMPROCA lpTimeFmtEnumProc,
_In_ LCID Locale,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumTimeFormatsW(
_In_ TIMEFMT_ENUMPROCW lpTimeFmtEnumProc,
_In_ LCID Locale,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumDateFormatsA(
_In_ DATEFMT_ENUMPROCA lpDateFmtEnumProc,
_In_ LCID Locale,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumDateFormatsW(
_In_ DATEFMT_ENUMPROCW lpDateFmtEnumProc,
_In_ LCID Locale,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumDateFormatsExA(
_In_ DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx,
_In_ LCID Locale,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumDateFormatsExW(
_In_ DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx,
_In_ LCID Locale,
_In_ DWORD dwFlags);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
IsValidLanguageGroup(
_In_ LGRPID LanguageGroup,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
GetNLSVersion(
_In_ NLS_FUNCTION Function,
_In_ LCID Locale,
_Inout_ LPNLSVERSIONINFO lpVersionInformation);
WINBASEAPI
BOOL
WINAPI
IsValidLocale(
_In_ LCID Locale,
_In_ DWORD dwFlags);
DEPRECATED("The GeoID concept is obsolete. Use GetGeoInfoEx instead. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
int
WINAPI
GetGeoInfoA(
_In_ GEOID Location,
_In_ GEOTYPE GeoType,
_Out_writes_opt_(cchData) LPSTR lpGeoData,
_In_ int cchData,
_In_ LANGID LangId);
DEPRECATED("The GeoID concept is obsolete. Use GetGeoInfoEx instead. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
int
WINAPI
GetGeoInfoW(
_In_ GEOID Location,
_In_ GEOTYPE GeoType,
_Out_writes_opt_(cchData) LPWSTR lpGeoData,
_In_ int cchData,
_In_ LANGID LangId);
WINBASEAPI
int
WINAPI
GetGeoInfoEx(
_In_ PWSTR location,
_In_ GEOTYPE geoType,
_Out_writes_opt_(geoDataCount) PWSTR geoData,
_In_ int geoDataCount);
DEPRECATED("The GeoID concept is obsolete. Use EnumSystemGoNames instead. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
EnumSystemGeoID(
_In_ GEOCLASS GeoClass,
_In_ GEOID ParentGeoId,
_In_ GEO_ENUMPROC lpGeoEnumProc);
WINBASEAPI
BOOL
WINAPI
EnumSystemGeoNames(
_In_ GEOCLASS geoClass,
_In_ GEO_ENUMNAMEPROC geoEnumProc,
_In_opt_ LPARAM data);
DEPRECATED("The GeoID concept is obsolete. Use GetUserDefaultGeoName instead. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
GEOID
WINAPI
GetUserGeoID(
_In_ GEOCLASS GeoClass);
WINBASEAPI
int
WINAPI
GetUserDefaultGeoName(
_Out_writes_z_(geoNameCount) LPWSTR geoName,
_In_ int geoNameCount
);
DEPRECATED("The GeoID concept is obsolete. Use SetUserGeoName instead. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
SetUserGeoID(
_In_ GEOID GeoId);
WINBASEAPI
BOOL
WINAPI
SetUserGeoName(
_In_ PWSTR geoName);
WINBASEAPI
LCID
WINAPI
ConvertDefaultLocale(
_In_ LCID Locale);
WINBASEAPI
LANGID
WINAPI
GetSystemDefaultUILanguage(void);
WINBASEAPI
LCID
WINAPI
GetThreadLocale(void);
WINBASEAPI
BOOL
WINAPI
SetThreadLocale(
_In_ LCID Locale
);
WINBASEAPI
LANGID
WINAPI
GetUserDefaultUILanguage(void);
WINBASEAPI
LANGID
WINAPI
GetUserDefaultLangID(void);
WINBASEAPI
LANGID
WINAPI
GetSystemDefaultLangID(void);
WINBASEAPI
LCID
WINAPI
GetSystemDefaultLCID(void);
WINBASEAPI
LCID
WINAPI
GetUserDefaultLCID(void);
WINBASEAPI
LANGID
WINAPI
SetThreadUILanguage(_In_ LANGID LangId);
WINBASEAPI
LANGID
WINAPI
GetThreadUILanguage(void);
WINBASEAPI
BOOL
WINAPI
GetProcessPreferredUILanguages(
_In_ DWORD dwFlags,
_Out_ PULONG pulNumLanguages,
_Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
_Inout_ PULONG pcchLanguagesBuffer
);
WINBASEAPI
BOOL
WINAPI
SetProcessPreferredUILanguages(
_In_ DWORD dwFlags,
_In_opt_ PCZZWSTR pwszLanguagesBuffer,
_Out_opt_ PULONG pulNumLanguages
);
WINBASEAPI
BOOL
WINAPI
GetUserPreferredUILanguages (
_In_ DWORD dwFlags,
_Out_ PULONG pulNumLanguages,
_Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
_Inout_ PULONG pcchLanguagesBuffer
);
WINBASEAPI
BOOL
WINAPI
GetSystemPreferredUILanguages (
_In_ DWORD dwFlags,
_Out_ PULONG pulNumLanguages,
_Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
_Inout_ PULONG pcchLanguagesBuffer
);
WINBASEAPI
BOOL
WINAPI
GetThreadPreferredUILanguages(
_In_ DWORD dwFlags,
_Out_ PULONG pulNumLanguages,
_Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
_Inout_ PULONG pcchLanguagesBuffer
);
WINBASEAPI
BOOL
WINAPI
SetThreadPreferredUILanguages(
_In_ DWORD dwFlags,
_In_opt_ PCZZWSTR pwszLanguagesBuffer,
_Out_opt_ PULONG pulNumLanguages
);
WINBASEAPI
_Success_(return!=FALSE)
BOOL
WINAPI
GetFileMUIInfo(
DWORD dwFlags,
_In_ PCWSTR pcwszFilePath,
_Inout_updates_bytes_to_opt_(*pcbFileMUIInfo,*pcbFileMUIInfo) PFILEMUIINFO pFileMUIInfo,
_Inout_ DWORD* pcbFileMUIInfo);
WINBASEAPI
BOOL
WINAPI
GetFileMUIPath(
_In_ DWORD dwFlags,
_In_ PCWSTR pcwszFilePath ,
_Inout_updates_opt_ (*pcchLanguage) PWSTR pwszLanguage,
_Inout_ PULONG pcchLanguage,
_Out_writes_opt_ (*pcchFileMUIPath) PWSTR pwszFileMUIPath,
_Inout_ PULONG pcchFileMUIPath,
_Inout_ PULONGLONG pululEnumerator
);
WINBASEAPI
BOOL
WINAPI
GetUILanguageInfo(
_In_ DWORD dwFlags,
_In_ PCZZWSTR pwmszLanguage,
_Out_writes_opt_(*pcchFallbackLanguages) PZZWSTR pwszFallbackLanguages,
_Inout_opt_ PDWORD pcchFallbackLanguages,
_Out_ PDWORD pAttributes
);
DECLARE_HANDLE(HSAVEDUILANGUAGES);
WINBASEAPI
BOOL
WINAPI
SetThreadPreferredUILanguages2(
_In_ ULONG flags,
_In_opt_ PCZZWSTR languages,
_Out_opt_ PULONG numLanguagesSet,
_Out_opt_ HSAVEDUILANGUAGES* snapshot);
WINBASEAPI
void
WINAPI
RestoreThreadPreferredUILanguages(_In_ const HSAVEDUILANGUAGES snapshot);
WINBASEAPI
BOOL
WINAPI
NotifyUILanguageChange(
_In_ DWORD dwFlags,
_In_opt_ PCWSTR pcwstrNewLanguage,
_In_opt_ PCWSTR pcwstrPreviousLanguage,
_In_ DWORD dwReserved,
_Out_opt_ PDWORD pdwStatusRtrn
);
WINBASEAPI
BOOL
WINAPI
GetStringTypeExA(
_In_ LCID Locale,
_In_ DWORD dwInfoType,
_In_reads_(cchSrc) LPCSTR lpSrcStr,
_In_ int cchSrc,
_Out_writes_(cchSrc) LPWORD lpCharType);
WINBASEAPI
BOOL
WINAPI
GetStringTypeA(
_In_ LCID Locale,
_In_ DWORD dwInfoType,
_In_reads_(cchSrc) LPCSTR lpSrcStr,
_In_ int cchSrc,
_Out_ LPWORD lpCharType);
WINBASEAPI
int
WINAPI
FoldStringA(
_In_ DWORD dwMapFlags,
_In_reads_(cchSrc) LPCSTR lpSrcStr,
_In_ int cchSrc,
_Out_writes_opt_(cchDest) LPSTR lpDestStr,
_In_ int cchDest);
WINBASEAPI
BOOL
WINAPI
EnumSystemLocalesA(
_In_ LOCALE_ENUMPROCA lpLocaleEnumProc,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumSystemLocalesW(
_In_ LOCALE_ENUMPROCW lpLocaleEnumProc,
_In_ DWORD dwFlags);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
EnumSystemLanguageGroupsA(
_In_ LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc,
_In_ DWORD dwFlags,
_In_ LONG_PTR lParam);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
EnumSystemLanguageGroupsW(
_In_ LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc,
_In_ DWORD dwFlags,
_In_ LONG_PTR lParam);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
EnumLanguageGroupLocalesA(
_In_ LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc,
_In_ LGRPID LanguageGroup,
_In_ DWORD dwFlags,
_In_ LONG_PTR lParam);
DEPRECATED("The Language Group concept is obsolete and no longer supported. Set DISABLE_NLS_DEPRECATION to disable this warning.")
WINBASEAPI
BOOL
WINAPI
EnumLanguageGroupLocalesW(
_In_ LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc,
_In_ LGRPID LanguageGroup,
_In_ DWORD dwFlags,
_In_ LONG_PTR lParam);
WINBASEAPI
BOOL
WINAPI
EnumUILanguagesA(
_In_ UILANGUAGE_ENUMPROCA lpUILanguageEnumProc,
_In_ DWORD dwFlags,
_In_ LONG_PTR lParam);
WINBASEAPI
BOOL
WINAPI
EnumUILanguagesW(
_In_ UILANGUAGE_ENUMPROCW lpUILanguageEnumProc,
_In_ DWORD dwFlags,
_In_ LONG_PTR lParam);
WINBASEAPI
BOOL
WINAPI
EnumSystemCodePagesA(
_In_ CODEPAGE_ENUMPROCA lpCodePageEnumProc,
_In_ DWORD dwFlags);
WINBASEAPI
BOOL
WINAPI
EnumSystemCodePagesW(
_In_ CODEPAGE_ENUMPROCW lpCodePageEnumProc,
_In_ DWORD dwFlags);
WINNORMALIZEAPI
int
WINAPI IdnToAscii(_In_ DWORD dwFlags,
_In_reads_(cchUnicodeChar) LPCWSTR lpUnicodeCharStr,
_In_ int cchUnicodeChar,
_Out_writes_opt_(cchASCIIChar) LPWSTR lpASCIICharStr,
_In_ int cchASCIIChar);
WINNORMALIZEAPI
int
WINAPI IdnToUnicode(_In_ DWORD dwFlags,
_In_reads_(cchASCIIChar) LPCWSTR lpASCIICharStr,
_In_ int cchASCIIChar,
_Out_writes_opt_(cchUnicodeChar) LPWSTR lpUnicodeCharStr,
_In_ int cchUnicodeChar);
WINNORMALIZEAPI
int
WINAPI IdnToNameprepUnicode(_In_ DWORD dwFlags,
_In_reads_(cchUnicodeChar) LPCWSTR lpUnicodeCharStr,
_In_ int cchUnicodeChar,
_Out_writes_opt_(cchNameprepChar) LPWSTR lpNameprepCharStr,
_In_ int cchNameprepChar);
WINNORMALIZEAPI
int
WINAPI NormalizeString( _In_ NORM_FORM NormForm,
_In_reads_(cwSrcLength) LPCWSTR lpSrcString,
_In_ int cwSrcLength,
_Out_writes_opt_(cwDstLength) LPWSTR lpDstString,
_In_ int cwDstLength );
WINNORMALIZEAPI
BOOL
WINAPI IsNormalizedString( _In_ NORM_FORM NormForm,
_In_reads_(cwLength) LPCWSTR lpString,
_In_ int cwLength );
WINBASEAPI
BOOL
WINAPI VerifyScripts(
_In_ DWORD dwFlags,
_In_ LPCWSTR lpLocaleScripts,
_In_ int cchLocaleScripts,
_In_ LPCWSTR lpTestScripts,
_In_ int cchTestScripts);
WINBASEAPI
int
WINAPI GetStringScripts(
_In_ DWORD dwFlags,
_In_ LPCWSTR lpString,
_In_ int cchString,
_Out_writes_opt_(cchScripts) LPWSTR lpScripts,
_In_ int cchScripts);
WINBASEAPI
int
WINAPI
GetLocaleInfoEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ LCTYPE LCType,
_Out_writes_to_opt_(cchData, return) LPWSTR lpLCData,
_In_ int cchData
);
WINBASEAPI
int
WINAPI
GetCalendarInfoEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ CALID Calendar,
_In_opt_ LPCWSTR lpReserved,
_In_ CALTYPE CalType,
_Out_writes_opt_(cchData) LPWSTR lpCalData,
_In_ int cchData,
_Out_opt_ LPDWORD lpValue
);
WINBASEAPI
int
WINAPI
GetNumberFormatEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_ LPCWSTR lpValue,
_In_opt_ CONST NUMBERFMTW *lpFormat,
_Out_writes_opt_(cchNumber) LPWSTR lpNumberStr,
_In_ int cchNumber
);
WINBASEAPI
int
WINAPI
GetCurrencyFormatEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_ LPCWSTR lpValue,
_In_opt_ CONST CURRENCYFMTW *lpFormat,
_Out_writes_opt_(cchCurrency) LPWSTR lpCurrencyStr,
_In_ int cchCurrency
);
WINBASEAPI
int
WINAPI
GetUserDefaultLocaleName(
_Out_writes_(cchLocaleName) LPWSTR lpLocaleName,
_In_ int cchLocaleName
);
WINBASEAPI
int
WINAPI
GetSystemDefaultLocaleName(
_Out_writes_(cchLocaleName) LPWSTR lpLocaleName,
_In_ int cchLocaleName
);
WINBASEAPI
BOOL
WINAPI
IsNLSDefinedString(
_In_ NLS_FUNCTION Function,
_In_ DWORD dwFlags,
_In_ LPNLSVERSIONINFO lpVersionInformation,
_In_reads_(cchStr) LPCWSTR lpString,
_In_ INT cchStr);
WINBASEAPI
BOOL
WINAPI
GetNLSVersionEx(
_In_ NLS_FUNCTION function,
_In_opt_ LPCWSTR lpLocaleName,
_Inout_ LPNLSVERSIONINFOEX lpVersionInformation
);
WINBASEAPI
DWORD
WINAPI
IsValidNLSVersion(
_In_ NLS_FUNCTION function,
_In_opt_ LPCWSTR lpLocaleName,
_In_ LPNLSVERSIONINFOEX lpVersionInformation
);
WINBASEAPI
int
WINAPI
FindNLSStringEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFindNLSStringFlags,
_In_reads_(cchSource) LPCWSTR lpStringSource,
_In_ int cchSource,
_In_reads_(cchValue) LPCWSTR lpStringValue,
_In_ int cchValue,
_Out_opt_ LPINT pcchFound,
_In_opt_ LPNLSVERSIONINFO lpVersionInformation,
_In_opt_ LPVOID lpReserved,
_In_opt_ LPARAM sortHandle
);
_When_((dwMapFlags & (LCMAP_SORTKEY | LCMAP_BYTEREV | LCMAP_HASH | LCMAP_SORTHANDLE)) != 0, _At_((LPBYTE) lpDestStr, _Out_writes_bytes_opt_(cchDest)))
_When_(cchSrc != -1, _At_((WCHAR *) lpSrcStr, _Out_writes_opt_(cchSrc)))
_When_(cchDest != -1, _At_((WCHAR *) lpDestStr, _Out_writes_opt_(cchDest)))
WINBASEAPI
int
WINAPI
LCMapStringEx(
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwMapFlags,
_In_reads_(cchSrc) LPCWSTR lpSrcStr,
_In_ int cchSrc,
_Out_writes_opt_(cchDest) LPWSTR lpDestStr,
_In_ int cchDest,
_In_opt_ LPNLSVERSIONINFO lpVersionInformation,
_In_opt_ LPVOID lpReserved,
_In_opt_ LPARAM sortHandle
);
WINBASEAPI
BOOL
WINAPI
IsValidLocaleName(
_In_ LPCWSTR lpLocaleName
);
typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXEX)(LPWSTR, CALID, LPWSTR, LPARAM);
WINBASEAPI
BOOL
WINAPI
EnumCalendarInfoExEx(
_In_ CALINFO_ENUMPROCEXEX pCalInfoEnumProcExEx,
_In_opt_ LPCWSTR lpLocaleName,
_In_ CALID Calendar,
_In_opt_ LPCWSTR lpReserved,
_In_ CALTYPE CalType,
_In_ LPARAM lParam
);
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXEX)(LPWSTR, CALID, LPARAM);
WINBASEAPI
BOOL
WINAPI
EnumDateFormatsExEx(
_In_ DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx,
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_ LPARAM lParam
);
typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCEX)(LPWSTR, LPARAM);
WINBASEAPI
BOOL
WINAPI
EnumTimeFormatsEx(
_In_ TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx,
_In_opt_ LPCWSTR lpLocaleName,
_In_ DWORD dwFlags,
_In_ LPARAM lParam
);
typedef BOOL (CALLBACK* LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM);
WINBASEAPI
BOOL
WINAPI
EnumSystemLocalesEx(
_In_ LOCALE_ENUMPROCEX lpLocaleEnumProcEx,
_In_ DWORD dwFlags,
_In_ LPARAM lParam,
_In_opt_ LPVOID lpReserved
);
WINBASEAPI
int
WINAPI
ResolveLocaleName(
_In_opt_ LPCWSTR lpNameToResolve,
_Out_writes_opt_(cchLocaleName) LPWSTR lpLocaleName,
_In_ int cchLocaleName
);
typedef struct _COORD {
SHORT X;
SHORT Y;
} COORD, *PCOORD;
typedef struct _SMALL_RECT {
SHORT Left;
SHORT Top;
SHORT Right;
SHORT Bottom;
} SMALL_RECT, *PSMALL_RECT;
typedef struct _KEY_EVENT_RECORD {
BOOL bKeyDown;
WORD wRepeatCount;
WORD wVirtualKeyCode;
WORD wVirtualScanCode;
union {
WCHAR UnicodeChar;
CHAR AsciiChar;
} uChar;
DWORD dwControlKeyState;
} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
typedef struct _MOUSE_EVENT_RECORD {
COORD dwMousePosition;
DWORD dwButtonState;
DWORD dwControlKeyState;
DWORD dwEventFlags;
} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
typedef struct _WINDOW_BUFFER_SIZE_RECORD {
COORD dwSize;
} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
typedef struct _MENU_EVENT_RECORD {
UINT dwCommandId;
} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
typedef struct _FOCUS_EVENT_RECORD {
BOOL bSetFocus;
} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
typedef struct _INPUT_RECORD {
WORD EventType;
union {
KEY_EVENT_RECORD KeyEvent;
MOUSE_EVENT_RECORD MouseEvent;
WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
} Event;
} INPUT_RECORD, *PINPUT_RECORD;
typedef struct _CHAR_INFO {
union {
WCHAR UnicodeChar;
CHAR AsciiChar;
} Char;
WORD Attributes;
} CHAR_INFO, *PCHAR_INFO;
typedef struct _CONSOLE_FONT_INFO {
DWORD nFont;
COORD dwFontSize;
} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
typedef VOID* HPCON;
WINBASEAPI
BOOL
WINAPI
AllocConsole(
VOID
);
WINBASEAPI
BOOL
WINAPI
FreeConsole(
VOID
);
WINBASEAPI
BOOL
WINAPI
AttachConsole(
_In_ DWORD dwProcessId
);
WINBASEAPI
UINT
WINAPI
GetConsoleCP(
VOID
);
WINBASEAPI
UINT
WINAPI
GetConsoleOutputCP(
VOID
);
WINBASEAPI
BOOL
WINAPI
GetConsoleMode(
_In_ HANDLE hConsoleHandle,
_Out_ LPDWORD lpMode
);
WINBASEAPI
BOOL
WINAPI
SetConsoleMode(
_In_ HANDLE hConsoleHandle,
_In_ DWORD dwMode
);
WINBASEAPI
BOOL
WINAPI
GetNumberOfConsoleInputEvents(
_In_ HANDLE hConsoleInput,
_Out_ LPDWORD lpNumberOfEvents
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
ReadConsoleInputA(
_In_ HANDLE hConsoleInput,
_Out_writes_to_(nLength, *lpNumberOfEventsRead) PINPUT_RECORD lpBuffer,
_In_ DWORD nLength,
_Out_ _Deref_out_range_(<=, nLength) LPDWORD lpNumberOfEventsRead
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
ReadConsoleInputW(
_In_ HANDLE hConsoleInput,
_Out_writes_to_(nLength, *lpNumberOfEventsRead) PINPUT_RECORD lpBuffer,
_In_ DWORD nLength,
_Out_ _Deref_out_range_(<=, nLength) LPDWORD lpNumberOfEventsRead
);
WINBASEAPI
BOOL
WINAPI
PeekConsoleInputA(
_In_ HANDLE hConsoleInput,
_Out_writes_(nLength) PINPUT_RECORD lpBuffer,
_In_ DWORD nLength,
_Out_ LPDWORD lpNumberOfEventsRead
);
WINBASEAPI
BOOL
WINAPI
PeekConsoleInputW(
_In_ HANDLE hConsoleInput,
_Out_writes_(nLength) PINPUT_RECORD lpBuffer,
_In_ DWORD nLength,
_Out_ LPDWORD lpNumberOfEventsRead
);
typedef struct _CONSOLE_READCONSOLE_CONTROL {
ULONG nLength;
ULONG nInitialChars;
ULONG dwCtrlWakeupMask;
ULONG dwControlKeyState;
} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
ReadConsoleA(
_In_ HANDLE hConsoleInput,
_Out_writes_bytes_to_(nNumberOfCharsToRead * sizeof(CHAR), *lpNumberOfCharsRead * sizeof(TCHAR%)) LPVOID lpBuffer,
_In_ DWORD nNumberOfCharsToRead,
_Out_ _Deref_out_range_(<=, nNumberOfCharsToRead) LPDWORD lpNumberOfCharsRead,
_In_opt_ PCONSOLE_READCONSOLE_CONTROL pInputControl
);
WINBASEAPI
_Success_(return != FALSE)
BOOL
WINAPI
ReadConsoleW(
_In_ HANDLE hConsoleInput,
_Out_writes_bytes_to_(nNumberOfCharsToRead * sizeof(WCHAR), *lpNumberOfCharsRead * sizeof(TCHAR%)) LPVOID lpBuffer,
_In_ DWORD nNumberOfCharsToRead,
_Out_ _Deref_out_range_(<=, nNumberOfCharsToRead) LPDWORD lpNumberOfCharsRead,
_In_opt_ PCONSOLE_READCONSOLE_CONTROL pInputControl
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleA(
_In_ HANDLE hConsoleOutput,
_In_reads_(nNumberOfCharsToWrite) CONST VOID* lpBuffer,
_In_ DWORD nNumberOfCharsToWrite,
_Out_opt_ LPDWORD lpNumberOfCharsWritten,
_Reserved_ LPVOID lpReserved
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleW(
_In_ HANDLE hConsoleOutput,
_In_reads_(nNumberOfCharsToWrite) CONST VOID* lpBuffer,
_In_ DWORD nNumberOfCharsToWrite,
_Out_opt_ LPDWORD lpNumberOfCharsWritten,
_Reserved_ LPVOID lpReserved
);
typedef
BOOL
(WINAPI *PHANDLER_ROUTINE)(
_In_ DWORD CtrlType
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCtrlHandler(
_In_opt_ PHANDLER_ROUTINE HandlerRoutine,
_In_ BOOL Add
);
WINBASEAPI
HRESULT
WINAPI
CreatePseudoConsole(
_In_ COORD size,
_In_ HANDLE hInput,
_In_ HANDLE hOutput,
_In_ DWORD dwFlags,
_Out_ HPCON* phPC
);
WINBASEAPI
HRESULT
WINAPI
ResizePseudoConsole(
_In_ HPCON hPC,
_In_ COORD size
);
WINBASEAPI
VOID
WINAPI
ClosePseudoConsole(
_In_ HPCON hPC
);
WINBASEAPI
BOOL
WINAPI
FillConsoleOutputCharacterA(
_In_ HANDLE hConsoleOutput,
_In_ CHAR cCharacter,
_In_ DWORD nLength,
_In_ COORD dwWriteCoord,
_Out_ LPDWORD lpNumberOfCharsWritten
);
WINBASEAPI
BOOL
WINAPI
FillConsoleOutputCharacterW(
_In_ HANDLE hConsoleOutput,
_In_ WCHAR cCharacter,
_In_ DWORD nLength,
_In_ COORD dwWriteCoord,
_Out_ LPDWORD lpNumberOfCharsWritten
);
WINBASEAPI
BOOL
WINAPI
FillConsoleOutputAttribute(
_In_ HANDLE hConsoleOutput,
_In_ WORD wAttribute,
_In_ DWORD nLength,
_In_ COORD dwWriteCoord,
_Out_ LPDWORD lpNumberOfAttrsWritten
);
WINBASEAPI
BOOL
WINAPI
GenerateConsoleCtrlEvent(
_In_ DWORD dwCtrlEvent,
_In_ DWORD dwProcessGroupId
);
WINBASEAPI
HANDLE
WINAPI
CreateConsoleScreenBuffer(
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ CONST SECURITY_ATTRIBUTES* lpSecurityAttributes,
_In_ DWORD dwFlags,
_Reserved_ LPVOID lpScreenBufferData
);
WINBASEAPI
BOOL
WINAPI
SetConsoleActiveScreenBuffer(
_In_ HANDLE hConsoleOutput
);
WINBASEAPI
BOOL
WINAPI
FlushConsoleInputBuffer(
_In_ HANDLE hConsoleInput
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCP(
_In_ UINT wCodePageID
);
WINBASEAPI
BOOL
WINAPI
SetConsoleOutputCP(
_In_ UINT wCodePageID
);
typedef struct _CONSOLE_CURSOR_INFO {
DWORD dwSize;
BOOL bVisible;
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
WINBASEAPI
BOOL
WINAPI
GetConsoleCursorInfo(
_In_ HANDLE hConsoleOutput,
_Out_ PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCursorInfo(
_In_ HANDLE hConsoleOutput,
_In_ CONST CONSOLE_CURSOR_INFO* lpConsoleCursorInfo
);
typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
COORD dwSize;
COORD dwCursorPosition;
WORD wAttributes;
SMALL_RECT srWindow;
COORD dwMaximumWindowSize;
} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
WINBASEAPI
BOOL
WINAPI
GetConsoleScreenBufferInfo(
_In_ HANDLE hConsoleOutput,
_Out_ PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);
typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
ULONG cbSize;
COORD dwSize;
COORD dwCursorPosition;
WORD wAttributes;
SMALL_RECT srWindow;
COORD dwMaximumWindowSize;
WORD wPopupAttributes;
BOOL bFullscreenSupported;
COLORREF ColorTable[16];
} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
WINBASEAPI
BOOL
WINAPI
GetConsoleScreenBufferInfoEx(
_In_ HANDLE hConsoleOutput,
_Inout_ PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
);
WINBASEAPI
BOOL
WINAPI
SetConsoleScreenBufferInfoEx(
_In_ HANDLE hConsoleOutput,
_In_ PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
);
WINBASEAPI
BOOL
WINAPI
SetConsoleScreenBufferSize(
_In_ HANDLE hConsoleOutput,
_In_ COORD dwSize
);
WINBASEAPI
BOOL
WINAPI
SetConsoleCursorPosition(
_In_ HANDLE hConsoleOutput,
_In_ COORD dwCursorPosition
);
WINBASEAPI
COORD
WINAPI
GetLargestConsoleWindowSize(
_In_ HANDLE hConsoleOutput
);
WINBASEAPI
BOOL
WINAPI
SetConsoleTextAttribute(
_In_ HANDLE hConsoleOutput,
_In_ WORD wAttributes
);
WINBASEAPI
BOOL
WINAPI
SetConsoleWindowInfo(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bAbsolute,
_In_ CONST SMALL_RECT* lpConsoleWindow
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputCharacterA(
_In_ HANDLE hConsoleOutput,
_In_reads_(nLength) LPCSTR lpCharacter,
_In_ DWORD nLength,
_In_ COORD dwWriteCoord,
_Out_ LPDWORD lpNumberOfCharsWritten
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputCharacterW(
_In_ HANDLE hConsoleOutput,
_In_reads_(nLength) LPCWSTR lpCharacter,
_In_ DWORD nLength,
_In_ COORD dwWriteCoord,
_Out_ LPDWORD lpNumberOfCharsWritten
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputAttribute(
_In_ HANDLE hConsoleOutput,
_In_reads_(nLength) CONST WORD* lpAttribute,
_In_ DWORD nLength,
_In_ COORD dwWriteCoord,
_Out_ LPDWORD lpNumberOfAttrsWritten
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputCharacterA(
_In_ HANDLE hConsoleOutput,
_Out_writes_(nLength) LPSTR lpCharacter,
_In_ DWORD nLength,
_In_ COORD dwReadCoord,
_Out_ LPDWORD lpNumberOfCharsRead
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputCharacterW(
_In_ HANDLE hConsoleOutput,
_Out_writes_(nLength) LPWSTR lpCharacter,
_In_ DWORD nLength,
_In_ COORD dwReadCoord,
_Out_ LPDWORD lpNumberOfCharsRead
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputAttribute(
_In_ HANDLE hConsoleOutput,
_Out_writes_(nLength) LPWORD lpAttribute,
_In_ DWORD nLength,
_In_ COORD dwReadCoord,
_Out_ LPDWORD lpNumberOfAttrsRead
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleInputA(
_In_ HANDLE hConsoleInput,
_In_reads_(nLength) CONST INPUT_RECORD* lpBuffer,
_In_ DWORD nLength,
_Out_ LPDWORD lpNumberOfEventsWritten
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleInputW(
_In_ HANDLE hConsoleInput,
_In_reads_(nLength) CONST INPUT_RECORD* lpBuffer,
_In_ DWORD nLength,
_Out_ LPDWORD lpNumberOfEventsWritten
);
WINBASEAPI
BOOL
WINAPI
ScrollConsoleScreenBufferA(
_In_ HANDLE hConsoleOutput,
_In_ CONST SMALL_RECT* lpScrollRectangle,
_In_opt_ CONST SMALL_RECT* lpClipRectangle,
_In_ COORD dwDestinationOrigin,
_In_ CONST CHAR_INFO* lpFill
);
WINBASEAPI
BOOL
WINAPI
ScrollConsoleScreenBufferW(
_In_ HANDLE hConsoleOutput,
_In_ CONST SMALL_RECT* lpScrollRectangle,
_In_opt_ CONST SMALL_RECT* lpClipRectangle,
_In_ COORD dwDestinationOrigin,
_In_ CONST CHAR_INFO* lpFill
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputA(
_In_ HANDLE hConsoleOutput,
_In_reads_(dwBufferSize.X * dwBufferSize.Y) CONST CHAR_INFO* lpBuffer,
_In_ COORD dwBufferSize,
_In_ COORD dwBufferCoord,
_Inout_ PSMALL_RECT lpWriteRegion
);
WINBASEAPI
BOOL
WINAPI
WriteConsoleOutputW(
_In_ HANDLE hConsoleOutput,
_In_reads_(dwBufferSize.X * dwBufferSize.Y) CONST CHAR_INFO* lpBuffer,
_In_ COORD dwBufferSize,
_In_ COORD dwBufferCoord,
_Inout_ PSMALL_RECT lpWriteRegion
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputA(
_In_ HANDLE hConsoleOutput,
_Out_writes_(dwBufferSize.X * dwBufferSize.Y) PCHAR_INFO lpBuffer,
_In_ COORD dwBufferSize,
_In_ COORD dwBufferCoord,
_Inout_ PSMALL_RECT lpReadRegion
);
WINBASEAPI
BOOL
WINAPI
ReadConsoleOutputW(
_In_ HANDLE hConsoleOutput,
_Out_writes_(dwBufferSize.X * dwBufferSize.Y) PCHAR_INFO lpBuffer,
_In_ COORD dwBufferSize,
_In_ COORD dwBufferCoord,
_Inout_ PSMALL_RECT lpReadRegion
);
WINBASEAPI
DWORD
WINAPI
GetConsoleTitleA(
_Out_writes_(nSize) LPSTR lpConsoleTitle,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetConsoleTitleW(
_Out_writes_(nSize) LPWSTR lpConsoleTitle,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetConsoleOriginalTitleA(
_Out_writes_(nSize) LPSTR lpConsoleTitle,
_In_ DWORD nSize
);
WINBASEAPI
DWORD
WINAPI
GetConsoleOriginalTitleW(
_Out_writes_(nSize) LPWSTR lpConsoleTitle,
_In_ DWORD nSize
);
WINBASEAPI
BOOL
WINAPI
SetConsoleTitleA(
_In_ LPCSTR lpConsoleTitle
);
WINBASEAPI
BOOL
WINAPI
SetConsoleTitleW(
_In_ LPCWSTR lpConsoleTitle
);
WINBASEAPI
BOOL
WINAPI
GetNumberOfConsoleMouseButtons(
_Out_ LPDWORD lpNumberOfMouseButtons
);
WINBASEAPI
COORD
WINAPI
GetConsoleFontSize(
_In_ HANDLE hConsoleOutput,
_In_ DWORD nFont
);
WINBASEAPI
BOOL
WINAPI
GetCurrentConsoleFont(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bMaximumWindow,
_Out_ PCONSOLE_FONT_INFO lpConsoleCurrentFont
);
typedef struct _CONSOLE_FONT_INFOEX {
ULONG cbSize;
DWORD nFont;
COORD dwFontSize;
UINT FontFamily;
UINT FontWeight;
WCHAR FaceName[LF_FACESIZE];
} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
WINBASEAPI
BOOL
WINAPI
GetCurrentConsoleFontEx(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bMaximumWindow,
_Out_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
);
WINBASEAPI
BOOL
WINAPI
SetCurrentConsoleFontEx(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bMaximumWindow,
_In_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
);
typedef struct _CONSOLE_SELECTION_INFO {
DWORD dwFlags;
COORD dwSelectionAnchor;
SMALL_RECT srSelection;
} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
WINBASEAPI
BOOL
WINAPI
GetConsoleSelectionInfo(
_Out_ PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo
);
typedef struct _CONSOLE_HISTORY_INFO {
UINT cbSize;
UINT HistoryBufferSize;
UINT NumberOfHistoryBuffers;
DWORD dwFlags;
} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
WINBASEAPI
BOOL
WINAPI
GetConsoleHistoryInfo(
_Out_ PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
);
WINBASEAPI
BOOL
WINAPI
SetConsoleHistoryInfo(
_In_ PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
);
WINBASEAPI
BOOL
APIENTRY
GetConsoleDisplayMode(
_Out_ LPDWORD lpModeFlags
);
WINBASEAPI
BOOL
APIENTRY
SetConsoleDisplayMode(
_In_ HANDLE hConsoleOutput,
_In_ DWORD dwFlags,
_Out_opt_ PCOORD lpNewScreenBufferDimensions
);
WINBASEAPI
HWND
APIENTRY
GetConsoleWindow(
VOID
);
WINBASEAPI
BOOL
APIENTRY
AddConsoleAliasA(
_In_ LPSTR Source,
_In_ LPSTR Target,
_In_ LPSTR ExeName
);
WINBASEAPI
BOOL
APIENTRY
AddConsoleAliasW(
_In_ LPWSTR Source,
_In_ LPWSTR Target,
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasA(
_In_ LPSTR Source,
_Out_writes_(TargetBufferLength) LPSTR TargetBuffer,
_In_ DWORD TargetBufferLength,
_In_ LPSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasW(
_In_ LPWSTR Source,
_Out_writes_(TargetBufferLength) LPWSTR TargetBuffer,
_In_ DWORD TargetBufferLength,
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasesLengthA(
_In_ LPSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasesLengthW(
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasExesLengthA(
VOID
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasExesLengthW(
VOID
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasesA(
_Out_writes_(AliasBufferLength) LPSTR AliasBuffer,
_In_ DWORD AliasBufferLength,
_In_ LPSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasesW(
_Out_writes_(AliasBufferLength) LPWSTR AliasBuffer,
_In_ DWORD AliasBufferLength,
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasExesA(
_Out_writes_(ExeNameBufferLength) LPSTR ExeNameBuffer,
_In_ DWORD ExeNameBufferLength
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleAliasExesW(
_Out_writes_(ExeNameBufferLength) LPWSTR ExeNameBuffer,
_In_ DWORD ExeNameBufferLength
);
WINBASEAPI
VOID
APIENTRY
ExpungeConsoleCommandHistoryA(
_In_ LPSTR ExeName
);
WINBASEAPI
VOID
APIENTRY
ExpungeConsoleCommandHistoryW(
_In_ LPWSTR ExeName
);
WINBASEAPI
BOOL
APIENTRY
SetConsoleNumberOfCommandsA(
_In_ DWORD Number,
_In_ LPSTR ExeName
);
WINBASEAPI
BOOL
APIENTRY
SetConsoleNumberOfCommandsW(
_In_ DWORD Number,
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleCommandHistoryLengthA(
_In_ LPSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleCommandHistoryLengthW(
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleCommandHistoryA(
_Out_writes_bytes_(CommandBufferLength) LPSTR Commands,
_In_ DWORD CommandBufferLength,
_In_ LPSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleCommandHistoryW(
_Out_writes_bytes_(CommandBufferLength) LPWSTR Commands,
_In_ DWORD CommandBufferLength,
_In_ LPWSTR ExeName
);
WINBASEAPI
DWORD
APIENTRY
GetConsoleProcessList(
_Out_writes_(dwProcessCount) LPDWORD lpdwProcessList,
_In_ DWORD dwProcessCount
);
typedef struct tagVS_FIXEDFILEINFO
{
DWORD dwSignature;
DWORD dwStrucVersion;
DWORD dwFileVersionMS;
DWORD dwFileVersionLS;
DWORD dwProductVersionMS;
DWORD dwProductVersionLS;
DWORD dwFileFlagsMask;
DWORD dwFileFlags;
DWORD dwFileOS;
DWORD dwFileType;
DWORD dwFileSubtype;
DWORD dwFileDateMS;
DWORD dwFileDateLS;
} VS_FIXEDFILEINFO;
DWORD
APIENTRY
VerFindFileA(
_In_ DWORD uFlags,
_In_ LPCSTR szFileName,
_In_opt_ LPCSTR szWinDir,
_In_ LPCSTR szAppDir,
_Out_writes_(*puCurDirLen) LPSTR szCurDir,
_Inout_ PUINT puCurDirLen,
_Out_writes_(*puDestDirLen) LPSTR szDestDir,
_Inout_ PUINT puDestDirLen
);
DWORD
APIENTRY
VerFindFileW(
_In_ DWORD uFlags,
_In_ LPCWSTR szFileName,
_In_opt_ LPCWSTR szWinDir,
_In_ LPCWSTR szAppDir,
_Out_writes_(*puCurDirLen) LPWSTR szCurDir,
_Inout_ PUINT puCurDirLen,
_Out_writes_(*puDestDirLen) LPWSTR szDestDir,
_Inout_ PUINT puDestDirLen
);
DWORD
APIENTRY
VerInstallFileA(
_In_ DWORD uFlags,
_In_ LPCSTR szSrcFileName,
_In_ LPCSTR szDestFileName,
_In_ LPCSTR szSrcDir,
_In_ LPCSTR szDestDir,
_In_ LPCSTR szCurDir,
_Out_writes_(*puTmpFileLen) LPSTR szTmpFile,
_Inout_ PUINT puTmpFileLen
);
DWORD
APIENTRY
VerInstallFileW(
_In_ DWORD uFlags,
_In_ LPCWSTR szSrcFileName,
_In_ LPCWSTR szDestFileName,
_In_ LPCWSTR szSrcDir,
_In_ LPCWSTR szDestDir,
_In_ LPCWSTR szCurDir,
_Out_writes_(*puTmpFileLen) LPWSTR szTmpFile,
_Inout_ PUINT puTmpFileLen
);
DWORD
APIENTRY
GetFileVersionInfoSizeA(
_In_ LPCSTR lptstrFilename,
_Out_opt_ LPDWORD lpdwHandle
);
DWORD
APIENTRY
GetFileVersionInfoSizeW(
_In_ LPCWSTR lptstrFilename,
_Out_opt_ LPDWORD lpdwHandle
);
BOOL
APIENTRY
GetFileVersionInfoA(
_In_ LPCSTR lptstrFilename,
_Reserved_ DWORD dwHandle,
_In_ DWORD dwLen,
_Out_writes_bytes_(dwLen) LPVOID lpData
);
BOOL
APIENTRY
GetFileVersionInfoW(
_In_ LPCWSTR lptstrFilename,
_Reserved_ DWORD dwHandle,
_In_ DWORD dwLen,
_Out_writes_bytes_(dwLen) LPVOID lpData
);
DWORD APIENTRY GetFileVersionInfoSizeExA(_In_ DWORD dwFlags, _In_ LPCSTR lpwstrFilename, _Out_ LPDWORD lpdwHandle);
DWORD APIENTRY GetFileVersionInfoSizeExW(_In_ DWORD dwFlags, _In_ LPCWSTR lpwstrFilename, _Out_ LPDWORD lpdwHandle);
BOOL APIENTRY GetFileVersionInfoExA(_In_ DWORD dwFlags,
_In_ LPCSTR lpwstrFilename,
_Reserved_ DWORD dwHandle,
_In_ DWORD dwLen,
_Out_writes_bytes_(dwLen) LPVOID lpData);
BOOL APIENTRY GetFileVersionInfoExW(_In_ DWORD dwFlags,
_In_ LPCWSTR lpwstrFilename,
_Reserved_ DWORD dwHandle,
_In_ DWORD dwLen,
_Out_writes_bytes_(dwLen) LPVOID lpData);
DWORD
APIENTRY
VerLanguageNameA(
_In_ DWORD wLang,
_Out_writes_(cchLang) LPSTR szLang,
_In_ DWORD cchLang
);
DWORD
APIENTRY
VerLanguageNameW(
_In_ DWORD wLang,
_Out_writes_(cchLang) LPWSTR szLang,
_In_ DWORD cchLang
);
BOOL
APIENTRY
VerQueryValueA(
_In_ LPCVOID pBlock,
_In_ LPCSTR lpSubBlock,
_Outptr_result_buffer_(_Inexpressible_("buffer can be PWSTR or DWORD*")) LPVOID * lplpBuffer,
_Out_ PUINT puLen
);
BOOL
APIENTRY
VerQueryValueW(
_In_ LPCVOID pBlock,
_In_ LPCWSTR lpSubBlock,
_Outptr_result_buffer_(_Inexpressible_("buffer can be PWSTR or DWORD*")) LPVOID * lplpBuffer,
_Out_ PUINT puLen
);
typedef _Return_type_success_(return==ERROR_SUCCESS) LONG LSTATUS;
typedef ACCESS_MASK REGSAM;
struct val_context {
int valuelen;
LPVOID value_context;
LPVOID val_buff_ptr;
};
typedef struct val_context FAR *PVALCONTEXT;
typedef struct pvalueA {
LPSTR pv_valuename;
int pv_valuelen;
LPVOID pv_value_context;
DWORD pv_type;
}PVALUEA, FAR *PPVALUEA;
typedef struct pvalueW {
LPWSTR pv_valuename;
int pv_valuelen;
LPVOID pv_value_context;
DWORD pv_type;
}PVALUEW, FAR *PPVALUEW;
typedef PVALUEA PVALUE;
typedef PPVALUEA PPVALUE;
typedef
DWORD __cdecl
QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals,
LPVOID outputbuffer, DWORD FAR *total_outlen, DWORD input_blen);
typedef QUERYHANDLER FAR *PQUERYHANDLER;
typedef struct provider_info {
PQUERYHANDLER pi_R0_1val;
PQUERYHANDLER pi_R0_allvals;
PQUERYHANDLER pi_R3_1val;
PQUERYHANDLER pi_R3_allvals;
DWORD pi_flags;
LPVOID pi_key_context;
}REG_PROVIDER;
typedef struct provider_info FAR *PPROVIDER;
typedef struct value_entA {
LPSTR ve_valuename;
DWORD ve_valuelen;
DWORD_PTR ve_valueptr;
DWORD ve_type;
}VALENTA, FAR *PVALENTA;
typedef struct value_entW {
LPWSTR ve_valuename;
DWORD ve_valuelen;
DWORD_PTR ve_valueptr;
DWORD ve_type;
}VALENTW, FAR *PVALENTW;
typedef VALENTA VALENT;
typedef PVALENTA PVALENT;
WINADVAPI
LSTATUS
APIENTRY
RegCloseKey(
_In_ HKEY hKey
);
WINADVAPI
LSTATUS
APIENTRY
RegOverridePredefKey (
_In_ HKEY hKey,
_In_opt_ HKEY hNewHKey
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenUserClassesRoot(
_In_ HANDLE hToken,
_Reserved_ DWORD dwOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenCurrentUser(
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegDisablePredefinedCache(
VOID
);
WINADVAPI
LSTATUS
APIENTRY
RegDisablePredefinedCacheEx(
VOID
);
WINADVAPI
LSTATUS
APIENTRY
RegConnectRegistryA (
_In_opt_ LPCSTR lpMachineName,
_In_ HKEY hKey,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegConnectRegistryW (
_In_opt_ LPCWSTR lpMachineName,
_In_ HKEY hKey,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegConnectRegistryExA (
_In_opt_ LPCSTR lpMachineName,
_In_ HKEY hKey,
_In_ ULONG Flags,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegConnectRegistryExW (
_In_opt_ LPCWSTR lpMachineName,
_In_ HKEY hKey,
_In_ ULONG Flags,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegCreateKeyA (
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegCreateKeyW (
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegCreateKeyExA(
_In_ HKEY hKey,
_In_ LPCSTR lpSubKey,
_Reserved_ DWORD Reserved,
_In_opt_ LPSTR lpClass,
_In_ DWORD dwOptions,
_In_ REGSAM samDesired,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_Out_ PHKEY phkResult,
_Out_opt_ LPDWORD lpdwDisposition
);
WINADVAPI
LSTATUS
APIENTRY
RegCreateKeyExW(
_In_ HKEY hKey,
_In_ LPCWSTR lpSubKey,
_Reserved_ DWORD Reserved,
_In_opt_ LPWSTR lpClass,
_In_ DWORD dwOptions,
_In_ REGSAM samDesired,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_Out_ PHKEY phkResult,
_Out_opt_ LPDWORD lpdwDisposition
);
WINADVAPI
LSTATUS
APIENTRY
RegCreateKeyTransactedA (
_In_ HKEY hKey,
_In_ LPCSTR lpSubKey,
_Reserved_ DWORD Reserved,
_In_opt_ LPSTR lpClass,
_In_ DWORD dwOptions,
_In_ REGSAM samDesired,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_Out_ PHKEY phkResult,
_Out_opt_ LPDWORD lpdwDisposition,
_In_ HANDLE hTransaction,
_Reserved_ PVOID pExtendedParemeter
);
WINADVAPI
LSTATUS
APIENTRY
RegCreateKeyTransactedW (
_In_ HKEY hKey,
_In_ LPCWSTR lpSubKey,
_Reserved_ DWORD Reserved,
_In_opt_ LPWSTR lpClass,
_In_ DWORD dwOptions,
_In_ REGSAM samDesired,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_Out_ PHKEY phkResult,
_Out_opt_ LPDWORD lpdwDisposition,
_In_ HANDLE hTransaction,
_Reserved_ PVOID pExtendedParemeter
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyA (
_In_ HKEY hKey,
_In_ LPCSTR lpSubKey
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyW (
_In_ HKEY hKey,
_In_ LPCWSTR lpSubKey
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyExA(
_In_ HKEY hKey,
_In_ LPCSTR lpSubKey,
_In_ REGSAM samDesired,
_Reserved_ DWORD Reserved
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyExW(
_In_ HKEY hKey,
_In_ LPCWSTR lpSubKey,
_In_ REGSAM samDesired,
_Reserved_ DWORD Reserved
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyTransactedA (
_In_ HKEY hKey,
_In_ LPCSTR lpSubKey,
_In_ REGSAM samDesired,
_Reserved_ DWORD Reserved,
_In_ HANDLE hTransaction,
_Reserved_ PVOID pExtendedParameter
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyTransactedW (
_In_ HKEY hKey,
_In_ LPCWSTR lpSubKey,
_In_ REGSAM samDesired,
_Reserved_ DWORD Reserved,
_In_ HANDLE hTransaction,
_Reserved_ PVOID pExtendedParameter
);
WINADVAPI
LONG
APIENTRY
RegDisableReflectionKey (
_In_ HKEY hBase
);
WINADVAPI
LONG
APIENTRY
RegEnableReflectionKey (
_In_ HKEY hBase
);
WINADVAPI
LONG
APIENTRY
RegQueryReflectionKey (
_In_ HKEY hBase,
_Out_ BOOL *bIsReflectionDisabled
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteValueA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpValueName
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteValueW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpValueName
);
WINADVAPI
LSTATUS
APIENTRY
RegEnumKeyA (
_In_ HKEY hKey,
_In_ DWORD dwIndex,
_Out_writes_opt_(cchName) LPSTR lpName,
_In_ DWORD cchName
);
WINADVAPI
LSTATUS
APIENTRY
RegEnumKeyW (
_In_ HKEY hKey,
_In_ DWORD dwIndex,
_Out_writes_opt_(cchName) LPWSTR lpName,
_In_ DWORD cchName
);
WINADVAPI
LSTATUS
APIENTRY
RegEnumKeyExA(
_In_ HKEY hKey,
_In_ DWORD dwIndex,
_Out_writes_to_opt_(*lpcchName, *lpcchName + 1) LPSTR lpName,
_Inout_ LPDWORD lpcchName,
_Reserved_ LPDWORD lpReserved,
_Out_writes_to_opt_(*lpcchClass,*lpcchClass + 1) LPSTR lpClass,
_Inout_opt_ LPDWORD lpcchClass,
_Out_opt_ PFILETIME lpftLastWriteTime
);
WINADVAPI
LSTATUS
APIENTRY
RegEnumKeyExW(
_In_ HKEY hKey,
_In_ DWORD dwIndex,
_Out_writes_to_opt_(*lpcchName, *lpcchName + 1) LPWSTR lpName,
_Inout_ LPDWORD lpcchName,
_Reserved_ LPDWORD lpReserved,
_Out_writes_to_opt_(*lpcchClass,*lpcchClass + 1) LPWSTR lpClass,
_Inout_opt_ LPDWORD lpcchClass,
_Out_opt_ PFILETIME lpftLastWriteTime
);
WINADVAPI
LSTATUS
APIENTRY
RegEnumValueA(
_In_ HKEY hKey,
_In_ DWORD dwIndex,
_Out_writes_to_opt_(*lpcchValueName, *lpcchValueName + 1) LPSTR lpValueName,
_Inout_ LPDWORD lpcchValueName,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpType,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData,
_Inout_opt_ LPDWORD lpcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegEnumValueW(
_In_ HKEY hKey,
_In_ DWORD dwIndex,
_Out_writes_to_opt_(*lpcchValueName, *lpcchValueName + 1) LPWSTR lpValueName,
_Inout_ LPDWORD lpcchValueName,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpType,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData,
_Inout_opt_ LPDWORD lpcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegFlushKey(
_In_ HKEY hKey
);
WINADVAPI
LSTATUS
APIENTRY
RegGetKeySecurity(
_In_ HKEY hKey,
_In_ SECURITY_INFORMATION SecurityInformation,
_Out_writes_bytes_opt_(*lpcbSecurityDescriptor) PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Inout_ LPDWORD lpcbSecurityDescriptor
);
WINADVAPI
LSTATUS
APIENTRY
RegLoadKeyA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_ LPCSTR lpFile
);
WINADVAPI
LSTATUS
APIENTRY
RegLoadKeyW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_ LPCWSTR lpFile
);
WINADVAPI
LSTATUS
APIENTRY
RegNotifyChangeKeyValue(
_In_ HKEY hKey,
_In_ BOOL bWatchSubtree,
_In_ DWORD dwNotifyFilter,
_In_opt_ HANDLE hEvent,
_In_ BOOL fAsynchronous
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenKeyA (
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenKeyW (
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenKeyExA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_opt_ DWORD ulOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenKeyExW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_opt_ DWORD ulOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenKeyTransactedA (
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_opt_ DWORD ulOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult,
_In_ HANDLE hTransaction,
_Reserved_ PVOID pExtendedParemeter
);
WINADVAPI
LSTATUS
APIENTRY
RegOpenKeyTransactedW (
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_opt_ DWORD ulOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult,
_In_ HANDLE hTransaction,
_Reserved_ PVOID pExtendedParemeter
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryInfoKeyA(
_In_ HKEY hKey,
_Out_writes_to_opt_(*lpcchClass, *lpcchClass + 1) LPSTR lpClass,
_Inout_opt_ LPDWORD lpcchClass,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpcSubKeys,
_Out_opt_ LPDWORD lpcbMaxSubKeyLen,
_Out_opt_ LPDWORD lpcbMaxClassLen,
_Out_opt_ LPDWORD lpcValues,
_Out_opt_ LPDWORD lpcbMaxValueNameLen,
_Out_opt_ LPDWORD lpcbMaxValueLen,
_Out_opt_ LPDWORD lpcbSecurityDescriptor,
_Out_opt_ PFILETIME lpftLastWriteTime
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryInfoKeyW(
_In_ HKEY hKey,
_Out_writes_to_opt_(*lpcchClass, *lpcchClass + 1) LPWSTR lpClass,
_Inout_opt_ LPDWORD lpcchClass,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpcSubKeys,
_Out_opt_ LPDWORD lpcbMaxSubKeyLen,
_Out_opt_ LPDWORD lpcbMaxClassLen,
_Out_opt_ LPDWORD lpcValues,
_Out_opt_ LPDWORD lpcbMaxValueNameLen,
_Out_opt_ LPDWORD lpcbMaxValueLen,
_Out_opt_ LPDWORD lpcbSecurityDescriptor,
_Out_opt_ PFILETIME lpftLastWriteTime
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryValueA (
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPSTR lpData,
_Inout_opt_ PLONG lpcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryValueW (
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPWSTR lpData,
_Inout_opt_ PLONG lpcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryMultipleValuesA(
_In_ HKEY hKey,
_Out_writes_(num_vals) PVALENTA val_list,
_In_ DWORD num_vals,
_Out_writes_bytes_to_opt_(*ldwTotsize, *ldwTotsize) __out_data_source(REGISTRY) LPSTR lpValueBuf,
_Inout_opt_ LPDWORD ldwTotsize
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryMultipleValuesW(
_In_ HKEY hKey,
_Out_writes_(num_vals) PVALENTW val_list,
_In_ DWORD num_vals,
_Out_writes_bytes_to_opt_(*ldwTotsize, *ldwTotsize) __out_data_source(REGISTRY) LPWSTR lpValueBuf,
_Inout_opt_ LPDWORD ldwTotsize
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryValueExA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpValueName,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpType,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData,
_When_(lpData == NULL, _Out_opt_) _When_(lpData != NULL, _Inout_opt_) LPDWORD lpcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegQueryValueExW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpValueName,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpType,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData,
_When_(lpData == NULL, _Out_opt_) _When_(lpData != NULL, _Inout_opt_) LPDWORD lpcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegReplaceKeyA (
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_ LPCSTR lpNewFile,
_In_ LPCSTR lpOldFile
);
WINADVAPI
LSTATUS
APIENTRY
RegReplaceKeyW (
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_ LPCWSTR lpNewFile,
_In_ LPCWSTR lpOldFile
);
WINADVAPI
LSTATUS
APIENTRY
RegRestoreKeyA(
_In_ HKEY hKey,
_In_ LPCSTR lpFile,
_In_ DWORD dwFlags
);
WINADVAPI
LSTATUS
APIENTRY
RegRestoreKeyW(
_In_ HKEY hKey,
_In_ LPCWSTR lpFile,
_In_ DWORD dwFlags
);
WINADVAPI
LSTATUS
APIENTRY
RegRenameKey(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKeyName,
_In_ LPCWSTR lpNewKeyName
);
WINADVAPI
LSTATUS
APIENTRY
RegSaveKeyA (
_In_ HKEY hKey,
_In_ LPCSTR lpFile,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINADVAPI
LSTATUS
APIENTRY
RegSaveKeyW (
_In_ HKEY hKey,
_In_ LPCWSTR lpFile,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
WINADVAPI
LSTATUS
APIENTRY
RegSetKeySecurity(
_In_ HKEY hKey,
_In_ SECURITY_INFORMATION SecurityInformation,
_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor
);
WINADVAPI
LSTATUS
APIENTRY
RegSetValueA (
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) LPCSTR lpData,
_In_ DWORD cbData
);
WINADVAPI
LSTATUS
APIENTRY
RegSetValueW (
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) LPCWSTR lpData,
_In_ DWORD cbData
);
WINADVAPI
LSTATUS
APIENTRY
RegSetValueExA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpValueName,
_Reserved_ DWORD Reserved,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) CONST BYTE* lpData,
_In_ DWORD cbData
);
WINADVAPI
LSTATUS
APIENTRY
RegSetValueExW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpValueName,
_Reserved_ DWORD Reserved,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) CONST BYTE* lpData,
_In_ DWORD cbData
);
WINADVAPI
LSTATUS
APIENTRY
RegUnLoadKeyA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey
);
WINADVAPI
LSTATUS
APIENTRY
RegUnLoadKeyW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyValueA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_opt_ LPCSTR lpValueName
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteKeyValueW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_opt_ LPCWSTR lpValueName
);
WINADVAPI
LSTATUS
APIENTRY
RegSetKeyValueA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey,
_In_opt_ LPCSTR lpValueName,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) LPCVOID lpData,
_In_ DWORD cbData
);
WINADVAPI
LSTATUS
APIENTRY
RegSetKeyValueW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_In_opt_ LPCWSTR lpValueName,
_In_ DWORD dwType,
_In_reads_bytes_opt_(cbData) LPCVOID lpData,
_In_ DWORD cbData
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteTreeA(
_In_ HKEY hKey,
_In_opt_ LPCSTR lpSubKey
);
WINADVAPI
LSTATUS
APIENTRY
RegDeleteTreeW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey
);
WINADVAPI
LSTATUS
APIENTRY
RegCopyTreeA (
_In_ HKEY hKeySrc,
_In_opt_ LPCSTR lpSubKey,
_In_ HKEY hKeyDest
);
WINADVAPI
LSTATUS
APIENTRY
RegGetValueA(
_In_ HKEY hkey,
_In_opt_ LPCSTR lpSubKey,
_In_opt_ LPCSTR lpValue,
_In_ DWORD dwFlags,
_Out_opt_ LPDWORD pdwType,
_When_((dwFlags & 0x7F) == RRF_RT_REG_SZ ||
(dwFlags & 0x7F) == RRF_RT_REG_EXPAND_SZ ||
(dwFlags & 0x7F) == (RRF_RT_REG_SZ | RRF_RT_REG_EXPAND_SZ) ||
*pdwType == REG_SZ ||
*pdwType == REG_EXPAND_SZ, _Post_z_)
_When_((dwFlags & 0x7F) == RRF_RT_REG_MULTI_SZ ||
*pdwType == REG_MULTI_SZ, _Post_ _NullNull_terminated_)
_Out_writes_bytes_to_opt_(*pcbData,*pcbData) PVOID pvData,
_Inout_opt_ LPDWORD pcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegGetValueW(
_In_ HKEY hkey,
_In_opt_ LPCWSTR lpSubKey,
_In_opt_ LPCWSTR lpValue,
_In_ DWORD dwFlags,
_Out_opt_ LPDWORD pdwType,
_When_((dwFlags & 0x7F) == RRF_RT_REG_SZ ||
(dwFlags & 0x7F) == RRF_RT_REG_EXPAND_SZ ||
(dwFlags & 0x7F) == (RRF_RT_REG_SZ | RRF_RT_REG_EXPAND_SZ) ||
*pdwType == REG_SZ ||
*pdwType == REG_EXPAND_SZ, _Post_z_)
_When_((dwFlags & 0x7F) == RRF_RT_REG_MULTI_SZ ||
*pdwType == REG_MULTI_SZ, _Post_ _NullNull_terminated_)
_Out_writes_bytes_to_opt_(*pcbData,*pcbData) PVOID pvData,
_Inout_opt_ LPDWORD pcbData
);
WINADVAPI
LSTATUS
APIENTRY
RegCopyTreeW(
_In_ HKEY hKeySrc,
_In_opt_ LPCWSTR lpSubKey,
_In_ HKEY hKeyDest
);
WINADVAPI
LSTATUS
APIENTRY
RegLoadMUIStringA(
_In_ HKEY hKey,
_In_opt_ LPCSTR pszValue,
_Out_writes_bytes_opt_(cbOutBuf) LPSTR pszOutBuf,
_In_ DWORD cbOutBuf,
_Out_opt_ LPDWORD pcbData,
_In_ DWORD Flags,
_In_opt_ LPCSTR pszDirectory
);
WINADVAPI
LSTATUS
APIENTRY
RegLoadMUIStringW(
_In_ HKEY hKey,
_In_opt_ LPCWSTR pszValue,
_Out_writes_bytes_opt_(cbOutBuf) LPWSTR pszOutBuf,
_In_ DWORD cbOutBuf,
_Out_opt_ LPDWORD pcbData,
_In_ DWORD Flags,
_In_opt_ LPCWSTR pszDirectory
);
WINADVAPI
LSTATUS
APIENTRY
RegLoadAppKeyA(
_In_ LPCSTR lpFile,
_Out_ PHKEY phkResult,
_In_ REGSAM samDesired,
_In_ DWORD dwOptions,
_Reserved_ DWORD Reserved
);
WINADVAPI
LSTATUS
APIENTRY
RegLoadAppKeyW(
_In_ LPCWSTR lpFile,
_Out_ PHKEY phkResult,
_In_ REGSAM samDesired,
_In_ DWORD dwOptions,
_Reserved_ DWORD Reserved
);
__drv_preferredFunction("InitiateSystemShutdownEx", "Legacy API. Rearchitect to avoid Reboot")
WINADVAPI
BOOL
APIENTRY
InitiateSystemShutdownA(
_In_opt_ LPSTR lpMachineName,
_In_opt_ LPSTR lpMessage,
_In_ DWORD dwTimeout,
_In_ BOOL bForceAppsClosed,
_In_ BOOL bRebootAfterShutdown
);
__drv_preferredFunction("InitiateSystemShutdownEx", "Legacy API. Rearchitect to avoid Reboot")
WINADVAPI
BOOL
APIENTRY
InitiateSystemShutdownW(
_In_opt_ LPWSTR lpMachineName,
_In_opt_ LPWSTR lpMessage,
_In_ DWORD dwTimeout,
_In_ BOOL bForceAppsClosed,
_In_ BOOL bRebootAfterShutdown
);
WINADVAPI
BOOL
APIENTRY
AbortSystemShutdownA(
_In_opt_ LPSTR lpMachineName
);
WINADVAPI
BOOL
APIENTRY
AbortSystemShutdownW(
_In_opt_ LPWSTR lpMachineName
);
__drv_preferredFunction("a design alternative", "Rearchitect to avoid Reboot")
_When_(((dwReason==0 && lpMessage==0)) || dwReason>=0xd0000000,
__drv_reportError("Requires a valid dwReason or lpMessage"))
WINADVAPI
BOOL
APIENTRY
InitiateSystemShutdownExA(
_In_opt_ LPSTR lpMachineName,
_In_opt_ LPSTR lpMessage,
_In_ DWORD dwTimeout,
_In_ BOOL bForceAppsClosed,
_In_ BOOL bRebootAfterShutdown,
_In_ DWORD dwReason
);
__drv_preferredFunction("a design alternative", "Rearchitect to avoid Reboot")
_When_(((dwReason==0 && lpMessage==0)) || dwReason>=0xd0000000,
__drv_reportError("Requires a valid dwReason or lpMessage"))
WINADVAPI
BOOL
APIENTRY
InitiateSystemShutdownExW(
_In_opt_ LPWSTR lpMachineName,
_In_opt_ LPWSTR lpMessage,
_In_ DWORD dwTimeout,
_In_ BOOL bForceAppsClosed,
_In_ BOOL bRebootAfterShutdown,
_In_ DWORD dwReason
);
WINADVAPI
DWORD
APIENTRY
InitiateShutdownA(
_In_opt_ LPSTR lpMachineName,
_In_opt_ LPSTR lpMessage,
_In_ DWORD dwGracePeriod,
_In_ DWORD dwShutdownFlags,
_In_ DWORD dwReason
);
WINADVAPI
DWORD
APIENTRY
InitiateShutdownW(
_In_opt_ LPWSTR lpMachineName,
_In_opt_ LPWSTR lpMessage,
_In_ DWORD dwGracePeriod,
_In_ DWORD dwShutdownFlags,
_In_ DWORD dwReason
);
WINADVAPI
DWORD
APIENTRY
CheckForHiberboot(
_Inout_ PBOOLEAN pHiberboot,
_In_ BOOLEAN bClearFlag
);
WINADVAPI
LSTATUS
APIENTRY
RegSaveKeyExA(
_In_ HKEY hKey,
_In_ LPCSTR lpFile,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD Flags
);
WINADVAPI
LSTATUS
APIENTRY
RegSaveKeyExW(
_In_ HKEY hKey,
_In_ LPCWSTR lpFile,
_In_opt_ CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD Flags
);
typedef struct _NETRESOURCEA {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPSTR lpLocalName;
LPSTR lpRemoteName;
LPSTR lpComment ;
LPSTR lpProvider;
}NETRESOURCEA, *LPNETRESOURCEA;
typedef struct _NETRESOURCEW {
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPWSTR lpLocalName;
LPWSTR lpRemoteName;
LPWSTR lpComment ;
LPWSTR lpProvider;
}NETRESOURCEW, *LPNETRESOURCEW;
typedef NETRESOURCEA NETRESOURCE;
typedef LPNETRESOURCEA LPNETRESOURCE;
_Check_return_
DWORD APIENTRY
WNetAddConnectionA(
_In_ LPCSTR lpRemoteName,
_In_opt_ LPCSTR lpPassword,
_In_opt_ LPCSTR lpLocalName
);
_Check_return_
DWORD APIENTRY
WNetAddConnectionW(
_In_ LPCWSTR lpRemoteName,
_In_opt_ LPCWSTR lpPassword,
_In_opt_ LPCWSTR lpLocalName
);
_Check_return_
DWORD APIENTRY
WNetAddConnection2A(
_In_ LPNETRESOURCEA lpNetResource,
_In_opt_ LPCSTR lpPassword,
_In_opt_ LPCSTR lpUserName,
_In_ DWORD dwFlags
);
_Check_return_
DWORD APIENTRY
WNetAddConnection2W(
_In_ LPNETRESOURCEW lpNetResource,
_In_opt_ LPCWSTR lpPassword,
_In_opt_ LPCWSTR lpUserName,
_In_ DWORD dwFlags
);
_Check_return_
DWORD APIENTRY
WNetAddConnection3A(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEA lpNetResource,
_In_opt_ LPCSTR lpPassword,
_In_opt_ LPCSTR lpUserName,
_In_ DWORD dwFlags
);
_Check_return_
DWORD APIENTRY
WNetAddConnection3W(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEW lpNetResource,
_In_opt_ LPCWSTR lpPassword,
_In_opt_ LPCWSTR lpUserName,
_In_ DWORD dwFlags
);
_Check_return_
DWORD APIENTRY
WNetAddConnection4A(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEA lpNetResource,
_In_reads_bytes_(cbAuthBuffer) PVOID pAuthBuffer,
_In_ DWORD cbAuthBuffer,
_In_ DWORD dwFlags,
_In_reads_bytes_(cbUseOptions) PBYTE lpUseOptions,
_In_ DWORD cbUseOptions
);
_Check_return_
DWORD APIENTRY
WNetAddConnection4W(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEW lpNetResource,
_In_reads_bytes_(cbAuthBuffer) PVOID pAuthBuffer,
_In_ DWORD cbAuthBuffer,
_In_ DWORD dwFlags,
_In_reads_bytes_(cbUseOptions) PBYTE lpUseOptions,
_In_ DWORD cbUseOptions
);
_Check_return_
DWORD APIENTRY
WNetCancelConnectionA(
_In_ LPCSTR lpName,
_In_ BOOL fForce
);
_Check_return_
DWORD APIENTRY
WNetCancelConnectionW(
_In_ LPCWSTR lpName,
_In_ BOOL fForce
);
_Check_return_
DWORD APIENTRY
WNetCancelConnection2A(
_In_ LPCSTR lpName,
_In_ DWORD dwFlags,
_In_ BOOL fForce
);
_Check_return_
DWORD APIENTRY
WNetCancelConnection2W(
_In_ LPCWSTR lpName,
_In_ DWORD dwFlags,
_In_ BOOL fForce
);
_Check_return_
DWORD APIENTRY
WNetGetConnectionA(
_In_ LPCSTR lpLocalName,
_Out_writes_opt_(*lpnLength) LPSTR lpRemoteName,
_Inout_ LPDWORD lpnLength
);
_Check_return_
DWORD APIENTRY
WNetGetConnectionW(
_In_ LPCWSTR lpLocalName,
_Out_writes_opt_(*lpnLength) LPWSTR lpRemoteName,
_Inout_ LPDWORD lpnLength
);
_Check_return_
DWORD APIENTRY
WNetRestoreSingleConnectionW(
_In_opt_ HWND hwndParent,
_In_ LPCWSTR lpDevice,
_In_ BOOL fUseUI
);
_Check_return_
DWORD APIENTRY
WNetUseConnectionA(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEA lpNetResource,
_In_opt_ LPCSTR lpPassword,
_In_opt_ LPCSTR lpUserId,
_In_ DWORD dwFlags,
_Out_writes_opt_(*lpBufferSize) LPSTR lpAccessName,
_Inout_opt_ LPDWORD lpBufferSize,
_Out_opt_ LPDWORD lpResult
);
_Check_return_
DWORD APIENTRY
WNetUseConnectionW(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEW lpNetResource,
_In_opt_ LPCWSTR lpPassword,
_In_opt_ LPCWSTR lpUserId,
_In_ DWORD dwFlags,
_Out_writes_opt_(*lpBufferSize) LPWSTR lpAccessName,
_Inout_opt_ LPDWORD lpBufferSize,
_Out_opt_ LPDWORD lpResult
);
_Check_return_
DWORD APIENTRY
WNetUseConnection4A(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEA lpNetResource,
_In_reads_bytes_opt_(cbAuthBuffer) PVOID pAuthBuffer,
_In_ DWORD cbAuthBuffer,
_In_ DWORD dwFlags,
_In_reads_bytes_opt_(cbUseOptions) PBYTE lpUseOptions,
_In_ DWORD cbUseOptions,
_Out_writes_opt_(*lpBufferSize) LPSTR lpAccessName,
_Inout_opt_ LPDWORD lpBufferSize,
_Out_opt_ LPDWORD lpResult
);
_Check_return_
DWORD APIENTRY
WNetUseConnection4W(
_In_opt_ HWND hwndOwner,
_In_ LPNETRESOURCEW lpNetResource,
_In_reads_bytes_opt_(cbAuthBuffer) PVOID pAuthBuffer,
_In_ DWORD cbAuthBuffer,
_In_ DWORD dwFlags,
_In_reads_bytes_opt_(cbUseOptions) PBYTE lpUseOptions,
_In_ DWORD cbUseOptions,
_Out_writes_opt_(*lpBufferSize) LPWSTR lpAccessName,
_Inout_opt_ LPDWORD lpBufferSize,
_Out_opt_ LPDWORD lpResult
);
_Check_return_
DWORD APIENTRY
WNetConnectionDialog(
_In_ HWND hwnd,
_In_ DWORD dwType
);
_Check_return_
DWORD APIENTRY
WNetDisconnectDialog(
_In_opt_ HWND hwnd,
_In_ DWORD dwType
);
typedef struct _CONNECTDLGSTRUCTA{
DWORD cbStructure;
HWND hwndOwner;
LPNETRESOURCEA lpConnRes;
DWORD dwFlags;
DWORD dwDevNum;
} CONNECTDLGSTRUCTA, FAR *LPCONNECTDLGSTRUCTA;
typedef struct _CONNECTDLGSTRUCTW{
DWORD cbStructure;
HWND hwndOwner;
LPNETRESOURCEW lpConnRes;
DWORD dwFlags;
DWORD dwDevNum;
} CONNECTDLGSTRUCTW, FAR *LPCONNECTDLGSTRUCTW;
typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT;
typedef LPCONNECTDLGSTRUCTA LPCONNECTDLGSTRUCT;
_Check_return_
DWORD APIENTRY
WNetConnectionDialog1A(
_Inout_ LPCONNECTDLGSTRUCTA lpConnDlgStruct
);
_Check_return_
DWORD APIENTRY
WNetConnectionDialog1W(
_Inout_ LPCONNECTDLGSTRUCTW lpConnDlgStruct
);
typedef struct _DISCDLGSTRUCTA{
DWORD cbStructure;
HWND hwndOwner;
LPSTR lpLocalName;
LPSTR lpRemoteName;
DWORD dwFlags;
} DISCDLGSTRUCTA, FAR *LPDISCDLGSTRUCTA;
typedef struct _DISCDLGSTRUCTW{
DWORD cbStructure;
HWND hwndOwner;
LPWSTR lpLocalName;
LPWSTR lpRemoteName;
DWORD dwFlags;
} DISCDLGSTRUCTW, FAR *LPDISCDLGSTRUCTW;
typedef DISCDLGSTRUCTA DISCDLGSTRUCT;
typedef LPDISCDLGSTRUCTA LPDISCDLGSTRUCT;
_Check_return_
DWORD APIENTRY
WNetDisconnectDialog1A(
_In_ LPDISCDLGSTRUCTA lpConnDlgStruct
);
_Check_return_
DWORD APIENTRY
WNetDisconnectDialog1W(
_In_ LPDISCDLGSTRUCTW lpConnDlgStruct
);
_Check_return_
DWORD APIENTRY
WNetOpenEnumA(
_In_ DWORD dwScope,
_In_ DWORD dwType,
_In_ DWORD dwUsage,
_In_opt_ LPNETRESOURCEA lpNetResource,
_Out_ LPHANDLE lphEnum
);
_Check_return_
DWORD APIENTRY
WNetOpenEnumW(
_In_ DWORD dwScope,
_In_ DWORD dwType,
_In_ DWORD dwUsage,
_In_opt_ LPNETRESOURCEW lpNetResource,
_Out_ LPHANDLE lphEnum
);
_Check_return_
DWORD APIENTRY
WNetEnumResourceA(
_In_ HANDLE hEnum,
_Inout_ LPDWORD lpcCount,
_Out_writes_bytes_(*lpBufferSize) LPVOID lpBuffer,
_Inout_ LPDWORD lpBufferSize
);
_Check_return_
DWORD APIENTRY
WNetEnumResourceW(
_In_ HANDLE hEnum,
_Inout_ LPDWORD lpcCount,
_Out_writes_bytes_(*lpBufferSize) LPVOID lpBuffer,
_Inout_ LPDWORD lpBufferSize
);
_Check_return_
DWORD APIENTRY
WNetCloseEnum(
_In_ HANDLE hEnum
);
_Check_return_
DWORD APIENTRY
WNetGetResourceParentA(
_In_ LPNETRESOURCEA lpNetResource,
_Out_writes_bytes_(*lpcbBuffer) LPVOID lpBuffer,
_Inout_ LPDWORD lpcbBuffer
);
_Check_return_
DWORD APIENTRY
WNetGetResourceParentW(
_In_ LPNETRESOURCEW lpNetResource,
_Out_writes_bytes_(*lpcbBuffer) LPVOID lpBuffer,
_Inout_ LPDWORD lpcbBuffer
);
_Check_return_
DWORD APIENTRY
WNetGetResourceInformationA(
_In_ LPNETRESOURCEA lpNetResource,
_Out_writes_bytes_(*lpcbBuffer) LPVOID lpBuffer,
_Inout_ LPDWORD lpcbBuffer,
_Outptr_ LPSTR *lplpSystem
);
_Check_return_
DWORD APIENTRY
WNetGetResourceInformationW(
_In_ LPNETRESOURCEW lpNetResource,
_Out_writes_bytes_(*lpcbBuffer) LPVOID lpBuffer,
_Inout_ LPDWORD lpcbBuffer,
_Outptr_ LPWSTR *lplpSystem
);
typedef struct _UNIVERSAL_NAME_INFOA {
LPSTR lpUniversalName;
}UNIVERSAL_NAME_INFOA, *LPUNIVERSAL_NAME_INFOA;
typedef struct _UNIVERSAL_NAME_INFOW {
LPWSTR lpUniversalName;
}UNIVERSAL_NAME_INFOW, *LPUNIVERSAL_NAME_INFOW;
typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO;
typedef LPUNIVERSAL_NAME_INFOA LPUNIVERSAL_NAME_INFO;
typedef struct _REMOTE_NAME_INFOA {
LPSTR lpUniversalName;
LPSTR lpConnectionName;
LPSTR lpRemainingPath;
}REMOTE_NAME_INFOA, *LPREMOTE_NAME_INFOA;
typedef struct _REMOTE_NAME_INFOW {
LPWSTR lpUniversalName;
LPWSTR lpConnectionName;
LPWSTR lpRemainingPath;
}REMOTE_NAME_INFOW, *LPREMOTE_NAME_INFOW;
typedef REMOTE_NAME_INFOA REMOTE_NAME_INFO;
typedef LPREMOTE_NAME_INFOA LPREMOTE_NAME_INFO;
_Check_return_
DWORD APIENTRY
WNetGetUniversalNameA(
_In_ LPCSTR lpLocalPath,
_In_ DWORD dwInfoLevel,
_Out_writes_bytes_(*lpBufferSize) LPVOID lpBuffer,
_Inout_ LPDWORD lpBufferSize
);
_Check_return_
DWORD APIENTRY
WNetGetUniversalNameW(
_In_ LPCWSTR lpLocalPath,
_In_ DWORD dwInfoLevel,
_Out_writes_bytes_(*lpBufferSize) LPVOID lpBuffer,
_Inout_ LPDWORD lpBufferSize
);
_Check_return_
DWORD APIENTRY
WNetGetUserA(
_In_opt_ LPCSTR lpName,
_Out_writes_(*lpnLength) LPSTR lpUserName,
_Inout_ LPDWORD lpnLength
);
_Check_return_
DWORD APIENTRY
WNetGetUserW(
_In_opt_ LPCWSTR lpName,
_Out_writes_(*lpnLength) LPWSTR lpUserName,
_Inout_ LPDWORD lpnLength
);
_Check_return_
DWORD APIENTRY
WNetGetProviderNameA(
_In_ DWORD dwNetType,
_Out_writes_(*lpBufferSize) LPSTR lpProviderName,
_Inout_ LPDWORD lpBufferSize
);
_Check_return_
DWORD APIENTRY
WNetGetProviderNameW(
_In_ DWORD dwNetType,
_Out_writes_(*lpBufferSize) LPWSTR lpProviderName,
_Inout_ LPDWORD lpBufferSize
);
typedef struct _NETINFOSTRUCT{
DWORD cbStructure;
DWORD dwProviderVersion;
DWORD dwStatus;
DWORD dwCharacteristics;
ULONG_PTR dwHandle;
WORD wNetType;
DWORD dwPrinters;
DWORD dwDrives;
} NETINFOSTRUCT, FAR *LPNETINFOSTRUCT;
_Check_return_
DWORD APIENTRY
WNetGetNetworkInformationA(
_In_ LPCSTR lpProvider,
_Out_ LPNETINFOSTRUCT lpNetInfoStruct
);
_Check_return_
DWORD APIENTRY
WNetGetNetworkInformationW(
_In_ LPCWSTR lpProvider,
_Out_ LPNETINFOSTRUCT lpNetInfoStruct
);
_Check_return_
DWORD APIENTRY
WNetGetLastErrorA(
_Out_ LPDWORD lpError,
_Out_writes_(nErrorBufSize) LPSTR lpErrorBuf,
_In_ DWORD nErrorBufSize,
_Out_writes_(nNameBufSize) LPSTR lpNameBuf,
_In_ DWORD nNameBufSize
);
_Check_return_
DWORD APIENTRY
WNetGetLastErrorW(
_Out_ LPDWORD lpError,
_Out_writes_(nErrorBufSize) LPWSTR lpErrorBuf,
_In_ DWORD nErrorBufSize,
_Out_writes_(nNameBufSize) LPWSTR lpNameBuf,
_In_ DWORD nNameBufSize
);
typedef struct _NETCONNECTINFOSTRUCT{
DWORD cbStructure;
DWORD dwFlags;
DWORD dwSpeed;
DWORD dwDelay;
DWORD dwOptDataSize;
} NETCONNECTINFOSTRUCT, *LPNETCONNECTINFOSTRUCT;
_Check_return_
DWORD APIENTRY
MultinetGetConnectionPerformanceA(
_In_ LPNETRESOURCEA lpNetResource,
_Out_ LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
);
_Check_return_
DWORD APIENTRY
MultinetGetConnectionPerformanceW(
_In_ LPNETRESOURCEW lpNetResource,
_Out_ LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
);
typedef struct {
unsigned short bAppReturnCode:8,
reserved:6,
fBusy:1,
fAck:1;
} DDEACK;
typedef struct {
unsigned short reserved:14,
fDeferUpd:1,
fAckReq:1;
short cfFormat;
} DDEADVISE;
typedef struct {
unsigned short unused:12,
fResponse:1,
fRelease:1,
reserved:1,
fAckReq:1;
short cfFormat;
BYTE Value[1];
} DDEDATA;
typedef struct {
unsigned short unused:13,
fRelease:1,
fReserved:2;
short cfFormat;
BYTE Value[1];
} DDEPOKE;
typedef struct {
unsigned short unused:13,
fRelease:1,
fDeferUpd:1,
fAckReq:1;
short cfFormat;
} DDELN;
typedef struct {
unsigned short unused:12,
fAck:1,
fRelease:1,
fReserved:1,
fAckReq:1;
short cfFormat;
BYTE rgb[1];
} DDEUP;
BOOL
WINAPI
DdeSetQualityOfService(
HWND hwndClient,
CONST SECURITY_QUALITY_OF_SERVICE *pqosNew,
PSECURITY_QUALITY_OF_SERVICE pqosPrev);
BOOL
WINAPI
ImpersonateDdeClientWindow(
HWND hWndClient,
HWND hWndServer);
LPARAM APIENTRY PackDDElParam(_In_ UINT msg, _In_ UINT_PTR uiLo, _In_ UINT_PTR uiHi);
BOOL APIENTRY UnpackDDElParam(_In_ UINT msg, _In_ LPARAM lParam, _Out_ PUINT_PTR puiLo, _Out_ PUINT_PTR puiHi);
BOOL APIENTRY FreeDDElParam(_In_ UINT msg, _In_ LPARAM lParam);
LPARAM APIENTRY ReuseDDElParam(LPARAM lParam, UINT msgIn, UINT msgOut, UINT_PTR uiLo, UINT_PTR uiHi);
DECLARE_HANDLE(HCONVLIST);
DECLARE_HANDLE(HCONV);
DECLARE_HANDLE(HSZ);
DECLARE_HANDLE(HDDEDATA);
typedef struct tagHSZPAIR {
HSZ hszSvc;
HSZ hszTopic;
} HSZPAIR, FAR *PHSZPAIR;
typedef struct tagCONVCONTEXT {
UINT cb;
UINT wFlags;
UINT wCountryID;
int iCodePage;
DWORD dwLangID;
DWORD dwSecurity;
SECURITY_QUALITY_OF_SERVICE qos;
} CONVCONTEXT, FAR *PCONVCONTEXT;
typedef struct tagCONVINFO {
DWORD cb;
DWORD_PTR hUser;
HCONV hConvPartner;
HSZ hszSvcPartner;
HSZ hszServiceReq;
HSZ hszTopic;
HSZ hszItem;
UINT wFmt;
UINT wType;
UINT wStatus;
UINT wConvst;
UINT wLastError;
HCONVLIST hConvList;
CONVCONTEXT ConvCtxt;
HWND hwnd;
HWND hwndPartner;
} CONVINFO, FAR *PCONVINFO;
typedef HDDEDATA CALLBACK FNCALLBACK(UINT wType, UINT wFmt, HCONV hConv,
HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2);
typedef HDDEDATA (CALLBACK *PFNCALLBACK)(UINT wType, UINT wFmt, HCONV hConv,
HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2);
UINT
WINAPI
DdeInitializeA(
_Inout_ LPDWORD pidInst,
_In_ PFNCALLBACK pfnCallback,
_In_ DWORD afCmd,
_Reserved_ DWORD ulRes);
UINT
WINAPI
DdeInitializeW(
_Inout_ LPDWORD pidInst,
_In_ PFNCALLBACK pfnCallback,
_In_ DWORD afCmd,
_Reserved_ DWORD ulRes);
BOOL
WINAPI
DdeUninitialize(
_In_ DWORD idInst);
HCONVLIST
WINAPI
DdeConnectList(
_In_ DWORD idInst,
_In_ HSZ hszService,
_In_ HSZ hszTopic,
_In_ HCONVLIST hConvList,
_In_opt_ PCONVCONTEXT pCC);
HCONV
WINAPI
DdeQueryNextServer(
_In_ HCONVLIST hConvList,
_In_ HCONV hConvPrev);
BOOL
WINAPI
DdeDisconnectList(
_In_ HCONVLIST hConvList);
HCONV
WINAPI
DdeConnect(
_In_ DWORD idInst,
_In_ HSZ hszService,
_In_ HSZ hszTopic,
_In_opt_ PCONVCONTEXT pCC);
BOOL
WINAPI
DdeDisconnect(
_In_ HCONV hConv);
HCONV
WINAPI
DdeReconnect(
_In_ HCONV hConv);
UINT
WINAPI
DdeQueryConvInfo(
_In_ HCONV hConv,
_In_ DWORD idTransaction,
_Inout_ PCONVINFO pConvInfo);
BOOL
WINAPI
DdeSetUserHandle(
_In_ HCONV hConv,
_In_ DWORD id,
_In_ DWORD_PTR hUser);
BOOL
WINAPI
DdeAbandonTransaction(
_In_ DWORD idInst,
_In_ HCONV hConv,
_In_ DWORD idTransaction);
BOOL
WINAPI
DdePostAdvise(
_In_ DWORD idInst,
_In_ HSZ hszTopic,
_In_ HSZ hszItem);
BOOL
WINAPI
DdeEnableCallback(
_In_ DWORD idInst,
_In_ HCONV hConv,
_In_ UINT wCmd);
BOOL
WINAPI
DdeImpersonateClient(
_In_ HCONV hConv);
HDDEDATA
WINAPI
DdeNameService(
_In_ DWORD idInst,
_In_opt_ HSZ hsz1,
_In_opt_ HSZ hsz2,
_In_ UINT afCmd);
HDDEDATA
WINAPI
DdeClientTransaction(
_In_opt_ LPBYTE pData,
_In_ DWORD cbData,
_In_ HCONV hConv,
_In_opt_ HSZ hszItem,
_In_ UINT wFmt,
_In_ UINT wType,
_In_ DWORD dwTimeout,
_Out_opt_ LPDWORD pdwResult);
HDDEDATA
WINAPI
DdeCreateDataHandle(
_In_ DWORD idInst,
_In_reads_bytes_opt_(cb) LPBYTE pSrc,
_In_ DWORD cb,
_In_ DWORD cbOff,
_In_opt_ HSZ hszItem,
_In_ UINT wFmt,
_In_ UINT afCmd);
HDDEDATA
WINAPI
DdeAddData(
_In_ HDDEDATA hData,
_In_reads_bytes_(cb) LPBYTE pSrc,
_In_ DWORD cb,
_In_ DWORD cbOff);
DWORD
WINAPI
DdeGetData(
_In_ HDDEDATA hData,
_Out_writes_bytes_opt_(cbMax) LPBYTE pDst,
_In_ DWORD cbMax,
_In_ DWORD cbOff);
LPBYTE
WINAPI
DdeAccessData(
_In_ HDDEDATA hData,
_Out_opt_ LPDWORD pcbDataSize);
BOOL
WINAPI
DdeUnaccessData(
_In_ HDDEDATA hData);
BOOL
WINAPI
DdeFreeDataHandle(
_In_ HDDEDATA hData);
UINT
WINAPI
DdeGetLastError(
_In_ DWORD idInst);
HSZ
WINAPI
DdeCreateStringHandleA(
_In_ DWORD idInst,
_In_ LPCSTR psz,
_In_ int iCodePage);
HSZ
WINAPI
DdeCreateStringHandleW(
_In_ DWORD idInst,
_In_ LPCWSTR psz,
_In_ int iCodePage);
DWORD
WINAPI
DdeQueryStringA(
_In_ DWORD idInst,
_In_ HSZ hsz,
_Out_writes_opt_(cchMax) LPSTR psz,
_In_ DWORD cchMax,
_In_ int iCodePage);
DWORD
WINAPI
DdeQueryStringW(
_In_ DWORD idInst,
_In_ HSZ hsz,
_Out_writes_opt_(cchMax) LPWSTR psz,
_In_ DWORD cchMax,
_In_ int iCodePage);
BOOL
WINAPI
DdeFreeStringHandle(
_In_ DWORD idInst,
_In_ HSZ hsz);
BOOL
WINAPI
DdeKeepStringHandle(
_In_ DWORD idInst,
_In_ HSZ hsz);
int
WINAPI
DdeCmpStringHandles(
_In_ HSZ hsz1,
_In_ HSZ hsz2);
typedef struct tagDDEML_MSG_HOOK_DATA {
UINT_PTR uiLo;
UINT_PTR uiHi;
DWORD cbData;
DWORD Data[8];
} DDEML_MSG_HOOK_DATA, *PDDEML_MSG_HOOK_DATA;
typedef struct tagMONMSGSTRUCT {
UINT cb;
HWND hwndTo;
DWORD dwTime;
HANDLE hTask;
UINT wMsg;
WPARAM wParam;
LPARAM lParam;
DDEML_MSG_HOOK_DATA dmhd;
} MONMSGSTRUCT, *PMONMSGSTRUCT;
typedef struct tagMONCBSTRUCT {
UINT cb;
DWORD dwTime;
HANDLE hTask;
DWORD dwRet;
UINT wType;
UINT wFmt;
HCONV hConv;
HSZ hsz1;
HSZ hsz2;
HDDEDATA hData;
ULONG_PTR dwData1;
ULONG_PTR dwData2;
CONVCONTEXT cc;
DWORD cbData;
DWORD Data[8];
} MONCBSTRUCT, *PMONCBSTRUCT;
typedef struct tagMONHSZSTRUCTA {
UINT cb;
BOOL fsAction;
DWORD dwTime;
HSZ hsz;
HANDLE hTask;
CHAR str[1];
} MONHSZSTRUCTA, *PMONHSZSTRUCTA;
typedef struct tagMONHSZSTRUCTW {
UINT cb;
BOOL fsAction;
DWORD dwTime;
HSZ hsz;
HANDLE hTask;
WCHAR str[1];
} MONHSZSTRUCTW, *PMONHSZSTRUCTW;
typedef MONHSZSTRUCTA MONHSZSTRUCT;
typedef PMONHSZSTRUCTA PMONHSZSTRUCT;
typedef struct tagMONERRSTRUCT {
UINT cb;
UINT wLastError;
DWORD dwTime;
HANDLE hTask;
} MONERRSTRUCT, *PMONERRSTRUCT;
typedef struct tagMONLINKSTRUCT {
UINT cb;
DWORD dwTime;
HANDLE hTask;
BOOL fEstablished;
BOOL fNoData;
HSZ hszSvc;
HSZ hszTopic;
HSZ hszItem;
UINT wFmt;
BOOL fServer;
HCONV hConvServer;
HCONV hConvClient;
} MONLINKSTRUCT, *PMONLINKSTRUCT;
typedef struct tagMONCONVSTRUCT {
UINT cb;
BOOL fConnect;
DWORD dwTime;
HANDLE hTask;
HSZ hszSvc;
HSZ hszTopic;
HCONV hConvClient;
HCONV hConvServer;
} MONCONVSTRUCT, *PMONCONVSTRUCT;
typedef struct tagCRGB
{
BYTE bRed;
BYTE bGreen;
BYTE bBlue;
BYTE bExtra;
} CRGB;
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
LZStart(
VOID
);
VOID
APIENTRY
LZDone(
VOID
);
_Success_(return >= 0)
_Check_return_
LONG
APIENTRY
CopyLZFile(
_In_ INT hfSource,
_In_ INT hfDest
);
_Success_(return >= 0)
_Check_return_
LONG
APIENTRY
LZCopy(
_In_ INT hfSource,
_In_ INT hfDest
);
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
LZInit(
_In_ INT hfSource
);
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
GetExpandedNameA(
_In_ LPSTR lpszSource,
_Out_writes_(MAX_PATH) LPSTR lpszBuffer
);
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
GetExpandedNameW(
_In_ LPWSTR lpszSource,
_Out_writes_(MAX_PATH) LPWSTR lpszBuffer
);
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
LZOpenFileA(
_In_ LPSTR lpFileName,
_Inout_ LPOFSTRUCT lpReOpenBuf,
_In_ WORD wStyle
);
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
LZOpenFileW(
_In_ LPWSTR lpFileName,
_Inout_ LPOFSTRUCT lpReOpenBuf,
_In_ WORD wStyle
);
_Success_(return >= 0)
_Check_return_
LONG
APIENTRY
LZSeek(
_In_ INT hFile,
_In_ LONG lOffset,
_In_ INT iOrigin
);
_Success_(return >= 0)
_Check_return_
INT
APIENTRY
LZRead(
_In_ INT hFile,
_Out_writes_bytes_to_(cbRead, return) CHAR* lpBuffer,
_In_ INT cbRead
);
VOID
APIENTRY
LZClose(
_In_ INT hFile
);
typedef UINT VERSION;
typedef _Return_type_success_( return == 0) UINT MMRESULT;
typedef UINT FAR *LPUINT;
typedef struct mmtime_tag
{
UINT wType;
union
{
DWORD ms;
DWORD sample;
DWORD cb;
DWORD ticks;
struct
{
BYTE hour;
BYTE min;
BYTE sec;
BYTE frame;
BYTE fps;
BYTE dummy;
} smpte;
struct
{
DWORD songptrpos;
} midi;
} u;
} MMTIME, *PMMTIME, NEAR *NPMMTIME, FAR *LPMMTIME;
typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
typedef DRVCALLBACK FAR *LPDRVCALLBACK;
typedef DWORD MCIERROR;
typedef UINT MCIDEVICEID;
typedef UINT (CALLBACK *YIELDPROC)(MCIDEVICEID mciId, DWORD dwYieldData);
MCIERROR WINAPI mciSendCommand(MCIDEVICEID mciId, UINT uMsg, DWORD dwParam1, DWORD dwParam2);
MCIERROR WINAPI mciSendString(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
MCIDEVICEID WINAPI mciGetDeviceID(LPCSTR pszDevice);
BOOL WINAPI mciGetErrorString(MCIERROR mcierr, LPSTR pszText, UINT cchText);
WINMMAPI
BOOL
WINAPI
mciSetYieldProc(
_In_ MCIDEVICEID mciId,
_In_opt_ YIELDPROC fpYieldProc,
_In_ DWORD dwYieldData
);
WINMMAPI
HTASK
WINAPI
mciGetCreatorTask(
_In_ MCIDEVICEID mciId
);
WINMMAPI
YIELDPROC
WINAPI
mciGetYieldProc(
_In_ MCIDEVICEID mciId,
_In_ LPDWORD pdwYieldData
);
typedef struct tagMCI_GENERIC_PARMS {
DWORD_PTR dwCallback;
} MCI_GENERIC_PARMS, *PMCI_GENERIC_PARMS, FAR *LPMCI_GENERIC_PARMS;
typedef struct tagMCI_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
} MCI_OPEN_PARMS, FAR *LPMCI_OPEN_PARMS;
typedef struct tagMCI_PLAY_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrom;
DWORD dwTo;
} MCI_PLAY_PARMS, *PMCI_PLAY_PARMS, FAR *LPMCI_PLAY_PARMS;
typedef struct tagMCI_SEEK_PARMS {
DWORD_PTR dwCallback;
DWORD dwTo;
} MCI_SEEK_PARMS, *PMCI_SEEK_PARMS, FAR *LPMCI_SEEK_PARMS;
typedef struct tagMCI_STATUS_PARMS {
DWORD_PTR dwCallback;
DWORD_PTR dwReturn;
DWORD dwItem;
DWORD dwTrack;
} MCI_STATUS_PARMS, *PMCI_STATUS_PARMS, FAR * LPMCI_STATUS_PARMS;
typedef struct tagMCI_INFO_PARMS {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwRetSize;
} MCI_INFO_PARMS, FAR * LPMCI_INFO_PARMS;
typedef struct tagMCI_GETDEVCAPS_PARMS {
DWORD_PTR dwCallback;
DWORD dwReturn;
DWORD dwItem;
} MCI_GETDEVCAPS_PARMS, *PMCI_GETDEVCAPS_PARMS, FAR * LPMCI_GETDEVCAPS_PARMS;
typedef struct tagMCI_SYSINFO_PARMS {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwRetSize;
DWORD dwNumber;
WORD wDeviceType;
WORD wReserved0;
} MCI_SYSINFO_PARMS, FAR * LPMCI_SYSINFO_PARMS;
typedef struct tagMCI_SET_PARMS {
DWORD_PTR dwCallback;
DWORD dwTimeFormat;
DWORD dwAudio;
} MCI_SET_PARMS, *PMCI_SET_PARMS, FAR *LPMCI_SET_PARMS;
typedef struct tagMCI_BREAK_PARMS {
DWORD_PTR dwCallback;
short nVirtKey;
WORD wReserved0;
HWND hwndBreak;
WORD wReserved1;
} MCI_BREAK_PARMS, *PMCI_BREAK_PARMS, FAR * LPMCI_BREAK_PARMS;
typedef struct tagMCI_SAVE_PARMS {
DWORD_PTR dwCallback;
LPCSTR lpfilename;
} MCI_SAVE_PARMS, FAR * LPMCI_SAVE_PARMS;
typedef struct tagMCI_LOAD_PARMS {
DWORD dwCallback;
LPCSTR lpfilename;
} MCI_LOAD_PARMS, FAR * LPMCI_LOAD_PARMS;
typedef struct tagMCI_RECORD_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrom;
DWORD dwTo;
} MCI_RECORD_PARMS, FAR *LPMCI_RECORD_PARMS;
typedef struct tagMCI_VD_PLAY_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrom;
DWORD dwTo;
DWORD dwSpeed;
} MCI_VD_PLAY_PARMS, *PMCI_VD_PLAY_PARMS, FAR *LPMCI_VD_PLAY_PARMS;
typedef struct tagMCI_VD_STEP_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrames;
} MCI_VD_STEP_PARMS, *PMCI_VD_STEP_PARMS, FAR *LPMCI_VD_STEP_PARMS;
typedef struct tagMCI_VD_ESCAPE_PARMS {
DWORD dwCallback;
LPCSTR lpstrCommand;
} MCI_VD_ESCAPE_PARMS, FAR *LPMCI_VD_ESCAPE_PARMS;
typedef struct tagMCI_WAVE_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwBufferSeconds;
} MCI_WAVE_OPEN_PARMS, FAR *LPMCI_WAVE_OPEN_PARMS;
typedef struct tagMCI_WAVE_DELETE_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrom;
DWORD dwTo;
} MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS, FAR *LPMCI_WAVE_DELETE_PARMS;
typedef struct tagMCI_WAVE_SET_PARMS {
DWORD_PTR dwCallback;
DWORD dwTimeFormat;
DWORD dwAudio;
WORD wInput;
WORD wReserved0;
WORD wOutput;
WORD wReserved1;
WORD wFormatTag;
WORD wReserved2;
WORD nChannels;
WORD wReserved3;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wReserved4;
WORD wBitsPerSample;
WORD wReserved5;
} MCI_WAVE_SET_PARMS, *PMCI_WAVE_SET_PARMS, FAR * LPMCI_WAVE_SET_PARMS;
typedef struct tagMCI_SEQ_SET_PARMS {
DWORD_PTR dwCallback;
DWORD dwTimeFormat;
DWORD dwAudio;
DWORD dwTempo;
DWORD dwPort;
DWORD dwSlave;
DWORD dwMaster;
DWORD dwOffset;
} MCI_SEQ_SET_PARMS, *PMCI_SEQ_SET_PARMS, FAR * LPMCI_SEQ_SET_PARMS;
typedef struct tagMCI_ANIM_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwStyle;
HWND hWndParent;
WORD wReserved1;
} MCI_ANIM_OPEN_PARMS, FAR *LPMCI_ANIM_OPEN_PARMS;
typedef struct tagMCI_ANIM_PLAY_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrom;
DWORD dwTo;
DWORD dwSpeed;
} MCI_ANIM_PLAY_PARMS, *PMCI_ANIM_PLAY_PARMS, FAR *LPMCI_ANIM_PLAY_PARMS;
typedef struct tagMCI_ANIM_STEP_PARMS {
DWORD_PTR dwCallback;
DWORD dwFrames;
} MCI_ANIM_STEP_PARMS, *PMCI_ANIM_STEP_PARMS, FAR *LPMCI_ANIM_STEP_PARMS;
typedef struct tagMCI_ANIM_WINDOW_PARMS {
DWORD dwCallback;
HWND hWnd;
WORD wReserved1;
WORD nCmdShow;
WORD wReserved2;
LPCSTR lpstrText;
} MCI_ANIM_WINDOW_PARMS, FAR * LPMCI_ANIM_WINDOW_PARMS;
typedef struct tagMCI_ANIM_RECT_PARMS {
DWORD_PTR dwCallback;
RECT rc;
} MCI_ANIM_RECT_PARMS;
typedef MCI_ANIM_RECT_PARMS * PMCI_ANIM_RECT_PARMS;
typedef MCI_ANIM_RECT_PARMS FAR * LPMCI_ANIM_RECT_PARMS;
typedef struct tagMCI_ANIM_UPDATE_PARMS {
DWORD_PTR dwCallback;
RECT rc;
HDC hDC;
} MCI_ANIM_UPDATE_PARMS, *PMCI_ANIM_UPDATE_PARMS, FAR * LPMCI_ANIM_UPDATE_PARMS;
typedef struct tagMCI_OVLY_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwStyle;
HWND hWndParent;
WORD wReserved1;
} MCI_OVLY_OPEN_PARMS, FAR *LPMCI_OVLY_OPEN_PARMS;
typedef struct tagMCI_OVLY_WINDOW_PARMS {
DWORD dwCallback;
HWND hWnd;
WORD wReserved1;
UINT nCmdShow;
WORD wReserved2;
LPCSTR lpstrText;
} MCI_OVLY_WINDOW_PARMS, FAR * LPMCI_OVLY_WINDOW_PARMS;
typedef struct tagMCI_OVLY_RECT_PARMS {
DWORD_PTR dwCallback;
RECT rc;
} MCI_OVLY_RECT_PARMS, *PMCI_OVLY_RECT_PARMS, FAR * LPMCI_OVLY_RECT_PARMS;
typedef struct tagMCI_OVLY_SAVE_PARMS {
DWORD dwCallback;
LPCSTR lpfilename;
RECT rc;
} MCI_OVLY_SAVE_PARMS, FAR * LPMCI_OVLY_SAVE_PARMS;
typedef struct tagMCI_OVLY_LOAD_PARMS {
DWORD dwCallback;
LPCSTR lpfilename;
RECT rc;
} MCI_OVLY_LOAD_PARMS, FAR * LPMCI_OVLY_LOAD_PARMS;
DWORD_PTR
APIENTRY
mciGetDriverData(
MCIDEVICEID wDeviceID
);
UINT
APIENTRY
mciLoadCommandResource(
HANDLE hInstance,
LPCWSTR lpResName,
UINT wType
);
BOOL
APIENTRY
mciSetDriverData(
MCIDEVICEID wDeviceID,
DWORD_PTR dwData
);
UINT
APIENTRY
mciDriverYield(
MCIDEVICEID wDeviceID
);
BOOL
APIENTRY
mciDriverNotify(
HANDLE hwndCallback,
MCIDEVICEID wDeviceID,
UINT uStatus
);
BOOL
APIENTRY
mciFreeCommandResource(
UINT wTable
);
typedef struct DRVCONFIGINFOEX {
DWORD dwDCISize;
LPCSTR lpszDCISectionName;
LPCSTR lpszDCIAliasName;
DWORD dnDevNode;
} DRVCONFIGINFOEX, *PDRVCONFIGINFOEX, NEAR *NPDRVCONFIGINFOEX, FAR *LPDRVCONFIGINFOEX;
BOOL
APIENTRY
DriverCallback(
DWORD_PTR dwCallback,
DWORD dwFlags,
HDRVR hDevice,
DWORD dwMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
LONG
WINAPI
sndOpenSound(
_In_ LPCWSTR EventName,
_In_ LPCWSTR AppName,
_In_ INT32 Flags,
_Outptr_ PHANDLE FileHandle
);
typedef DWORD (APIENTRY *DRIVERMSGPROC)(DWORD, DWORD, DWORD_PTR, DWORD_PTR, DWORD_PTR);
UINT
APIENTRY
mmDrvInstall(
HDRVR hDriver,
LPCWSTR wszDrvEntry,
DRIVERMSGPROC drvMessage,
UINT wFlags
);
typedef DWORD FOURCC;
typedef char _huge * HPSTR;
DECLARE_HANDLE(HMMIO);
typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg,
LPARAM lParam1, LPARAM lParam2);
typedef MMIOPROC FAR *LPMMIOPROC;
typedef struct _MMIOINFO
{
DWORD dwFlags;
FOURCC fccIOProc;
LPMMIOPROC pIOProc;
UINT wErrorRet;
HTASK htask;
LONG cchBuffer;
HPSTR pchBuffer;
HPSTR pchNext;
HPSTR pchEndRead;
HPSTR pchEndWrite;
LONG lBufOffset;
LONG lDiskOffset;
DWORD adwInfo[3];
DWORD dwReserved1;
DWORD dwReserved2;
HMMIO hmmio;
} MMIOINFO, *PMMIOINFO, NEAR *NPMMIOINFO, FAR *LPMMIOINFO;
typedef const MMIOINFO FAR *LPCMMIOINFO;
typedef struct _MMCKINFO
{
FOURCC ckid;
DWORD cksize;
FOURCC fccType;
DWORD dwDataOffset;
DWORD dwFlags;
} MMCKINFO, *PMMCKINFO, NEAR *NPMMCKINFO, FAR *LPMMCKINFO;
typedef const MMCKINFO *LPCMMCKINFO;
FOURCC WINAPI mmioStringToFOURCC( LPCSTR sz, UINT uFlags);
LPMMIOPROC WINAPI mmioInstallIOProc( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags);
HMMIO WINAPI mmioOpen(_Inout_opt_ LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen);
MMRESULT WINAPI mmioRename( _In_ LPCSTR pszFileName, _In_ LPCSTR pszNewFileName, _In_opt_ const MMIOINFO FAR* pmmioinfo, _In_ DWORD fdwRename);
WINMMAPI
MMRESULT
WINAPI
mmioClose(
_In_ HMMIO hmmio,
_In_ UINT fuClose
);
WINMMAPI
LONG
WINAPI
mmioRead(
_In_ HMMIO hmmio,
_Out_writes_bytes_(cch) HPSTR pch,
_In_ LONG cch
);
WINMMAPI
LONG
WINAPI
mmioWrite(
_In_ HMMIO hmmio,
_In_reads_bytes_(cch) const char _huge * pch,
_In_ LONG cch
);
WINMMAPI
LONG
WINAPI
mmioSeek(
_In_ HMMIO hmmio,
_In_ LONG lOffset,
_In_ int iOrigin
);
WINMMAPI
MMRESULT
WINAPI
mmioGetInfo(
_In_ HMMIO hmmio,
_Out_ LPMMIOINFO pmmioinfo,
_In_ UINT fuInfo
);
WINMMAPI
MMRESULT
WINAPI
mmioSetInfo(
_In_ HMMIO hmmio,
_In_ LPCMMIOINFO pmmioinfo,
_In_ UINT fuInfo
);
WINMMAPI
MMRESULT
WINAPI
mmioSetBuffer(
_In_ HMMIO hmmio,
_Out_writes_opt_(cchBuffer) LPSTR pchBuffer,
_In_ LONG cchBuffer,
_In_ UINT fuBuffer
);
WINMMAPI
MMRESULT
WINAPI
mmioFlush(
_In_ HMMIO hmmio,
_In_ UINT fuFlush
);
WINMMAPI
MMRESULT
WINAPI
mmioAdvance(
_In_ HMMIO hmmio,
_In_opt_ LPMMIOINFO pmmioinfo,
_In_ UINT fuAdvance
);
WINMMAPI
LRESULT
WINAPI
mmioSendMessage(
_In_ HMMIO hmmio,
_In_ UINT uMsg,
_In_opt_ LPARAM lParam1,
_In_opt_ LPARAM lParam2
);
WINMMAPI
MMRESULT
WINAPI
mmioDescend(
_In_ HMMIO hmmio,
_Inout_ LPMMCKINFO pmmcki,
_In_opt_ const MMCKINFO FAR * pmmckiParent,
_In_ UINT fuDescend
);
WINMMAPI
MMRESULT
WINAPI
mmioAscend(
_In_ HMMIO hmmio,
_In_ LPMMCKINFO pmmcki,
_In_ UINT fuAscend
);
WINMMAPI
MMRESULT
WINAPI
mmioCreateChunk(
_In_ HMMIO hmmio,
_In_ LPMMCKINFO pmmcki,
_In_ UINT fuCreate
);
typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
typedef TIMECALLBACK FAR *LPTIMECALLBACK;
WINMMAPI
MMRESULT
WINAPI
timeSetEvent(
_In_ UINT uDelay,
_In_ UINT uResolution,
_In_ LPTIMECALLBACK fptc,
_In_ DWORD_PTR dwUser,
_In_ UINT fuEvent
);
WINMMAPI
MMRESULT
WINAPI
timeKillEvent(
_In_ UINT uTimerID
);
DLOAD_RET(FALSE)
BOOL WINAPI sndPlaySound(LPCSTR pszSound, UINT fuSound);
DLOAD_RET(FALSE)
BOOL WINAPI PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
DECLARE_HANDLE(HWAVE);
DECLARE_HANDLE(HWAVEIN);
DECLARE_HANDLE(HWAVEOUT);
typedef HWAVEIN FAR *LPHWAVEIN;
typedef HWAVEOUT FAR *LPHWAVEOUT;
typedef DRVCALLBACK WAVECALLBACK;
typedef WAVECALLBACK FAR *LPWAVECALLBACK;
typedef struct wavehdr_tag {
LPSTR lpData;
DWORD dwBufferLength;
DWORD dwBytesRecorded;
DWORD_PTR dwUser;
DWORD dwFlags;
DWORD dwLoops;
struct wavehdr_tag FAR *lpNext;
DWORD_PTR reserved;
} WAVEHDR, *PWAVEHDR, NEAR *NPWAVEHDR, FAR *LPWAVEHDR;
typedef struct waveoutcaps_tag {
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
DWORD dwFormats;
WORD wChannels;
DWORD dwSupport;
} WAVEOUTCAPS, *PWAVEOUTCAPS, NEAR *NPWAVEOUTCAPS, FAR *LPWAVEOUTCAPS;
typedef struct waveincaps_tag {
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
DWORD dwFormats;
WORD wChannels;
} WAVEINCAPS, *PWAVEINCAPS, NEAR *NPWAVEINCAPS, FAR *LPWAVEINCAPS;
typedef struct waveformat_tag {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
} WAVEFORMAT, *PWAVEFORMAT, NEAR *NPWAVEFORMAT, FAR *LPWAVEFORMAT;
typedef struct pcmwaveformat_tag {
WAVEFORMAT wf;
WORD wBitsPerSample;
} PCMWAVEFORMAT, *PPCMWAVEFORMAT, NEAR *NPPCMWAVEFORMAT, FAR *LPPCMWAVEFORMAT;
typedef struct tWAVEFORMATEX
{
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX, *PWAVEFORMATEX, NEAR *NPWAVEFORMATEX, FAR *LPWAVEFORMATEX;
typedef const WAVEFORMATEX FAR *LPCWAVEFORMATEX;
WINMMAPI
UINT
WINAPI
waveOutGetNumDevs(
void
);
WINMMAPI MMRESULT WINAPI waveOutGetDevCaps( UINT uDeviceID, LPWAVEOUTCAPS pwoc, UINT cbwoc);
WINMMAPI
MMRESULT
WINAPI
waveOutGetVolume(
_In_opt_ HWAVEOUT hwo,
_Out_ LPDWORD pdwVolume
);
WINMMAPI
MMRESULT
WINAPI
waveOutSetVolume(
_In_opt_ HWAVEOUT hwo,
_In_ DWORD dwVolume
);
MMRESULT WINAPI waveOutGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText);
WINMMAPI
MMRESULT
WINAPI
waveOutOpen(
_Out_opt_ LPHWAVEOUT phwo,
_In_ UINT uDeviceID,
_In_ LPCWAVEFORMATEX pwfx,
_In_opt_ DWORD_PTR dwCallback,
_In_opt_ DWORD_PTR dwInstance,
_In_ DWORD fdwOpen
);
WINMMAPI
MMRESULT
WINAPI
waveOutClose(
_In_ HWAVEOUT hwo
);
WINMMAPI
MMRESULT
WINAPI
waveOutPrepareHeader(
_In_ HWAVEOUT hwo,
_Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
_In_ UINT cbwh
);
WINMMAPI
MMRESULT
WINAPI
waveOutUnprepareHeader(
_In_ HWAVEOUT hwo,
_Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
_In_ UINT cbwh
);
WINMMAPI
MMRESULT
WINAPI
waveOutWrite(
_In_ HWAVEOUT hwo,
_Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
_In_ UINT cbwh
);
WINMMAPI
MMRESULT
WINAPI
waveOutPause(
_In_ HWAVEOUT hwo
);
WINMMAPI
MMRESULT
WINAPI
waveOutRestart(
_In_ HWAVEOUT hwo
);
WINMMAPI
MMRESULT
WINAPI
waveOutReset(
_In_ HWAVEOUT hwo
);
WINMMAPI
MMRESULT
WINAPI
waveOutBreakLoop(
_In_ HWAVEOUT hwo
);
WINMMAPI
MMRESULT
WINAPI
waveOutGetPosition(
_In_ HWAVEOUT hwo,
_Inout_updates_bytes_(cbmmt) LPMMTIME pmmt,
_In_ UINT cbmmt
);
WINMMAPI
MMRESULT
WINAPI
waveOutGetPitch(
_In_ HWAVEOUT hwo,
_Out_ LPDWORD pdwPitch
);
WINMMAPI
MMRESULT
WINAPI
waveOutSetPitch(
_In_ HWAVEOUT hwo,
_In_ DWORD dwPitch
);
WINMMAPI
MMRESULT
WINAPI
waveOutGetPlaybackRate(
_In_ HWAVEOUT hwo,
_Out_ LPDWORD pdwRate
);
WINMMAPI
MMRESULT
WINAPI
waveOutSetPlaybackRate(
_In_ HWAVEOUT hwo,
_In_ DWORD dwRate
);
WINMMAPI
MMRESULT
WINAPI
waveOutGetID(
_In_ HWAVEOUT hwo,
_Out_ LPUINT puDeviceID
);
DWORD WINAPI waveOutMessage(HWAVEOUT hwo, UINT uMsg, DWORD dw1, DWORD dw2);
WINMMAPI
UINT
WINAPI
waveInGetNumDevs(
void
);
MMRESULT WINAPI waveInGetDevCaps(UINT uDeviceID, LPWAVEINCAPS pwic, UINT cbwic);
MMRESULT WINAPI waveInGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText);
WINMMAPI
MMRESULT
WINAPI
waveInOpen(
_Out_opt_ LPHWAVEIN phwi,
_In_ UINT uDeviceID,
_In_ LPCWAVEFORMATEX pwfx,
_In_opt_ DWORD_PTR dwCallback,
_In_opt_ DWORD_PTR dwInstance,
_In_ DWORD fdwOpen
);
WINMMAPI
MMRESULT
WINAPI
waveInClose(
_In_ HWAVEIN hwi
);
WINMMAPI
MMRESULT
WINAPI
waveInPrepareHeader(
_In_ HWAVEIN hwi,
_Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
_In_ UINT cbwh
);
WINMMAPI
MMRESULT
WINAPI
waveInUnprepareHeader(
_In_ HWAVEIN hwi,
_Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
_In_ UINT cbwh
);
WINMMAPI
MMRESULT
WINAPI
waveInAddBuffer(
_In_ HWAVEIN hwi,
_Inout_updates_bytes_(cbwh) LPWAVEHDR pwh,
_In_ UINT cbwh
);
WINMMAPI
MMRESULT
WINAPI
waveInStart(
_In_ HWAVEIN hwi
);
WINMMAPI
MMRESULT
WINAPI
waveInStop(
_In_ HWAVEIN hwi
);
WINMMAPI
MMRESULT
WINAPI
waveInReset(
_In_ HWAVEIN hwi
);
WINMMAPI
MMRESULT
WINAPI
waveInGetPosition(
_In_ HWAVEIN hwi,
_Inout_updates_bytes_(cbmmt) LPMMTIME pmmt,
_In_ UINT cbmmt
);
WINMMAPI
MMRESULT
WINAPI
waveInGetID(
_In_ HWAVEIN hwi,
_In_ LPUINT puDeviceID
);
DWORD WINAPI waveInMessage(HWAVEIN hwi, UINT uMsg, DWORD dw1, DWORD dw2);
DECLARE_HANDLE(HMIDI);
DECLARE_HANDLE(HMIDIIN);
DECLARE_HANDLE(HMIDIOUT);
DECLARE_HANDLE(HMIDISTRM);
typedef HMIDI FAR *LPHMIDI;
typedef HMIDIIN FAR *LPHMIDIIN;
typedef HMIDIOUT FAR *LPHMIDIOUT;
typedef HMIDISTRM FAR *LPHMIDISTRM;
typedef DRVCALLBACK MIDICALLBACK;
typedef MIDICALLBACK FAR *LPMIDICALLBACK;
typedef WORD PATCHARRAY[MIDIPATCHSIZE];
typedef WORD FAR *LPPATCHARRAY;
typedef WORD KEYARRAY[MIDIPATCHSIZE];
typedef WORD FAR *LPKEYARRAY;
typedef struct midioutcaps_tag {
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
WORD wTechnology;
WORD wVoices;
WORD wNotes;
WORD wChannelMask;
DWORD dwSupport;
} MIDIOUTCAPS, *PMIDIOUTCAPS, NEAR *NPMIDIOUTCAPS, FAR *LPMIDIOUTCAPS;
typedef struct midiincaps_tag {
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
DWORD dwSupport;
} MIDIINCAPS, *PMIDIINCAPS, NEAR *NPMIDIINCAPS, FAR *LPMIDIINCAPS;
typedef struct midihdr_tag {
LPSTR lpData;
DWORD dwBufferLength;
DWORD dwBytesRecorded;
DWORD_PTR dwUser;
DWORD dwFlags;
struct midihdr_tag far *lpNext;
DWORD_PTR reserved;
DWORD dwOffset;
DWORD_PTR dwReserved[8];
} MIDIHDR, *PMIDIHDR, NEAR *NPMIDIHDR, FAR *LPMIDIHDR;
typedef struct midievent_tag
{
DWORD dwDeltaTime;
DWORD dwStreamID;
DWORD dwEvent;
DWORD dwParms[1];
} MIDIEVENT;
typedef struct midistrmbuffver_tag
{
DWORD dwVersion;
DWORD dwMid;
DWORD dwOEMVersion;
} MIDISTRMBUFFVER;
typedef struct midiproptimediv_tag
{
DWORD cbStruct;
DWORD dwTimeDiv;
} MIDIPROPTIMEDIV, FAR *LPMIDIPROPTIMEDIV;
typedef struct midiproptempo_tag
{
DWORD cbStruct;
DWORD dwTempo;
} MIDIPROPTEMPO, FAR *LPMIDIPROPTEMPO;
WINMMAPI
UINT
WINAPI
midiOutGetNumDevs(
void
);
WINMMAPI
MMRESULT
WINAPI
midiStreamOpen(
_Out_ LPHMIDISTRM phms,
_Inout_updates_(cMidi) LPUINT puDeviceID,
_In_ DWORD cMidi,
_In_opt_ DWORD_PTR dwCallback,
_In_opt_ DWORD_PTR dwInstance,
_In_ DWORD fdwOpen
);
WINMMAPI
MMRESULT
WINAPI
midiStreamClose(
_In_ HMIDISTRM hms
);
WINMMAPI
MMRESULT
WINAPI
midiStreamProperty(
_In_ HMIDISTRM hms,
_Inout_updates_bytes_(sizeof(DWORD)+sizeof(DWORD)) LPBYTE lppropdata,
_In_ DWORD dwProperty
);
WINMMAPI
MMRESULT
WINAPI
midiStreamPosition(
_In_ HMIDISTRM hms,
_Out_writes_bytes_(cbmmt) LPMMTIME lpmmt,
_In_ UINT cbmmt
);
WINMMAPI
MMRESULT
WINAPI
midiStreamOut(
_In_ HMIDISTRM hms,
_Out_writes_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiStreamPause(
_In_ HMIDISTRM hms
);
WINMMAPI
MMRESULT
WINAPI
midiStreamRestart(
_In_ HMIDISTRM hms
);
WINMMAPI
MMRESULT
WINAPI
midiStreamStop(
_In_ HMIDISTRM hms
);
MMRESULT WINAPI midiOutGetDevCaps(UINT uDeviceID, LPMIDIOUTCAPS pmoc, UINT cbmoc);
WINMMAPI
MMRESULT
WINAPI
midiOutGetVolume(
_In_opt_ HMIDIOUT hmo,
_Out_ LPDWORD pdwVolume
);
WINMMAPI
MMRESULT
WINAPI
midiOutSetVolume(
_In_opt_ HMIDIOUT hmo,
_In_ DWORD dwVolume
);
WINMMAPI MMRESULT WINAPI midiOutGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText);
WINMMAPI
MMRESULT
WINAPI
midiOutOpen(
_Out_ LPHMIDIOUT phmo,
_In_ UINT uDeviceID,
_In_opt_ DWORD_PTR dwCallback,
_In_opt_ DWORD_PTR dwInstance,
_In_ DWORD fdwOpen
);
WINMMAPI
MMRESULT
WINAPI
midiOutClose(
_In_ HMIDIOUT hmo
);
WINMMAPI
MMRESULT
WINAPI
midiOutPrepareHeader(
_In_ HMIDIOUT hmo,
_Inout_updates_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiOutUnprepareHeader(
_In_ HMIDIOUT hmo,
_Inout_updates_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiOutShortMsg(
_In_ HMIDIOUT hmo,
_In_ DWORD dwMsg
);
WINMMAPI
MMRESULT
WINAPI
midiOutLongMsg(
_In_ HMIDIOUT hmo,
_In_reads_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiOutReset(
_In_ HMIDIOUT hmo
);
WINMMAPI
MMRESULT
WINAPI
midiOutCachePatches(
_In_ HMIDIOUT hmo,
_In_ UINT uBank,
_In_reads_(MIDIPATCHSIZE) LPWORD pwpa,
_In_ UINT fuCache
);
WINMMAPI
MMRESULT
WINAPI
midiOutCacheDrumPatches(
_In_ HMIDIOUT hmo,
_In_ UINT uPatch,
_In_reads_(MIDIPATCHSIZE) LPWORD pwkya,
_In_ UINT fuCache
);
WINMMAPI
MMRESULT
WINAPI
midiOutGetID(
_In_ HMIDIOUT hmo,
_Out_ LPUINT puDeviceID
);
DWORD WINAPI midiOutMessage(HMIDIOUT hmo, UINT uMsg, DWORD dw1, DWORD dw2);
WINMMAPI
UINT
WINAPI
midiInGetNumDevs(
void
);
MMRESULT WINAPI midiInGetDevCaps(UINT uDeviceID, LPMIDIINCAPS pmic, UINT cbmic);
WINMMAPI MMRESULT WINAPI midiInGetErrorText(MMRESULT mmrError, _Out_writes_(cchText) LPSTR pszText, UINT cchText);
WINMMAPI
MMRESULT
WINAPI
midiInOpen(
_Out_ LPHMIDIIN phmi,
_In_ UINT uDeviceID,
_In_opt_ DWORD_PTR dwCallback,
_In_opt_ DWORD_PTR dwInstance,
_In_ DWORD fdwOpen
);
WINMMAPI
MMRESULT
WINAPI
midiInClose(
_In_ HMIDIIN hmi
);
WINMMAPI
MMRESULT
WINAPI
midiInPrepareHeader(
_In_ HMIDIIN hmi,
_Inout_updates_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiInUnprepareHeader(
_In_ HMIDIIN hmi,
_Inout_updates_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiInAddBuffer(
_In_ HMIDIIN hmi,
_Out_writes_bytes_(cbmh) LPMIDIHDR pmh,
_In_ UINT cbmh
);
WINMMAPI
MMRESULT
WINAPI
midiInStart(
_In_ HMIDIIN hmi
);
WINMMAPI
MMRESULT
WINAPI
midiInStop(
_In_ HMIDIIN hmi
);
WINMMAPI
MMRESULT
WINAPI
midiInReset(
_In_ HMIDIIN hmi
);
WINMMAPI
MMRESULT
WINAPI
midiInGetID(
_In_ HMIDIIN hmi,
_Out_ LPUINT puDeviceID
);
DWORD WINAPI midiInMessage(HMIDIIN hmi, UINT uMsg, DWORD dw1, DWORD dw2);
typedef struct auxcaps_tag {
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
WORD wTechnology;
DWORD dwSupport;
} AUXCAPS, *PAUXCAPS, NEAR *NPAUXCAPS, FAR *LPAUXCAPS;
WINMMAPI
UINT
WINAPI
auxGetNumDevs(
void
);
MMRESULT WINAPI auxGetDevCaps(UINT uDeviceID, LPAUXCAPS pac, UINT cbac);
WINMMAPI
MMRESULT
WINAPI
auxSetVolume(
_In_ UINT uDeviceID,
_In_ DWORD dwVolume
);
WINMMAPI
MMRESULT
WINAPI
auxGetVolume(
_In_ UINT uDeviceID,
_Out_ LPDWORD pdwVolume
);
DWORD WINAPI auxOutMessage(UINT uDeviceID, UINT uMsg, DWORD dw1, DWORD dw2);
DECLARE_HANDLE(HMIXEROBJ);
typedef HMIXEROBJ FAR *LPHMIXEROBJ;
DECLARE_HANDLE(HMIXER);
typedef HMIXER FAR *LPHMIXER;
WINMMAPI
UINT
WINAPI
mixerGetNumDevs(
void
);
typedef struct tMIXERCAPS {
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
DWORD fdwSupport;
DWORD cDestinations;
} MIXERCAPS, *PMIXERCAPS, FAR *LPMIXERCAPS;
MMRESULT WINAPI mixerGetDevCaps(UINT uMxId, LPMIXERCAPS pmxcaps, UINT cbmxcaps);
WINMMAPI
MMRESULT
WINAPI
mixerOpen(
_Out_opt_ LPHMIXER phmx,
_In_ UINT uMxId,
_In_opt_ DWORD_PTR dwCallback,
_In_opt_ DWORD_PTR dwInstance,
_In_ DWORD fdwOpen
);
WINMMAPI
MMRESULT
WINAPI
mixerClose(
_In_ HMIXER hmx
);
WINMMAPI
DWORD
WINAPI
mixerMessage(
_In_opt_ HMIXER hmx,
_In_ UINT uMsg,
_In_opt_ DWORD_PTR dwParam1,
_In_opt_ DWORD_PTR dwParam2
);
typedef struct tMIXERLINE {
DWORD cbStruct;
DWORD dwDestination;
DWORD dwSource;
DWORD dwLineID;
DWORD fdwLine;
DWORD dwUser;
DWORD dwComponentType;
DWORD cChannels;
DWORD cConnections;
DWORD cControls;
char szShortName[MIXER_SHORT_NAME_CHARS];
char szName[MIXER_LONG_NAME_CHARS];
struct {
DWORD dwType;
DWORD dwDeviceID;
WORD wMid;
WORD wPid;
VERSION vDriverVersion;
char szPname[MAXPNAMELEN];
} Target;
} MIXERLINE, *PMIXERLINE, FAR *LPMIXERLINE;
MMRESULT WINAPI mixerGetLineInfo(HMIXEROBJ hmxobj, LPMIXERLINE pmxl, DWORD fdwInfo);
WINMMAPI
MMRESULT
WINAPI
mixerGetID(
_In_opt_ HMIXEROBJ hmxobj,
_Out_ UINT FAR * puMxId,
_In_ DWORD fdwId
);
typedef struct tMIXERCONTROL {
DWORD cbStruct;
DWORD dwControlID;
DWORD dwControlType;
DWORD fdwControl;
DWORD cMultipleItems;
char szShortName[MIXER_SHORT_NAME_CHARS];
char szName[MIXER_LONG_NAME_CHARS];
union {
struct {
LONG lMinimum;
LONG lMaximum;
} DUMMYSTRUCTNAME;
struct {
DWORD dwMinimum;
DWORD dwMaximum;
} DUMMYSTRUCTNAME2;
DWORD dwReserved[6];
} Bounds;
union {
DWORD cSteps;
DWORD cbCustomData;
DWORD dwReserved[6];
} Metrics;
} MIXERCONTROL, *PMIXERCONTROL, FAR *LPMIXERCONTROL;
typedef struct tMIXERLINECONTROLS {
DWORD cbStruct;
DWORD dwLineID;
union {
DWORD dwControlID;
DWORD dwControlType;
};
DWORD cControls;
DWORD cbmxctrl;
LPMIXERCONTROL pamxctrl;
} MIXERLINECONTROLS, *PMIXERLINECONTROLS, FAR *LPMIXERLINECONTROLS;
MMRESULT WINAPI mixerGetLineControls(HMIXEROBJ hmxobj, LPMIXERLINECONTROLS pmxlc, DWORD fdwControls);
typedef struct tMIXERCONTROLDETAILS {
DWORD cbStruct;
DWORD dwControlID;
DWORD cChannels;
union {
HWND hwndOwner;
DWORD cMultipleItems;
} DUMMYUNIONNAME;
DWORD cbDetails;
LPVOID paDetails;
} MIXERCONTROLDETAILS, *PMIXERCONTROLDETAILS, FAR *LPMIXERCONTROLDETAILS;
typedef struct tMIXERCONTROLDETAILS_LISTTEXT {
DWORD dwParam1;
DWORD dwParam2;
char szName[MIXER_LONG_NAME_CHARS];
} MIXERCONTROLDETAILS_LISTTEXT, *PMIXERCONTROLDETAILS_LISTTEXT, FAR *LPMIXERCONTROLDETAILS_LISTTEXT;
typedef struct tMIXERCONTROLDETAILS_BOOLEAN {
LONG fValue;
} MIXERCONTROLDETAILS_BOOLEAN,
*PMIXERCONTROLDETAILS_BOOLEAN,
FAR *LPMIXERCONTROLDETAILS_BOOLEAN;
typedef struct tMIXERCONTROLDETAILS_SIGNED {
LONG lValue;
} MIXERCONTROLDETAILS_SIGNED,
*PMIXERCONTROLDETAILS_SIGNED,
FAR *LPMIXERCONTROLDETAILS_SIGNED;
typedef struct tMIXERCONTROLDETAILS_UNSIGNED {
DWORD dwValue;
} MIXERCONTROLDETAILS_UNSIGNED,
*PMIXERCONTROLDETAILS_UNSIGNED,
FAR *LPMIXERCONTROLDETAILS_UNSIGNED;
MMRESULT WINAPI mixerGetControlDetails(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
WINMMAPI
MMRESULT
WINAPI
mixerSetControlDetails(
_In_opt_ HMIXEROBJ hmxobj,
_In_ LPMIXERCONTROLDETAILS pmxcd,
_In_ DWORD fdwDetails
);
typedef struct timecaps_tag {
UINT wPeriodMin;
UINT wPeriodMax;
} TIMECAPS, *PTIMECAPS, NEAR *NPTIMECAPS, FAR *LPTIMECAPS;
WINMMAPI
MMRESULT
WINAPI
timeGetSystemTime(
_Out_writes_bytes_(cbmmt) LPMMTIME pmmt,
_In_ UINT cbmmt
);
WINMMAPI
DWORD
WINAPI
timeGetTime(
void
);
WINMMAPI
MMRESULT
WINAPI
timeGetDevCaps(
_Out_writes_bytes_(cbtc) LPTIMECAPS ptc,
_In_ UINT cbtc
);
WINMMAPI
MMRESULT
WINAPI
timeBeginPeriod(
_In_ UINT uPeriod
);
WINMMAPI
MMRESULT
WINAPI
timeEndPeriod(
_In_ UINT uPeriod
);
typedef struct joycaps_tag {
WORD wMid;
WORD wPid;
char szPname[MAXPNAMELEN];
UINT wXmin;
UINT wXmax;
UINT wYmin;
UINT wYmax;
UINT wZmin;
UINT wZmax;
UINT wNumButtons;
UINT wPeriodMin;
UINT wPeriodMax;
UINT wRmin;
UINT wRmax;
UINT wUmin;
UINT wUmax;
UINT wVmin;
UINT wVmax;
UINT wCaps;
UINT wMaxAxes;
UINT wNumAxes;
UINT wMaxButtons;
char szRegKey[MAXPNAMELEN];
char szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
} JOYCAPS, *PJOYCAPS, NEAR *NPJOYCAPS, FAR *LPJOYCAPS;
typedef struct joyinfo_tag {
UINT wXpos;
UINT wYpos;
UINT wZpos;
UINT wButtons;
} JOYINFO, *PJOYINFO, NEAR *NPJOYINFO, FAR *LPJOYINFO;
typedef struct joyinfoex_tag {
DWORD dwSize;
DWORD dwFlags;
DWORD dwXpos;
DWORD dwYpos;
DWORD dwZpos;
DWORD dwRpos;
DWORD dwUpos;
DWORD dwVpos;
DWORD dwButtons;
DWORD dwButtonNumber;
DWORD dwPOV;
DWORD dwReserved1;
DWORD dwReserved2;
} JOYINFOEX, *PJOYINFOEX, NEAR *NPJOYINFOEX, FAR *LPJOYINFOEX;
WINMMAPI
MMRESULT
WINAPI
joyGetPosEx(
_In_ UINT uJoyID,
_Out_ LPJOYINFOEX pji
);
WINMMAPI
UINT
WINAPI
joyGetNumDevs(
void
);
MMRESULT WINAPI joyGetDevCaps(UINT uJoyID, LPJOYCAPS pjc, UINT cbjc);
WINMMAPI
MMRESULT
WINAPI
joyGetPos(
_In_ UINT uJoyID,
_Out_ LPJOYINFO pji
);
WINMMAPI
MMRESULT
WINAPI
joyGetThreshold(
_In_ UINT uJoyID,
_Out_ LPUINT puThreshold
);
WINMMAPI
MMRESULT
WINAPI
joyReleaseCapture(
_In_ UINT uJoyID
);
WINMMAPI
MMRESULT
WINAPI
joySetCapture(
_In_ HWND hwnd,
_In_ UINT uJoyID,
_In_ UINT uPeriod,
_In_ BOOL fChanged
);
WINMMAPI
MMRESULT
WINAPI
joySetThreshold(
_In_ UINT uJoyID,
_In_ UINT uThreshold
);
WINMMAPI
MMRESULT
WINAPI
joyConfigChanged(
_In_ DWORD dwFlags
);
typedef struct _NCB {
UCHAR ncb_command;
UCHAR ncb_retcode;
UCHAR ncb_lsn;
UCHAR ncb_num;
PUCHAR ncb_buffer;
WORD ncb_length;
UCHAR ncb_callname[NCBNAMSZ];
UCHAR ncb_name[NCBNAMSZ];
UCHAR ncb_rto;
UCHAR ncb_sto;
void (CALLBACK *ncb_post)( struct _NCB * );
UCHAR ncb_lana_num;
UCHAR ncb_cmd_cplt;
UCHAR ncb_reserve[10];
HANDLE ncb_event;
} NCB, *PNCB;
typedef struct _ADAPTER_STATUS {
UCHAR adapter_address[6];
UCHAR rev_major;
UCHAR reserved0;
UCHAR adapter_type;
UCHAR rev_minor;
WORD duration;
WORD frmr_recv;
WORD frmr_xmit;
WORD iframe_recv_err;
WORD xmit_aborts;
DWORD xmit_success;
DWORD recv_success;
WORD iframe_xmit_err;
WORD recv_buff_unavail;
WORD t1_timeouts;
WORD ti_timeouts;
DWORD reserved1;
WORD free_ncbs;
WORD max_cfg_ncbs;
WORD max_ncbs;
WORD xmit_buf_unavail;
WORD max_dgram_size;
WORD pending_sess;
WORD max_cfg_sess;
WORD max_sess;
WORD max_sess_pkt_size;
WORD name_count;
} ADAPTER_STATUS, *PADAPTER_STATUS;
typedef struct _NAME_BUFFER {
UCHAR name[NCBNAMSZ];
UCHAR name_num;
UCHAR name_flags;
} NAME_BUFFER, *PNAME_BUFFER;
typedef struct _SESSION_HEADER {
UCHAR sess_name;
UCHAR num_sess;
UCHAR rcv_dg_outstanding;
UCHAR rcv_any_outstanding;
} SESSION_HEADER, *PSESSION_HEADER;
typedef struct _SESSION_BUFFER {
UCHAR lsn;
UCHAR state;
UCHAR local_name[NCBNAMSZ];
UCHAR remote_name[NCBNAMSZ];
UCHAR rcvs_outstanding;
UCHAR sends_outstanding;
} SESSION_BUFFER, *PSESSION_BUFFER;
typedef struct _LANA_ENUM {
UCHAR length;
UCHAR lana[MAX_LANA+1];
} LANA_ENUM, *PLANA_ENUM;
typedef struct _FIND_NAME_HEADER {
WORD node_count;
UCHAR reserved;
UCHAR unique_group;
} FIND_NAME_HEADER, *PFIND_NAME_HEADER;
typedef struct _FIND_NAME_BUFFER {
UCHAR length;
UCHAR access_control;
UCHAR frame_control;
UCHAR destination_addr[6];
UCHAR source_addr[6];
UCHAR routing_info[18];
} FIND_NAME_BUFFER, *PFIND_NAME_BUFFER;
typedef struct _ACTION_HEADER {
ULONG transport_id;
USHORT action_code;
USHORT reserved;
} ACTION_HEADER, *PACTION_HEADER;
UCHAR
APIENTRY
Netbios(
PNCB pncb
);
typedef void * I_RPC_HANDLE;
typedef _Return_type_success_(return == 0) long RPC_STATUS;
typedef _Null_terminated_ unsigned char __RPC_FAR * RPC_CSTR;
typedef _Null_terminated_ unsigned short __RPC_FAR * RPC_WSTR;
typedef _Null_terminated_ const unsigned short * RPC_CWSTR;
typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
typedef RPC_BINDING_HANDLE handle_t;
typedef GUID UUID;
typedef struct _RPC_BINDING_VECTOR
{
unsigned long Count;
_Field_size_(Count) RPC_BINDING_HANDLE BindingH[1];
} RPC_BINDING_VECTOR;
typedef struct _UUID_VECTOR
{
unsigned long Count;
_Field_size_(Count) UUID *Uuid[1];
} UUID_VECTOR;
typedef void __RPC_FAR * RPC_IF_HANDLE;
typedef struct _RPC_IF_ID
{
UUID Uuid;
unsigned short VersMajor;
unsigned short VersMinor;
} RPC_IF_ID;
typedef struct _RPC_PROTSEQ_VECTORA
{
unsigned int Count;
unsigned char __RPC_FAR * Protseq[1];
} RPC_PROTSEQ_VECTORA;
typedef struct _RPC_PROTSEQ_VECTORW
{
unsigned int Count;
unsigned short __RPC_FAR * Protseq[1];
} RPC_PROTSEQ_VECTORW;
typedef struct _RPC_POLICY {
unsigned int Length ;
unsigned long EndpointFlags ;
unsigned long NICFlags ;
} RPC_POLICY, __RPC_FAR *PRPC_POLICY ;
typedef void __RPC_USER
RPC_OBJECT_INQ_FN (
_In_ UUID __RPC_FAR * ObjectUuid,
_Out_ UUID __RPC_FAR * TypeUuid,
_Out_ RPC_STATUS __RPC_FAR * Status
);
_Success_(return == 0)
typedef RPC_STATUS RPC_ENTRY
RPC_IF_CALLBACK_FN (
_In_ RPC_IF_HANDLE InterfaceUuid,
_In_ void *Context
) ;
typedef void RPC_ENTRY
RPC_SECURITY_CALLBACK_FN (
_In_ void *Context
) ;
typedef struct
{
unsigned int Count;
unsigned long Stats[1];
} RPC_STATS_VECTOR;
typedef struct
{
unsigned long Count;
RPC_IF_ID __RPC_FAR * IfId[1];
} RPC_IF_ID_VECTOR;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingCopy (
_In_ RPC_BINDING_HANDLE SourceBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingFree (
_Inout_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingSetOption (
_In_ RPC_BINDING_HANDLE hBinding,
_In_ unsigned long option,
_In_ ULONG_PTR optionValue
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqOption (
_In_ RPC_BINDING_HANDLE hBinding,
_In_ unsigned long option,
_Out_ ULONG_PTR *pOptionValue
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingFromStringBindingA (
_In_ RPC_CSTR StringBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingFromStringBindingW (
_In_ RPC_WSTR StringBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcSsGetContextBinding (
_In_ void *ContextHandle,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqMaxCalls (
_In_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned int * MaxCalls
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqObject (
_In_ RPC_BINDING_HANDLE Binding,
_Out_ UUID __RPC_FAR * ObjectUuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingReset (
_In_ RPC_BINDING_HANDLE Binding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingSetObject (
_In_ RPC_BINDING_HANDLE Binding,
_In_ UUID __RPC_FAR * ObjectUuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtInqDefaultProtectLevel (
_In_ unsigned long AuthnSvc,
_Out_ unsigned long __RPC_FAR *AuthnLevel
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingToStringBindingA (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_CSTR __RPC_FAR * StringBinding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingToStringBindingW (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_WSTR __RPC_FAR * StringBinding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingVectorFree (
_Inout_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcStringBindingComposeA (
_In_opt_ RPC_CSTR ObjUuid,
_In_opt_ RPC_CSTR ProtSeq,
_In_opt_ RPC_CSTR NetworkAddr,
_In_opt_ RPC_CSTR Endpoint,
_In_opt_ RPC_CSTR Options,
_Outptr_opt_ RPC_CSTR __RPC_FAR * StringBinding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcStringBindingComposeW (
_In_opt_ RPC_WSTR ObjUuid,
_In_opt_ RPC_WSTR ProtSeq,
_In_opt_ RPC_WSTR NetworkAddr,
_In_opt_ RPC_WSTR Endpoint,
_In_opt_ RPC_WSTR Options,
_Outptr_opt_ RPC_WSTR __RPC_FAR * StringBinding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcStringBindingParseA (
_In_ RPC_CSTR StringBinding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ObjUuid,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Protseq,
_Outptr_opt_ RPC_CSTR __RPC_FAR * NetworkAddr,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Endpoint,
_Outptr_opt_ RPC_CSTR __RPC_FAR * NetworkOptions
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcStringBindingParseW (
_In_ RPC_WSTR StringBinding,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ObjUuid,
_Outptr_opt_ RPC_WSTR __RPC_FAR * Protseq,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NetworkAddr,
_Outptr_opt_ RPC_WSTR __RPC_FAR * Endpoint,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NetworkOptions
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcStringFreeA (
_Inout_ RPC_CSTR __RPC_FAR * String
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcStringFreeW (
_Inout_ RPC_WSTR __RPC_FAR * String
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcIfInqId (
_In_ RPC_IF_HANDLE RpcIfHandle,
_Out_ RPC_IF_ID __RPC_FAR * RpcIfId
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcNetworkIsProtseqValidA (
_In_ RPC_CSTR Protseq
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcNetworkIsProtseqValidW (
_In_ RPC_WSTR Protseq
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtInqComTimeout (
_In_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned int __RPC_FAR * Timeout
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtSetComTimeout (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned int Timeout
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtSetCancelTimeout(
_In_ long Timeout
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcNetworkInqProtseqsA (
_Outptr_ RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcNetworkInqProtseqsW (
_Outptr_ RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcObjectInqType (
_In_ UUID __RPC_FAR * ObjUuid,
_Out_opt_ OPTIONAL UUID __RPC_FAR * TypeUuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcObjectSetInqFn (
_In_ RPC_OBJECT_INQ_FN __RPC_FAR * InquiryFn
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcObjectSetType (
_In_ UUID __RPC_FAR * ObjUuid,
_In_opt_ OPTIONAL UUID __RPC_FAR * TypeUuid
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcProtseqVectorFreeA (
_Inout_ RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcProtseqVectorFreeW (
_Inout_ RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerInqBindings (
_Outptr_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerInqBindingsEx (
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_Outptr_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerInqIf (
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_Outptr_ RPC_MGR_EPV __RPC_FAR * __RPC_FAR * MgrEpv
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerListen (
_In_ unsigned int MinimumCallThreads,
_In_ unsigned int MaxCalls,
_In_ unsigned int DontWait
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerRegisterIf (
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV __RPC_FAR * MgrEpv
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerRegisterIfEx (
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV __RPC_FAR * MgrEpv,
_In_ unsigned int Flags,
_In_ unsigned int MaxCalls,
_In_opt_ RPC_IF_CALLBACK_FN __RPC_FAR *IfCallback
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerRegisterIf2 (
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV * MgrEpv,
_In_ unsigned int Flags,
_In_ unsigned int MaxCalls,
_In_ unsigned int MaxRpcSize,
_In_opt_ RPC_IF_CALLBACK_FN *IfCallbackFn
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerRegisterIf3 (
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV __RPC_FAR * MgrEpv,
_In_ unsigned int Flags,
_In_ unsigned int MaxCalls,
_In_ unsigned int MaxRpcSize,
_In_opt_ RPC_IF_CALLBACK_FN __RPC_FAR *IfCallback,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUnregisterIf (
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_ unsigned int WaitForCallsToComplete
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUnregisterIfEx (
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_ int RundownContextHandles
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseAllProtseqs (
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseAllProtseqsEx (
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseAllProtseqsIf (
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseAllProtseqsIfEx (
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqA (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqExA (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqW (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqExW (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEpA (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_CSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEpExA (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_CSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEpW (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_WSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEpExW (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_WSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqIfA (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqIfExA (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqIfW (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqIfExW (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
RPCRTAPI
void
RPC_ENTRY
RpcServerYield (
void
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcMgmtStatsVectorFree (
_Inout_ RPC_STATS_VECTOR ** StatsVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtInqStats (
_In_opt_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_STATS_VECTOR ** Statistics
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtIsServerListening (
_In_opt_ RPC_BINDING_HANDLE Binding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtStopServerListening (
_In_opt_ RPC_BINDING_HANDLE Binding
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtWaitServerListen (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtSetServerStackSize (
_In_ unsigned long ThreadStackSize
);
RPCRTAPI
void
RPC_ENTRY
RpcSsDontSerializeContext (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtEnableIdleCleanup (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtInqIfIds (
_In_opt_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcIfIdVectorFree (
_Inout_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtInqServerPrincNameA (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_CSTR __RPC_FAR * ServerPrincName
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtInqServerPrincNameW (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_WSTR __RPC_FAR * ServerPrincName
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerInqDefaultPrincNameA (
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_CSTR __RPC_FAR * PrincName
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerInqDefaultPrincNameW (
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_WSTR __RPC_FAR * PrincName
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcEpResolveBinding (
_In_ RPC_BINDING_HANDLE Binding,
_In_ RPC_IF_HANDLE IfSpec
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcNsBindingInqEntryNameA (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_Outptr_ RPC_CSTR __RPC_FAR * EntryName
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcNsBindingInqEntryNameW (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_Outptr_ RPC_WSTR __RPC_FAR * EntryName
);
typedef void __RPC_FAR * RPC_AUTH_IDENTITY_HANDLE;
typedef void __RPC_FAR * RPC_AUTHZ_HANDLE;
typedef struct _RPC_SECURITY_QOS {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
typedef struct _SEC_WINNT_AUTH_IDENTITY_W {
_Field_size_bytes_((UserLength+1)*sizeof(WCHAR)) unsigned short __RPC_FAR *User;
unsigned long UserLength;
_Field_size_bytes_((DomainLength+1)*sizeof(WCHAR)) unsigned short __RPC_FAR *Domain;
unsigned long DomainLength;
_Field_size_bytes_((PasswordLength+1)*sizeof(WCHAR)) unsigned short __RPC_FAR *Password;
unsigned long PasswordLength;
unsigned long Flags;
} SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W;
typedef struct _SEC_WINNT_AUTH_IDENTITY_A {
_Field_size_(UserLength+1) unsigned char __RPC_FAR *User;
unsigned long UserLength;
_Field_size_(DomainLength+1) unsigned char __RPC_FAR *Domain;
unsigned long DomainLength;
_Field_size_(PasswordLength+1) unsigned char __RPC_FAR *Password;
unsigned long PasswordLength;
unsigned long Flags;
} SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W
{
SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned short __RPC_FAR *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A
{
SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned char __RPC_FAR *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
{
SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
_Field_size_(NumberOfAuthnSchemes) unsigned long *AuthnSchemes;
unsigned short __RPC_FAR *ServerCertificateSubject;
SEC_WINNT_AUTH_IDENTITY_W *ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
_Field_size_(NumberOfProxyAuthnSchemes) unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
{
SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned char __RPC_FAR *ServerCertificateSubject;
SEC_WINNT_AUTH_IDENTITY_A *ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
{
RPC_AUTH_IDENTITY_HANDLE TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
_Field_size_(NumberOfAuthnSchemes) unsigned long *AuthnSchemes;
unsigned short __RPC_FAR *ServerCertificateSubject;
RPC_AUTH_IDENTITY_HANDLE ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
_Field_size_(NumberOfProxyAuthnSchemes) unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
{
RPC_AUTH_IDENTITY_HANDLE TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
_Field_size_(NumberOfAuthnSchemes) unsigned long *AuthnSchemes;
unsigned char __RPC_FAR *ServerCertificateSubject;
RPC_AUTH_IDENTITY_HANDLE ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
_Field_size_(NumberOfProxyAuthnSchemes) unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
typedef struct _RPC_SECURITY_QOS_V2_W {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
} u;
} RPC_SECURITY_QOS_V2_W, *PRPC_SECURITY_QOS_V2_W;
typedef struct _RPC_SECURITY_QOS_V2_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;
typedef struct _RPC_SECURITY_QOS_V3_W {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
} u;
void *Sid;
} RPC_SECURITY_QOS_V3_W, *PRPC_SECURITY_QOS_V3_W;
typedef struct _RPC_SECURITY_QOS_V3_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
void *Sid;
} RPC_SECURITY_QOS_V3_A, *PRPC_SECURITY_QOS_V3_A;
typedef struct _RPC_SECURITY_QOS_V4_W {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
} RPC_SECURITY_QOS_V4_W, *PRPC_SECURITY_QOS_V4_W;
typedef struct _RPC_SECURITY_QOS_V4_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
} RPC_SECURITY_QOS_V4_A, *PRPC_SECURITY_QOS_V4_A;
typedef struct _RPC_SECURITY_QOS_V5_W {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
void *ServerSecurityDescriptor;
} RPC_SECURITY_QOS_V5_W, *PRPC_SECURITY_QOS_V5_W;
typedef struct _RPC_SECURITY_QOS_V5_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
void *ServerSecurityDescriptor;
} RPC_SECURITY_QOS_V5_A, *PRPC_SECURITY_QOS_V5_A;
typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_W {
unsigned long Version;
unsigned long Flags;
unsigned long ProtocolSequence;
unsigned short *NetworkAddress;
unsigned short *StringEndpoint;
union
{
unsigned short *Reserved;
} u1;
UUID ObjectUuid;
} RPC_BINDING_HANDLE_TEMPLATE_V1_W, *PRPC_BINDING_HANDLE_TEMPLATE_V1_W;
typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_A {
unsigned long Version;
unsigned long Flags;
unsigned long ProtocolSequence;
unsigned char *NetworkAddress;
unsigned char *StringEndpoint;
union
{
unsigned char *Reserved;
} u1;
UUID ObjectUuid;
} RPC_BINDING_HANDLE_TEMPLATE_V1_A, *PRPC_BINDING_HANDLE_TEMPLATE_V1_A;
typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_W {
unsigned long Version;
unsigned short *ServerPrincName;
unsigned long AuthnLevel;
unsigned long AuthnSvc;
SEC_WINNT_AUTH_IDENTITY_W *AuthIdentity;
RPC_SECURITY_QOS *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_W, *PRPC_BINDING_HANDLE_SECURITY_V1_W;
typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
unsigned long Version;
unsigned char *ServerPrincName;
unsigned long AuthnLevel;
unsigned long AuthnSvc;
SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
RPC_SECURITY_QOS *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;
typedef struct _RPC_BINDING_HANDLE_OPTIONS_V1 {
unsigned long Version;
unsigned long Flags;
unsigned long ComTimeout;
unsigned long CallTimeout;
} RPC_BINDING_HANDLE_OPTIONS_V1, *PRPC_BINDING_HANDLE_OPTIONS_V1;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingCreateA (
_In_ RPC_BINDING_HANDLE_TEMPLATE_V1_A * Template,
_In_opt_ RPC_BINDING_HANDLE_SECURITY_V1_A * Security,
_In_opt_ RPC_BINDING_HANDLE_OPTIONS_V1 * Options,
_Out_ RPC_BINDING_HANDLE * Binding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingCreateW (
_In_ RPC_BINDING_HANDLE_TEMPLATE_V1_W * Template,
_In_opt_ RPC_BINDING_HANDLE_SECURITY_V1_W * Security,
_In_opt_ RPC_BINDING_HANDLE_OPTIONS_V1 * Options,
_Out_ RPC_BINDING_HANDLE * Binding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingGetTrainingContextHandle (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ void ** ContextHandle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInqBindingHandle (
_Out_ RPC_BINDING_HANDLE * Binding
);
typedef enum _RPC_HTTP_REDIRECTOR_STAGE
{
RPCHTTP_RS_REDIRECT = 1,
RPCHTTP_RS_ACCESS_1,
RPCHTTP_RS_SESSION,
RPCHTTP_RS_ACCESS_2,
RPCHTTP_RS_INTERFACE
} RPC_HTTP_REDIRECTOR_STAGE;
typedef RPC_STATUS
(__RPC_USER * RPC_NEW_HTTP_PROXY_CHANNEL) (
_In_ RPC_HTTP_REDIRECTOR_STAGE RedirectorStage,
_In_ RPC_WSTR ServerName,
_In_ RPC_WSTR ServerPort,
_In_opt_ RPC_WSTR RemoteUser,
_In_opt_ RPC_WSTR AuthType,
_Inout_ void __RPC_FAR * ResourceUuid,
_Inout_ void __RPC_FAR * SessionId,
_In_opt_ void __RPC_FAR * Interface,
_In_opt_ void __RPC_FAR * Reserved,
_In_ unsigned long Flags,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NewServerName,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NewServerPort
);
typedef void
(__RPC_USER * RPC_HTTP_PROXY_FREE_STRING) (
_In_ RPC_WSTR String
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcImpersonateClient (
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcImpersonateClient2 (
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcRevertToSelfEx (
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcRevertToSelf (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcImpersonateClientContainer (
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcRevertContainerImpersonation (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthClientA (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthClientW (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthClientExA (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long Flags
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthClientExW (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long Flags
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthInfoA (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthInfoW (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingSetAuthInfoA (
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingSetAuthInfoExA (
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc,
_In_opt_ RPC_SECURITY_QOS * SecurityQos
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingSetAuthInfoW (
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_WSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingSetAuthInfoExW (
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_WSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc,
_In_opt_ RPC_SECURITY_QOS * SecurityQOS
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthInfoExA (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long RpcQosVersion,
_Out_opt_ RPC_SECURITY_QOS *SecurityQOS
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthInfoExW (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long RpcQosVersion,
_Out_opt_ RPC_SECURITY_QOS * SecurityQOS
);
typedef void
(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) (
_In_ void __RPC_FAR * Arg,
_In_ RPC_WSTR ServerPrincName,
_In_ unsigned long KeyVer,
_Outptr_ void __RPC_FAR * __RPC_FAR * Key,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerCompleteSecurityCallback(
_In_ RPC_BINDING_HANDLE BindingHandle,
_In_ RPC_STATUS Status
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerRegisterAuthInfoA (
_In_opt_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
_In_opt_ void __RPC_FAR * Arg
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerRegisterAuthInfoW (
_In_opt_ RPC_WSTR ServerPrincName,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
_In_opt_ void __RPC_FAR * Arg
);
typedef struct {
unsigned char __RPC_FAR * UserName;
unsigned char __RPC_FAR * ComputerName;
unsigned short Privilege;
unsigned long AuthFlags;
} RPC_CLIENT_INFORMATION1, __RPC_FAR * PRPC_CLIENT_INFORMATION1;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcBindingServerFromClient (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * ServerBinding
);
RPCRTAPI
DECLSPEC_NORETURN
void
RPC_ENTRY
RpcRaiseException (
_In_ RPC_STATUS exception
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcTestCancel(
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcServerTestCancel (
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcCancelThread(
_In_ void * Thread
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcCancelThreadEx(
_In_ void * Thread,
_In_ long Timeout
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
UuidCreate (
_Out_ UUID __RPC_FAR * Uuid
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
UuidCreateSequential (
_Out_ UUID __RPC_FAR * Uuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
UuidToStringA (
_In_ const UUID __RPC_FAR * Uuid,
_Outptr_ RPC_CSTR __RPC_FAR * StringUuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
UuidFromStringA (
_In_opt_ RPC_CSTR StringUuid,
_Out_ UUID __RPC_FAR * Uuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
UuidToStringW (
_In_ const UUID __RPC_FAR * Uuid,
_Outptr_ RPC_WSTR __RPC_FAR * StringUuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
UuidFromStringW (
_In_opt_ RPC_WSTR StringUuid,
_Out_ UUID __RPC_FAR * Uuid
);
RPCRTAPI
signed int
RPC_ENTRY
UuidCompare (
_In_ UUID __RPC_FAR * Uuid1,
_In_ UUID __RPC_FAR * Uuid2,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
UuidCreateNil (
_Out_ UUID __RPC_FAR * NilUuid
);
RPCRTAPI
int
RPC_ENTRY
UuidEqual (
_In_ UUID __RPC_FAR * Uuid1,
_In_ UUID __RPC_FAR * Uuid2,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
unsigned short
RPC_ENTRY
UuidHash (
_In_ UUID __RPC_FAR * Uuid,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
int
RPC_ENTRY
UuidIsNil (
_In_ UUID __RPC_FAR * Uuid,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcEpRegisterNoReplaceA (
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_CSTR Annotation
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcEpRegisterNoReplaceW (
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_WSTR Annotation
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcEpRegisterA (
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_CSTR Annotation
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcEpRegisterW (
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_WSTR Annotation
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcEpUnregister(
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
DceErrorInqTextA (
_In_ RPC_STATUS RpcStatus,
_Out_writes_(DCE_C_ERROR_STRING_LEN) RPC_CSTR ErrorText
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
DceErrorInqTextW (
_In_ RPC_STATUS RpcStatus,
_Out_writes_(DCE_C_ERROR_STRING_LEN) RPC_WSTR ErrorText
);
typedef I_RPC_HANDLE * RPC_EP_INQ_HANDLE;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtEpEltInqBegin (
_In_opt_ OPTIONAL RPC_BINDING_HANDLE EpBinding,
_In_ unsigned long InquiryType,
_In_opt_ RPC_IF_ID __RPC_FAR * IfId,
_In_opt_ unsigned long VersOption,
_In_opt_ UUID __RPC_FAR * ObjectUuid,
_Out_ RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtEpEltInqDone (
_Inout_ RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtEpEltInqNextA (
_In_ RPC_EP_INQ_HANDLE InquiryContext,
_Out_ RPC_IF_ID __RPC_FAR * IfId,
_Out_opt_ RPC_BINDING_HANDLE __RPC_FAR * Binding,
_Out_opt_ UUID __RPC_FAR * ObjectUuid,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Annotation
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtEpEltInqNextW (
_In_ RPC_EP_INQ_HANDLE InquiryContext,
_Out_ RPC_IF_ID __RPC_FAR * IfId,
_Out_opt_ RPC_BINDING_HANDLE __RPC_FAR * Binding,
_Out_opt_ UUID __RPC_FAR * ObjectUuid,
_Outptr_opt_ RPC_WSTR __RPC_FAR * Annotation
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtEpUnregister (
_In_opt_ RPC_BINDING_HANDLE EpBinding,
_In_ RPC_IF_ID __RPC_FAR * IfId,
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ UUID __RPC_FAR * ObjectUuid
);
typedef int
(__RPC_API * RPC_MGMT_AUTHORIZATION_FN) (
_In_ RPC_BINDING_HANDLE ClientBinding,
_In_ unsigned long RequestedMgmtOperation,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcMgmtSetAuthorizationFn (
_In_ RPC_MGMT_AUTHORIZATION_FN AuthorizationFn
);
RPCRTAPI
int
RPC_ENTRY
RpcExceptionFilter (
_In_ unsigned long ExceptionCode
);
typedef void *RPC_INTERFACE_GROUP, **PRPC_INTERFACE_GROUP;
typedef struct
{
unsigned long Version;
RPC_WSTR ProtSeq;
RPC_WSTR Endpoint;
void * SecurityDescriptor;
unsigned long Backlog;
} RPC_ENDPOINT_TEMPLATEW, *PRPC_ENDPOINT_TEMPLATEW;
typedef struct
{
unsigned long Version;
RPC_CSTR ProtSeq;
RPC_CSTR Endpoint;
void * SecurityDescriptor;
unsigned long Backlog;
} RPC_ENDPOINT_TEMPLATEA, *PRPC_ENDPOINT_TEMPLATEA;
typedef struct
{
unsigned long Version;
RPC_IF_HANDLE IfSpec;
UUID * MgrTypeUuid;
RPC_MGR_EPV * MgrEpv;
unsigned int Flags;
unsigned int MaxCalls;
unsigned int MaxRpcSize;
RPC_IF_CALLBACK_FN *IfCallback;
UUID_VECTOR *UuidVector;
RPC_CSTR Annotation;
void * SecurityDescriptor;
} RPC_INTERFACE_TEMPLATEA, *PRPC_INTERFACE_TEMPLATEA;
typedef struct
{
unsigned long Version;
RPC_IF_HANDLE IfSpec;
UUID * MgrTypeUuid;
RPC_MGR_EPV * MgrEpv;
unsigned int Flags;
unsigned int MaxCalls;
unsigned int MaxRpcSize;
RPC_IF_CALLBACK_FN *IfCallback;
UUID_VECTOR *UuidVector;
RPC_WSTR Annotation;
void * SecurityDescriptor;
} RPC_INTERFACE_TEMPLATEW, *PRPC_INTERFACE_TEMPLATEW;
typedef void RPC_ENTRY
RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN (
_In_ RPC_INTERFACE_GROUP IfGroup,
_In_ void* IdleCallbackContext,
_In_ unsigned long IsGroupIdle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupCreateW (
_In_reads_(NumIfs) RPC_INTERFACE_TEMPLATEW *Interfaces,
_In_ unsigned long NumIfs,
_In_reads_(NumEndpoints) RPC_ENDPOINT_TEMPLATEW *Endpoints,
_In_ unsigned long NumEndpoints,
_In_ unsigned long IdlePeriod,
_In_ RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
_In_ void* IdleCallbackContext,
_Out_ PRPC_INTERFACE_GROUP IfGroup
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupCreateA (
_In_reads_(NumIfs) RPC_INTERFACE_TEMPLATEA *Interfaces,
_In_ unsigned long NumIfs,
_In_reads_(NumEndpoints) RPC_ENDPOINT_TEMPLATEA *Endpoints,
_In_ unsigned long NumEndpoints,
_In_ unsigned long IdlePeriod,
_In_ RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
_In_ void* IdleCallbackContext,
_Out_ PRPC_INTERFACE_GROUP IfGroup
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupClose (
_In_ RPC_INTERFACE_GROUP IfGroup
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupActivate (
_In_ RPC_INTERFACE_GROUP IfGroup
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupDeactivate (
_In_ RPC_INTERFACE_GROUP IfGroup,
_In_ unsigned long ForceDeactivation
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupInqBindings (
_In_ RPC_INTERFACE_GROUP IfGroup,
_Outptr_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
typedef struct _RPC_VERSION {
unsigned short MajorVersion;
unsigned short MinorVersion;
} RPC_VERSION;
typedef struct _RPC_SYNTAX_IDENTIFIER {
GUID SyntaxGUID;
RPC_VERSION SyntaxVersion;
} RPC_SYNTAX_IDENTIFIER, __RPC_FAR * PRPC_SYNTAX_IDENTIFIER;
typedef struct _RPC_MESSAGE
{
RPC_BINDING_HANDLE Handle;
unsigned long DataRepresentation;
void __RPC_FAR * Buffer;
unsigned int BufferLength;
unsigned int ProcNum;
PRPC_SYNTAX_IDENTIFIER TransferSyntax;
void __RPC_FAR * RpcInterfaceInformation;
void __RPC_FAR * ReservedForRuntime;
RPC_MGR_EPV __RPC_FAR * ManagerEpv;
void __RPC_FAR * ImportContext;
unsigned long RpcFlags;
} RPC_MESSAGE, __RPC_FAR * PRPC_MESSAGE;
typedef RPC_STATUS
RPC_ENTRY RPC_FORWARD_FUNCTION(
IN UUID __RPC_FAR * InterfaceId,
IN RPC_VERSION __RPC_FAR * InterfaceVersion,
IN UUID __RPC_FAR * ObjectId,
IN unsigned char __RPC_FAR * Rpcpro,
IN void __RPC_FAR * __RPC_FAR * ppDestEndpoint);
enum RPC_ADDRESS_CHANGE_TYPE
{
PROTOCOL_NOT_LOADED = 1,
PROTOCOL_LOADED,
PROTOCOL_ADDRESS_CHANGE
};
typedef void
RPC_ENTRY RPC_ADDRESS_CHANGE_FN(
IN void * arg
);
typedef
void
(__RPC_STUB __RPC_FAR * RPC_DISPATCH_FUNCTION) (
IN OUT PRPC_MESSAGE Message
);
typedef struct {
unsigned int DispatchTableCount;
RPC_DISPATCH_FUNCTION __RPC_FAR * DispatchTable;
LONG_PTR Reserved;
} RPC_DISPATCH_TABLE, __RPC_FAR * PRPC_DISPATCH_TABLE;
typedef struct _RPC_PROTSEQ_ENDPOINT
{
unsigned char __RPC_FAR * RpcProtocolSequence;
unsigned char __RPC_FAR * Endpoint;
} RPC_PROTSEQ_ENDPOINT, __RPC_FAR * PRPC_PROTSEQ_ENDPOINT;
typedef struct _RPC_SERVER_INTERFACE
{
unsigned int Length;
RPC_SYNTAX_IDENTIFIER InterfaceId;
RPC_SYNTAX_IDENTIFIER TransferSyntax;
PRPC_DISPATCH_TABLE DispatchTable;
unsigned int RpcProtseqEndpointCount;
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
RPC_MGR_EPV __RPC_FAR *DefaultManagerEpv;
void const __RPC_FAR *InterpreterInfo;
unsigned int Flags ;
} RPC_SERVER_INTERFACE, __RPC_FAR * PRPC_SERVER_INTERFACE;
typedef struct _RPC_CLIENT_INTERFACE
{
unsigned int Length;
RPC_SYNTAX_IDENTIFIER InterfaceId;
RPC_SYNTAX_IDENTIFIER TransferSyntax;
PRPC_DISPATCH_TABLE DispatchTable;
unsigned int RpcProtseqEndpointCount;
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
ULONG_PTR Reserved;
void const __RPC_FAR * InterpreterInfo;
unsigned int Flags ;
} RPC_CLIENT_INTERFACE, __RPC_FAR * PRPC_CLIENT_INTERFACE;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcNegotiateTransferSyntax (
IN OUT RPC_MESSAGE __RPC_FAR * Message
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcGetBuffer (
IN OUT RPC_MESSAGE __RPC_FAR * Message
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcGetBufferWithObject (
IN OUT RPC_MESSAGE __RPC_FAR * Message,
IN UUID * ObjectUuid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcSendReceive (
IN OUT RPC_MESSAGE __RPC_FAR * Message
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcFreeBuffer (
IN OUT RPC_MESSAGE __RPC_FAR * Message
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcSend (
IN OUT PRPC_MESSAGE Message
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcReceive (
IN OUT PRPC_MESSAGE Message,
IN unsigned int Size
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcFreePipeBuffer (
IN OUT RPC_MESSAGE __RPC_FAR * Message
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcReallocPipeBuffer (
_In_ PRPC_MESSAGE Message,
unsigned int NewSize
);
typedef void * I_RPC_MUTEX;
RPCRTAPI
void
RPC_ENTRY
I_RpcRequestMutex (
IN OUT I_RPC_MUTEX * Mutex
);
RPCRTAPI
void
RPC_ENTRY
I_RpcClearMutex (
IN I_RPC_MUTEX Mutex
);
RPCRTAPI
void
RPC_ENTRY
I_RpcDeleteMutex (
IN I_RPC_MUTEX Mutex
);
RPCRTAPI
void __RPC_FAR *
RPC_ENTRY
I_RpcAllocate (
IN unsigned int Size
);
RPCRTAPI
void
RPC_ENTRY
I_RpcFree (
IN void __RPC_FAR * Object
);
RPCRTAPI
unsigned long
RPC_ENTRY
I_RpcFreeSystemHandleCollection (
_Inout_ void * CallObj,
_In_ unsigned long FreeFlags
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcSetSystemHandle (
_In_ void * Handle,
_In_ unsigned char Type,
_In_ unsigned long AccessMask,
_Inout_ void * CallObj,
_Out_ unsigned long * HandleIndex
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcGetSystemHandle (
_Out_writes_bytes_(sizeof(HANDLE)) unsigned char* pMemory,
_In_ unsigned char Type,
_In_ unsigned long AccessMask,
_In_ unsigned long HandleIndex,
_Inout_ void * CallObj
);
RPCRTAPI
void
RPC_ENTRY
I_RpcFreeSystemHandle (
_In_ unsigned char Type,
_In_ void * Handle
);
RPCRTAPI
void
RPC_ENTRY
I_RpcPauseExecution (
IN unsigned long Milliseconds
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcGetExtendedError (
void
);
typedef enum _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION
{
MarshalDirectionMarshal,
MarshalDirectionUnmarshal
}LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcSystemHandleTypeSpecificWork (
_Inout_ void * Handle,
_In_ unsigned char ActualType,
_In_ unsigned char IdlType,
_In_ LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION MarshalDirection
);
typedef
void
(__RPC_USER __RPC_FAR * PRPC_RUNDOWN) (
void __RPC_FAR * AssociationContext
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcMonitorAssociation (
IN RPC_BINDING_HANDLE Handle,
IN PRPC_RUNDOWN RundownRoutine,
IN void * Context
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcStopMonitorAssociation (
IN RPC_BINDING_HANDLE Handle
);
RPCRTAPI
RPC_BINDING_HANDLE
RPC_ENTRY
I_RpcGetCurrentCallHandle(
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcGetAssociationContext (
IN RPC_BINDING_HANDLE BindingHandle,
OUT void __RPC_FAR * __RPC_FAR * AssociationContext
);
RPCRTAPI
void *
RPC_ENTRY
I_RpcGetServerContextList (
IN RPC_BINDING_HANDLE BindingHandle
);
RPCRTAPI
void
RPC_ENTRY
I_RpcSetServerContextList (
IN RPC_BINDING_HANDLE BindingHandle,
OUT void * ServerContextList
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcNsInterfaceExported (
IN unsigned long EntryNameSyntax,
IN unsigned short *EntryName,
IN RPC_SERVER_INTERFACE * RpcInterfaceInformation
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcNsInterfaceUnexported (
IN unsigned long EntryNameSyntax,
IN unsigned short *EntryName,
IN RPC_SERVER_INTERFACE * RpcInterfaceInformation
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingToStaticStringBindingW (
IN RPC_BINDING_HANDLE Binding,
OUT unsigned short **StringBinding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqSecurityContext (
IN RPC_BINDING_HANDLE Binding,
OUT void **SecurityContextHandle
);
typedef struct _RPC_SEC_CONTEXT_KEY_INFO
{
unsigned long EncryptAlgorithm;
unsigned long KeySize;
unsigned long SignatureAlgorithm;
}
RPC_SEC_CONTEXT_KEY_INFO, *PRPC_SEC_CONTEXT_KEY_INFO;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqSecurityContextKeyInfo (
_In_opt_ RPC_BINDING_HANDLE Binding,
_Inout_ void *KeyInfo
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqWireIdForSnego (
_In_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned char * WireId
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqMarshalledTargetInfo (
_In_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned long * MarshalledTargetInfoSize,
_Outptr_result_bytebuffer_(* MarshalledTargetInfoSize) RPC_CSTR * MarshalledTargetInfo
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqLocalClientPID (
IN RPC_BINDING_HANDLE Binding,
OUT unsigned long *Pid
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingHandleToAsyncHandle (
IN RPC_BINDING_HANDLE Binding,
OUT void **AsyncHandle
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcNsBindingSetEntryNameW (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcNsBindingSetEntryNameA (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerUseProtseqEp2A (
_In_opt_ RPC_CSTR NetworkAddress,
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_CSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ void * Policy
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerUseProtseqEp2W (
_In_opt_ RPC_WSTR NetworkAddress,
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_WSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ void * Policy
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerUseProtseq2W (
_In_opt_ RPC_WSTR NetworkAddress,
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ void * Policy
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerUseProtseq2A (
_In_opt_ RPC_CSTR NetworkAddress,
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ void * Policy
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerStartService (
_In_ RPC_WSTR Protseq,
_In_ RPC_WSTR Endpoint,
_In_ RPC_IF_HANDLE IfSpec
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqDynamicEndpointW (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_result_maybenull_ RPC_WSTR __RPC_FAR *DynamicEndpoint
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqDynamicEndpointA (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_result_maybenull_ RPC_CSTR __RPC_FAR *DynamicEndpoint
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerCheckClientRestriction (
IN RPC_BINDING_HANDLE Context
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqTransportType (
IN RPC_BINDING_HANDLE Binding,
OUT unsigned int __RPC_FAR * Type
);
typedef struct _RPC_TRANSFER_SYNTAX
{
UUID Uuid;
unsigned short VersMajor;
unsigned short VersMinor;
} RPC_TRANSFER_SYNTAX;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcIfInqTransferSyntaxes (
IN RPC_IF_HANDLE RpcIfHandle,
OUT RPC_TRANSFER_SYNTAX __RPC_FAR * TransferSyntaxes,
IN unsigned int TransferSyntaxSize,
OUT unsigned int __RPC_FAR * TransferSyntaxCount
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_UuidCreate (
OUT UUID __RPC_FAR * Uuid
);
RPCRTAPI
void
RPC_ENTRY
I_RpcUninitializeNdrOle (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcBindingCopy (
IN RPC_BINDING_HANDLE SourceBinding,
OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingIsClientLocal (
IN OPTIONAL RPC_BINDING_HANDLE BindingHandle,
OUT unsigned int __RPC_FAR * ClientLocalFlag
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqConnId (
IN RPC_BINDING_HANDLE Binding,
OUT void **ConnId,
OUT int *pfFirstCall
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingCreateNP (
_In_ RPC_WSTR ServerName,
_In_ RPC_WSTR ServiceName,
_In_ RPC_WSTR NetworkOptions,
_Out_ RPC_BINDING_HANDLE *Binding
);
RPCRTAPI
void
RPC_ENTRY
I_RpcSsDontSerializeContext (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcLaunchDatagramReceiveThread(
void __RPC_FAR * pAddress
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcServerRegisterForwardFunction (
IN RPC_FORWARD_FUNCTION * pForwardFunction
);
RPC_ADDRESS_CHANGE_FN * RPC_ENTRY
I_RpcServerInqAddressChangeFn(
void
);
RPC_STATUS RPC_ENTRY
I_RpcServerSetAddressChangeFn(
IN RPC_ADDRESS_CHANGE_FN * pAddressChangeFn
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerInqLocalConnAddress (
IN RPC_BINDING_HANDLE Binding,
IN OUT void *Buffer,
IN OUT unsigned long *BufferSize,
OUT unsigned long *AddressFormat
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerInqRemoteConnAddress (
IN RPC_BINDING_HANDLE Binding,
IN OUT void *Buffer,
IN OUT unsigned long *BufferSize,
OUT unsigned long *AddressFormat
);
RPCRTAPI
void
RPC_ENTRY
I_RpcSessionStrictContextHandle (
void
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcTurnOnEEInfoPropagation (
void
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcConnectionInqSockBuffSize(
OUT unsigned long __RPC_FAR * RecvBuffSize,
OUT unsigned long __RPC_FAR * SendBuffSize
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcConnectionSetSockBuffSize(
IN unsigned long RecvBuffSize,
IN unsigned long SendBuffSize
);
typedef
void
(*RPCLT_PDU_FILTER_FUNC) (
IN void *Buffer,
IN unsigned int BufferLength,
IN int fDatagram
);
typedef
void
(__cdecl *RPC_SETFILTER_FUNC) (
IN RPCLT_PDU_FILTER_FUNC pfnFilter
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcServerStartListening(
void * hWnd
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcServerStopListening(
void
);
typedef RPC_STATUS (*RPC_BLOCKING_FN) (
IN void * hWnd,
IN void * Context,
IN OPTIONAL void * hSyncEvent
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcBindingSetAsync(
IN RPC_BINDING_HANDLE Binding,
IN RPC_BLOCKING_FN BlockingFn,
IN unsigned long ServerTid
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcSetThreadParams(
IN int fClientFree,
IN OPTIONAL void *Context,
IN OPTIONAL void * hWndClient
);
RPCRTAPI
unsigned int
RPC_ENTRY
I_RpcWindowProc(
IN void * hWnd,
IN unsigned int Message,
IN unsigned int wParam,
IN unsigned long lParam
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcServerUnregisterEndpointA (
_In_ RPC_CSTR Protseq,
_In_ RPC_CSTR Endpoint
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
I_RpcServerUnregisterEndpointW (
_In_ RPC_WSTR Protseq,
_In_ RPC_WSTR Endpoint
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcServerInqTransportType(
OUT unsigned int __RPC_FAR * Type
);
RPCRTAPI
long
RPC_ENTRY
I_RpcMapWin32Status (
IN RPC_STATUS Status
);
typedef struct _RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR
{
unsigned long BufferSize;
_Field_size_bytes_(BufferSize) char *Buffer;
} RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR;
typedef struct _RDR_CALLOUT_STATE
{
RPC_STATUS LastError;
void *LastEEInfo;
RPC_HTTP_REDIRECTOR_STAGE LastCalledStage;
unsigned short *ServerName;
unsigned short *ServerPort;
unsigned short *RemoteUser;
unsigned short *AuthType;
unsigned char ResourceTypePresent;
unsigned char SessionIdPresent;
unsigned char InterfacePresent;
UUID ResourceType;
UUID SessionId;
RPC_SYNTAX_IDENTIFIER Interface;
void *CertContext;
} RDR_CALLOUT_STATE;
typedef RPC_STATUS
(RPC_ENTRY *I_RpcProxyIsValidMachineFn)
(
_In_ RPC_WSTR Machine,
_In_ RPC_WSTR DotMachine,
_In_ unsigned long PortNumber
);
typedef RPC_STATUS
(RPC_ENTRY *I_RpcProxyGetClientAddressFn)
(
IN void *Context,
OUT char *Buffer,
OUT unsigned long *BufferLength
);
typedef RPC_STATUS
(RPC_ENTRY *I_RpcProxyGetConnectionTimeoutFn)
(
OUT unsigned long *ConnectionTimeout
);
typedef RPC_STATUS
(RPC_ENTRY *I_RpcPerformCalloutFn)
(
IN void *Context,
IN RDR_CALLOUT_STATE *CallOutState,
IN RPC_HTTP_REDIRECTOR_STAGE Stage
);
typedef void
(RPC_ENTRY *I_RpcFreeCalloutStateFn)
(
IN RDR_CALLOUT_STATE *CallOutState
);
typedef RPC_STATUS
(RPC_ENTRY *I_RpcProxyGetClientSessionAndResourceUUID)
(
_In_ void *Context,
_Out_opt_ int *SessionIdPresent,
_Out_opt_ UUID *SessionId,
_Out_ int *ResourceIdPresent,
_Out_ UUID *ResourceId
);
typedef RPC_STATUS
(RPC_ENTRY *I_RpcProxyFilterIfFn)
(
_In_ void *Context,
_In_ UUID *IfUuid,
_In_ unsigned short IfMajorVersion,
_Out_ int *fAllow
);
typedef enum RpcProxyPerfCounters
{
RpcCurrentUniqueUser = 1,
RpcBackEndConnectionAttempts,
RpcBackEndConnectionFailed,
RpcRequestsPerSecond,
RpcIncomingConnections,
RpcIncomingBandwidth,
RpcOutgoingBandwidth,
RpcAttemptedLbsDecisions,
RpcFailedLbsDecisions,
RpcAttemptedLbsMessages,
RpcFailedLbsMessages,
RpcLastCounter
} RpcPerfCounters;
typedef void
(RPC_ENTRY *I_RpcProxyUpdatePerfCounterFn)
(
_In_ RpcPerfCounters Counter,
_In_ int ModifyTrend,
_In_ unsigned long Size
);
typedef void
(RPC_ENTRY *I_RpcProxyUpdatePerfCounterBackendServerFn)
(
_In_ unsigned short* MachineName,
_In_ int IsConnectEvent
);
typedef struct tagI_RpcProxyCallbackInterface
{
I_RpcProxyIsValidMachineFn IsValidMachineFn;
I_RpcProxyGetClientAddressFn GetClientAddressFn;
I_RpcProxyGetConnectionTimeoutFn GetConnectionTimeoutFn;
I_RpcPerformCalloutFn PerformCalloutFn;
I_RpcFreeCalloutStateFn FreeCalloutStateFn;
I_RpcProxyGetClientSessionAndResourceUUID GetClientSessionAndResourceUUIDFn;
I_RpcProxyFilterIfFn ProxyFilterIfFn;
I_RpcProxyUpdatePerfCounterFn RpcProxyUpdatePerfCounterFn;
I_RpcProxyUpdatePerfCounterBackendServerFn RpcProxyUpdatePerfCounterBackendServerFn;
} I_RpcProxyCallbackInterface;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcProxyNewConnection (
IN unsigned long ConnectionType,
IN unsigned short *ServerAddress,
IN unsigned short *ServerPort,
IN unsigned short *MinConnTimeout,
IN void *ConnectionParameter,
IN OPTIONAL RDR_CALLOUT_STATE *CallOutState,
IN I_RpcProxyCallbackInterface *ProxyCallbackInterface
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcReplyToClientWithStatus (
IN void *ConnectionParameter,
IN RPC_STATUS RpcStatus
);
RPCRTAPI
void
RPC_ENTRY
I_RpcRecordCalloutFailure (
IN RPC_STATUS RpcStatus,
IN RDR_CALLOUT_STATE *CallOutState,
IN unsigned short *DllName
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcMgmtEnableDedicatedThreadPool (
void
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcGetDefaultSD(
_Out_ void __RPC_FAR ** ppSecurityDescriptor
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcOpenClientProcess(
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long DesiredAccess,
_Outptr_ void** ClientProcess
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingIsServerLocal(
_In_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned int * ServerLocalFlag
);
RPC_STATUS RPC_ENTRY
I_RpcBindingSetPrivateOption (
_In_ RPC_BINDING_HANDLE hBinding,
_In_ unsigned long option,
_In_ ULONG_PTR optionValue
);
RPC_STATUS
RPC_ENTRY
I_RpcServerSubscribeForDisconnectNotification (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_opt_ void *hEvent
);
RPC_STATUS
RPC_ENTRY
I_RpcServerGetAssociationID (
_In_opt_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned long *AssociationID
);
RPCRTAPI
long
RPC_ENTRY
I_RpcServerDisableExceptionFilter (
void
);
RPC_STATUS
RPC_ENTRY
I_RpcServerSubscribeForDisconnectNotification2 (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ void *hEvent,
_Out_ UUID *SubscriptionId
);
RPC_STATUS
RPC_ENTRY
I_RpcServerUnsubscribeForDisconnectNotification (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ UUID SubscriptionId
);
typedef void __RPC_FAR * RPC_NS_HANDLE;
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingExportA(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ RPC_BINDING_VECTOR __RPC_FAR *BindingVec,
_In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingUnexportA(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingExportW(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ RPC_BINDING_VECTOR __RPC_FAR *BindingVec,
_In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingUnexportW(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec
);
RPC_STATUS RPC_ENTRY
RpcNsBindingExportPnPA(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID_VECTOR *ObjectVector
);
RPC_STATUS RPC_ENTRY
RpcNsBindingUnexportPnPA(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID_VECTOR *ObjectVector
);
RPC_STATUS RPC_ENTRY
RpcNsBindingExportPnPW(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID_VECTOR *ObjectVector
);
RPC_STATUS RPC_ENTRY
RpcNsBindingUnexportPnPW(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID_VECTOR *ObjectVector
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingLookupBeginA(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR *ObjUuid,
_In_ unsigned long BindingMaxCount,
_Out_ RPC_NS_HANDLE __RPC_FAR *LookupContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingLookupBeginW(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR *ObjUuid,
_In_ unsigned long BindingMaxCount,
_Out_ RPC_NS_HANDLE __RPC_FAR *LookupContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingLookupNext(
IN RPC_NS_HANDLE LookupContext,
OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingLookupDone(
IN OUT RPC_NS_HANDLE __RPC_FAR * LookupContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupDeleteA(
_In_ unsigned long GroupNameSyntax,
_In_opt_ RPC_CSTR GroupName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrAddA(
_In_ unsigned long GroupNameSyntax,
_In_ RPC_CSTR GroupName,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_CSTR MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrRemoveA(
_In_ unsigned long GroupNameSyntax,
_In_ RPC_CSTR GroupName,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_CSTR MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrInqBeginA(
_In_ unsigned long GroupNameSyntax,
_In_ RPC_CSTR GroupName,
_In_ unsigned long MemberNameSyntax,
_Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrInqNextA(
_Inout_ RPC_NS_HANDLE InquiryContext,
_Outptr_ RPC_CSTR __RPC_FAR *MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupDeleteW(
_In_ unsigned long GroupNameSyntax,
_In_opt_ RPC_WSTR GroupName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrAddW(
_In_ unsigned long GroupNameSyntax,
_In_ RPC_WSTR GroupName,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_WSTR MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrRemoveW(
_In_ unsigned long GroupNameSyntax,
_In_ RPC_WSTR GroupName,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_WSTR MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrInqBeginW(
_In_ unsigned long GroupNameSyntax,
_In_ RPC_WSTR GroupName,
_In_ unsigned long MemberNameSyntax,
_Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrInqNextW(
_Inout_ RPC_NS_HANDLE InquiryContext,
_Outptr_ RPC_WSTR __RPC_FAR *MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsGroupMbrInqDone(
IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileDeleteA(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_CSTR ProfileName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltAddA(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_CSTR ProfileName,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_CSTR MemberName,
_In_ unsigned long Priority,
_In_opt_ RPC_CSTR Annotation
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltRemoveA(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_CSTR ProfileName,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_CSTR MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltInqBeginA(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_CSTR ProfileName,
_In_ unsigned long InquiryType,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long VersOption,
_In_ unsigned long MemberNameSyntax,
_In_opt_ RPC_CSTR MemberName,
_Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltInqNextA(
_In_ RPC_NS_HANDLE InquiryContext,
_Out_opt_ RPC_IF_ID __RPC_FAR *IfId,
_Out_ RPC_CSTR __RPC_FAR *MemberName,
_Out_ unsigned long __RPC_FAR *Priority,
_Out_ RPC_CSTR __RPC_FAR *Annotation
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileDeleteW(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_WSTR ProfileName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltAddW(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_WSTR ProfileName,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_WSTR MemberName,
_In_ unsigned long Priority,
_In_opt_ RPC_WSTR Annotation
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltRemoveW(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_WSTR ProfileName,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long MemberNameSyntax,
_In_ RPC_WSTR MemberName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltInqBeginW(
_In_ unsigned long ProfileNameSyntax,
_In_ RPC_WSTR ProfileName,
_In_ unsigned long InquiryType,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long VersOption,
_In_ unsigned long MemberNameSyntax,
_In_opt_ RPC_WSTR MemberName,
_Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltInqNextW(
_In_ RPC_NS_HANDLE InquiryContext,
_Out_opt_ RPC_IF_ID __RPC_FAR *IfId,
_Out_ RPC_WSTR __RPC_FAR *MemberName,
_Out_ unsigned long __RPC_FAR *Priority,
_Out_ RPC_WSTR __RPC_FAR *Annotation
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsProfileEltInqDone(
IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsEntryObjectInqBeginA(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName,
_Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsEntryObjectInqBeginW(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName,
_Out_ RPC_NS_HANDLE __RPC_FAR *InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsEntryObjectInqNext(
IN RPC_NS_HANDLE InquiryContext,
OUT UUID __RPC_FAR * ObjUuid
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsEntryObjectInqDone(
IN OUT RPC_NS_HANDLE __RPC_FAR * InquiryContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsEntryExpandNameA(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName,
_Out_ RPC_CSTR __RPC_FAR *ExpandedName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtBindingUnexportA(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long VersOption,
_In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtEntryCreateA(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtEntryDeleteA(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtEntryInqIfIdsA(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_CSTR EntryName,
_Out_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR *IfIdVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtHandleSetExpAge(
IN RPC_NS_HANDLE NsHandle,
IN unsigned long ExpirationAge
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtInqExpAge(
OUT unsigned long __RPC_FAR * ExpirationAge
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtSetExpAge(
IN unsigned long ExpirationAge
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsEntryExpandNameW(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName,
_Out_ RPC_WSTR __RPC_FAR *ExpandedName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtBindingUnexportW(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_ID __RPC_FAR *IfId,
_In_ unsigned long VersOption,
_In_opt_ UUID_VECTOR __RPC_FAR *ObjectUuidVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtEntryCreateW(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtEntryDeleteW(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsMgmtEntryInqIfIdsW(
_In_ unsigned long EntryNameSyntax,
_In_ RPC_WSTR EntryName,
_Out_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR *IfIdVec
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingImportBeginA(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_CSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR *ObjUuid,
_Out_ RPC_NS_HANDLE __RPC_FAR *ImportContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingImportBeginW(
_In_ unsigned long EntryNameSyntax,
_In_opt_ RPC_WSTR EntryName,
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR *ObjUuid,
_Out_ RPC_NS_HANDLE __RPC_FAR *ImportContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingImportNext(
IN RPC_NS_HANDLE ImportContext,
OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingImportDone(
IN OUT RPC_NS_HANDLE __RPC_FAR * ImportContext
);
RPCNSAPI RPC_STATUS RPC_ENTRY
RpcNsBindingSelect(
IN OUT RPC_BINDING_VECTOR __RPC_FAR * BindingVec,
OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
);
typedef
enum _RPC_NOTIFICATION_TYPES
{
RpcNotificationTypeNone,
RpcNotificationTypeEvent,
RpcNotificationTypeApc,
RpcNotificationTypeIoc,
RpcNotificationTypeHwnd,
RpcNotificationTypeCallback
} RPC_NOTIFICATION_TYPES;
typedef
enum _RPC_ASYNC_EVENT {
RpcCallComplete,
RpcSendComplete,
RpcReceiveComplete,
RpcClientDisconnect,
RpcClientCancel
} RPC_ASYNC_EVENT;
struct _RPC_ASYNC_STATE;
typedef void RPC_ENTRY
RPCNOTIFICATION_ROUTINE (
struct _RPC_ASYNC_STATE *pAsync,
void *Context,
RPC_ASYNC_EVENT Event);
typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE;
typedef union _RPC_ASYNC_NOTIFICATION_INFO {
struct {
PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
HANDLE hThread;
} APC;
struct {
HANDLE hIOPort;
DWORD dwNumberOfBytesTransferred;
DWORD_PTR dwCompletionKey;
LPOVERLAPPED lpOverlapped;
} IOC;
struct {
HWND hWnd;
UINT Msg;
} HWND;
HANDLE hEvent;
PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;
typedef struct _RPC_ASYNC_STATE {
unsigned int Size;
unsigned long Signature;
long Lock;
unsigned long Flags;
void *StubInfo;
void *UserInfo;
void *RuntimeInfo;
RPC_ASYNC_EVENT Event;
RPC_NOTIFICATION_TYPES NotificationType;
RPC_ASYNC_NOTIFICATION_INFO u;
LONG_PTR Reserved[4];
} RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcAsyncRegisterInfo (
_In_ PRPC_ASYNC_STATE pAsync
) ;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcAsyncInitializeHandle (
_Out_writes_bytes_(Size) PRPC_ASYNC_STATE pAsync,
_In_ unsigned int Size
);
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcAsyncGetCallStatus (
_In_ PRPC_ASYNC_STATE pAsync
) ;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcAsyncCompleteCall (
_Inout_ PRPC_ASYNC_STATE pAsync,
_Out_opt_ void *Reply
) ;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcAsyncAbortCall (
_Inout_ PRPC_ASYNC_STATE pAsync,
_In_ unsigned long ExceptionCode
) ;
RPCRTAPI
_Must_inspect_result_
RPC_STATUS
RPC_ENTRY
RpcAsyncCancelCall (
_Inout_ PRPC_ASYNC_STATE pAsync,
_In_ BOOL fAbort
) ;
typedef enum tagExtendedErrorParamTypes
{
eeptAnsiString = 1,
eeptUnicodeString,
eeptLongVal,
eeptShortVal,
eeptPointerVal,
eeptNone,
eeptBinary
} ExtendedErrorParamTypes;
typedef struct tagBinaryParam
{
void *Buffer;
short Size;
} BinaryParam;
typedef struct tagRPC_EE_INFO_PARAM
{
ExtendedErrorParamTypes ParameterType;
union
{
LPSTR AnsiString;
LPWSTR UnicodeString;
long LVal;
short SVal;
ULONGLONG PVal;
BinaryParam BVal;
} u;
} RPC_EE_INFO_PARAM;
typedef struct tagRPC_EXTENDED_ERROR_INFO
{
ULONG Version;
LPWSTR ComputerName;
ULONG ProcessID;
union
{
SYSTEMTIME SystemTime;
FILETIME FileTime;
} u;
ULONG GeneratingComponent;
ULONG Status;
USHORT DetectionLocation;
USHORT Flags;
int NumberOfParameters;
RPC_EE_INFO_PARAM Parameters[MaxNumberOfEEInfoParams];
} RPC_EXTENDED_ERROR_INFO;
typedef struct tagRPC_ERROR_ENUM_HANDLE
{
ULONG Signature;
void *CurrentPos;
void *Head;
} RPC_ERROR_ENUM_HANDLE;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorStartEnumeration (
_Out_ RPC_ERROR_ENUM_HANDLE *EnumHandle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorGetNextRecord (
_In_ RPC_ERROR_ENUM_HANDLE *EnumHandle,
_In_ BOOL CopyStrings,
_Out_ RPC_EXTENDED_ERROR_INFO *ErrorInfo
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorEndEnumeration (
_Inout_ RPC_ERROR_ENUM_HANDLE *EnumHandle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorResetEnumeration (
_Inout_ RPC_ERROR_ENUM_HANDLE *EnumHandle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorGetNumberOfRecords (
_In_ RPC_ERROR_ENUM_HANDLE *EnumHandle,
_Out_ int *Records
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorSaveErrorInfo (
_In_ RPC_ERROR_ENUM_HANDLE *EnumHandle,
_Outptr_result_bytebuffer_(*BlobSize) PVOID *ErrorBlob,
_Out_ size_t *BlobSize
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorLoadErrorInfo (
_In_reads_bytes_(BlobSize) PVOID ErrorBlob,
_In_ size_t BlobSize,
_Out_ RPC_ERROR_ENUM_HANDLE *EnumHandle
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcErrorAddRecord (
_In_ RPC_EXTENDED_ERROR_INFO *ErrorInfo
);
RPCRTAPI
void
RPC_ENTRY
RpcErrorClearInformation (
void
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcAsyncCleanupThread (
_In_ DWORD dwTimeout
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcGetAuthorizationContextForClient (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_In_ BOOL ImpersonateOnReturn,
_In_opt_ PVOID Reserved1,
_In_opt_ PLARGE_INTEGER pExpirationTime,
_In_ LUID Reserved2,
_In_ DWORD Reserved3,
_In_opt_ PVOID Reserved4,
_Out_ PVOID *pAuthzClientContext
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcFreeAuthorizationContext (
_Inout_ PVOID *pAuthzClientContext
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcSsContextLockExclusive (
_In_opt_ RPC_BINDING_HANDLE ServerBindingHandle,
_In_ PVOID UserContext
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcSsContextLockShared (
_In_ RPC_BINDING_HANDLE ServerBindingHandle,
_In_ PVOID UserContext
);
typedef enum tagRpcLocalAddressFormat
{
rlafInvalid = 0,
rlafIPv4,
rlafIPv6
} RpcLocalAddressFormat;
typedef struct _RPC_CALL_LOCAL_ADDRESS_V1
{
unsigned int Version;
void *Buffer;
unsigned long BufferSize;
RpcLocalAddressFormat AddressFormat;
} RPC_CALL_LOCAL_ADDRESS_V1, *PRPC_CALL_LOCAL_ADDRESS_V1;
typedef struct tagRPC_CALL_ATTRIBUTES_V1_W
{
unsigned int Version;
unsigned long Flags;
unsigned long ServerPrincipalNameBufferLength;
unsigned short *ServerPrincipalName;
unsigned long ClientPrincipalNameBufferLength;
unsigned short *ClientPrincipalName;
unsigned long AuthenticationLevel;
unsigned long AuthenticationService;
BOOL NullSession;
} RPC_CALL_ATTRIBUTES_V1_W;
typedef struct tagRPC_CALL_ATTRIBUTES_V1_A
{
unsigned int Version;
unsigned long Flags;
unsigned long ServerPrincipalNameBufferLength;
unsigned char *ServerPrincipalName;
unsigned long ClientPrincipalNameBufferLength;
unsigned char *ClientPrincipalName;
unsigned long AuthenticationLevel;
unsigned long AuthenticationService;
BOOL NullSession;
} RPC_CALL_ATTRIBUTES_V1_A;
typedef enum tagRpcCallType
{
rctInvalid = 0,
rctNormal,
rctTraining,
rctGuaranteed
} RpcCallType;
typedef enum tagRpcCallClientLocality
{
rcclInvalid = 0,
rcclLocal,
rcclRemote,
rcclClientUnknownLocality
} RpcCallClientLocality;
typedef struct tagRPC_CALL_ATTRIBUTES_V2_W
{
unsigned int Version;
unsigned long Flags;
unsigned long ServerPrincipalNameBufferLength;
unsigned short *ServerPrincipalName;
unsigned long ClientPrincipalNameBufferLength;
unsigned short *ClientPrincipalName;
unsigned long AuthenticationLevel;
unsigned long AuthenticationService;
BOOL NullSession;
BOOL KernelModeCaller;
unsigned long ProtocolSequence;
RpcCallClientLocality IsClientLocal;
HANDLE ClientPID;
unsigned long CallStatus;
RpcCallType CallType;
RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress;
unsigned short OpNum;
UUID InterfaceUuid;
} RPC_CALL_ATTRIBUTES_V2_W;
typedef struct tagRPC_CALL_ATTRIBUTES_V2_A
{
unsigned int Version;
unsigned long Flags;
unsigned long ServerPrincipalNameBufferLength;
unsigned char *ServerPrincipalName;
unsigned long ClientPrincipalNameBufferLength;
unsigned char *ClientPrincipalName;
unsigned long AuthenticationLevel;
unsigned long AuthenticationService;
BOOL NullSession;
BOOL KernelModeCaller;
unsigned long ProtocolSequence;
unsigned long IsClientLocal;
HANDLE ClientPID;
unsigned long CallStatus;
RpcCallType CallType;
RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress;
unsigned short OpNum;
UUID InterfaceUuid;
} RPC_CALL_ATTRIBUTES_V2_A;
typedef struct tagRPC_CALL_ATTRIBUTES_V3_W
{
unsigned int Version;
unsigned long Flags;
unsigned long ServerPrincipalNameBufferLength;
unsigned short *ServerPrincipalName;
unsigned long ClientPrincipalNameBufferLength;
unsigned short *ClientPrincipalName;
unsigned long AuthenticationLevel;
unsigned long AuthenticationService;
BOOL NullSession;
BOOL KernelModeCaller;
unsigned long ProtocolSequence;
RpcCallClientLocality IsClientLocal;
HANDLE ClientPID;
unsigned long CallStatus;
RpcCallType CallType;
RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress;
unsigned short OpNum;
UUID InterfaceUuid;
unsigned long ClientIdentifierBufferLength;
unsigned char *ClientIdentifier;
} RPC_CALL_ATTRIBUTES_V3_W;
typedef struct tagRPC_CALL_ATTRIBUTES_V3_A
{
unsigned int Version;
unsigned long Flags;
unsigned long ServerPrincipalNameBufferLength;
unsigned char *ServerPrincipalName;
unsigned long ClientPrincipalNameBufferLength;
unsigned char *ClientPrincipalName;
unsigned long AuthenticationLevel;
unsigned long AuthenticationService;
BOOL NullSession;
BOOL KernelModeCaller;
unsigned long ProtocolSequence;
unsigned long IsClientLocal;
HANDLE ClientPID;
unsigned long CallStatus;
RpcCallType CallType;
RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress;
unsigned short OpNum;
UUID InterfaceUuid;
unsigned long ClientIdentifierBufferLength;
unsigned char *ClientIdentifier;
} RPC_CALL_ATTRIBUTES_V3_A;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInqCallAttributesW (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Inout_ void *RpcCallAttributes
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInqCallAttributesA (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Inout_ void *RpcCallAttributes
);
typedef RPC_CALL_ATTRIBUTES_V3 RPC_CALL_ATTRIBUTES;
typedef enum _RPC_NOTIFICATIONS
{
RpcNotificationCallNone = 0,
RpcNotificationClientDisconnect = 1,
RpcNotificationCallCancel = 2
} RPC_NOTIFICATIONS;
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerSubscribeForNotification (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ RPC_NOTIFICATIONS Notification,
_In_ RPC_NOTIFICATION_TYPES NotificationType,
_In_ RPC_ASYNC_NOTIFICATION_INFO *NotificationInfo
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUnsubscribeForNotification (
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ RPC_NOTIFICATIONS Notification,
_Out_ unsigned long *NotificationsQueued
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingBind (
_In_opt_ PRPC_ASYNC_STATE pAsync,
_In_ RPC_BINDING_HANDLE Binding,
_In_ RPC_IF_HANDLE IfSpec
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingUnbind (
_In_ RPC_BINDING_HANDLE Binding
);
_Must_inspect_result_
RPC_STATUS RPC_ENTRY
I_RpcAsyncSetHandle (
_In_ PRPC_MESSAGE Message,
_In_ PRPC_ASYNC_STATE pAsync
);
_Must_inspect_result_
RPC_STATUS RPC_ENTRY
I_RpcAsyncAbortCall (
_In_ PRPC_ASYNC_STATE pAsync,
_In_ unsigned long ExceptionCode
) ;
int
RPC_ENTRY
I_RpcExceptionFilter (
_In_ unsigned long ExceptionCode
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
I_RpcBindingInqClientTokenAttributes (
_In_ RPC_BINDING_HANDLE Binding,
_Out_opt_ LUID * TokenId,
_Out_opt_ LUID * AuthenticationId,
_Out_opt_ LUID * ModifiedId
);
SHSTDAPI_(LPWSTR *) CommandLineToArgvW(_In_ LPCWSTR lpCmdLine, _Out_ int* pNumArgs);
DECLARE_HANDLE(HDROP);
_Success_(return != 0)
SHSTDAPI_(UINT) DragQueryFileA(_In_ HDROP hDrop, _In_ UINT iFile, _Out_writes_opt_(cch) LPSTR lpszFile, _In_ UINT cch);
_Success_(return != 0)
SHSTDAPI_(UINT) DragQueryFileW(_In_ HDROP hDrop, _In_ UINT iFile, _Out_writes_opt_(cch) LPWSTR lpszFile, _In_ UINT cch);
SHSTDAPI_(BOOL) DragQueryPoint(_In_ HDROP hDrop, _Out_ POINT *ppt);
SHSTDAPI_(void) DragFinish(_In_ HDROP hDrop);
SHSTDAPI_(void) DragAcceptFiles(_In_ HWND hWnd, _In_ BOOL fAccept);
SHSTDAPI_(HINSTANCE) ShellExecuteA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters,
_In_opt_ LPCSTR lpDirectory, _In_ INT nShowCmd);
SHSTDAPI_(HINSTANCE) ShellExecuteW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters,
_In_opt_ LPCWSTR lpDirectory, _In_ INT nShowCmd);
_Success_(return > 32)
SHSTDAPI_(HINSTANCE) FindExecutableA(_In_ LPCSTR lpFile, _In_opt_ LPCSTR lpDirectory, _Out_writes_(MAX_PATH) LPSTR lpResult);
_Success_(return > 32)
SHSTDAPI_(HINSTANCE) FindExecutableW(_In_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpDirectory, _Out_writes_(MAX_PATH) LPWSTR lpResult);
SHSTDAPI_(INT) ShellAboutA(_In_opt_ HWND hWnd, _In_ LPCSTR szApp, _In_opt_ LPCSTR szOtherStuff, _In_opt_ HICON hIcon);
SHSTDAPI_(INT) ShellAboutW(_In_opt_ HWND hWnd, _In_ LPCWSTR szApp, _In_opt_ LPCWSTR szOtherStuff, _In_opt_ HICON hIcon);
SHSTDAPI_(HICON) DuplicateIcon(_Reserved_ HINSTANCE hInst, _In_ HICON hIcon);
SHSTDAPI_(HICON) ExtractAssociatedIconA(_Reserved_ HINSTANCE hInst, _Inout_updates_(128) LPSTR pszIconPath, _Inout_ WORD *piIcon);
SHSTDAPI_(HICON) ExtractAssociatedIconW(_Reserved_ HINSTANCE hInst, _Inout_updates_(128) LPWSTR pszIconPath, _Inout_ WORD *piIcon);
SHSTDAPI_(HICON) ExtractAssociatedIconExA(_Reserved_ HINSTANCE hInst, _Inout_updates_(128) LPSTR pszIconPath, _Inout_ WORD *piIconIndex, _Inout_ WORD *piIconId);
SHSTDAPI_(HICON) ExtractAssociatedIconExW(_Reserved_ HINSTANCE hInst, _Inout_updates_(128) LPWSTR pszIconPath, _Inout_ WORD *piIconIndex, _Inout_ WORD *piIconId);
SHSTDAPI_(HICON) ExtractIconA(_Reserved_ HINSTANCE hInst, _In_ LPCSTR pszExeFileName, UINT nIconIndex);
SHSTDAPI_(HICON) ExtractIconW(_Reserved_ HINSTANCE hInst, _In_ LPCWSTR pszExeFileName, UINT nIconIndex);
typedef struct _DRAGINFOA {
UINT uSize;
POINT pt;
BOOL fNC;
PZZSTR lpFileList;
DWORD grfKeyState;
} DRAGINFOA, *LPDRAGINFOA;
typedef struct _DRAGINFOW {
UINT uSize;
POINT pt;
BOOL fNC;
PZZWSTR lpFileList;
DWORD grfKeyState;
} DRAGINFOW, *LPDRAGINFOW;
typedef DRAGINFOA DRAGINFO;
typedef LPDRAGINFOA LPDRAGINFO;
typedef struct _AppBarData
{
DWORD cbSize;
HWND hWnd;
UINT uCallbackMessage;
UINT uEdge;
RECT rc;
LPARAM lParam;
} APPBARDATA, *PAPPBARDATA;
SHSTDAPI_(UINT_PTR) SHAppBarMessage(_In_ DWORD dwMessage, _Inout_ PAPPBARDATA pData);
SHSTDAPI_(DWORD) DoEnvironmentSubstA(_Inout_updates_(cchSrc) LPSTR pszSrc, UINT cchSrc);
SHSTDAPI_(DWORD) DoEnvironmentSubstW(_Inout_updates_(cchSrc) LPWSTR pszSrc, UINT cchSrc);
SHSTDAPI_(UINT) ExtractIconExA(_In_ LPCSTR lpszFile, int nIconIndex, _Out_writes_opt_(nIcons) HICON *phiconLarge, _Out_writes_opt_(nIcons) HICON *phiconSmall, UINT nIcons);
SHSTDAPI_(UINT) ExtractIconExW(_In_ LPCWSTR lpszFile, int nIconIndex, _Out_writes_opt_(nIcons) HICON *phiconLarge, _Out_writes_opt_(nIcons) HICON *phiconSmall, UINT nIcons);
typedef WORD FILEOP_FLAGS;
typedef WORD PRINTEROP_FLAGS;
typedef struct _SHFILEOPSTRUCTA
{
HWND hwnd;
UINT wFunc;
PCZZSTR pFrom;
PCZZSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationsAborted;
LPVOID hNameMappings;
PCSTR lpszProgressTitle;
} SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA;
typedef struct _SHFILEOPSTRUCTW
{
HWND hwnd;
UINT wFunc;
PCZZWSTR pFrom;
PCZZWSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationsAborted;
LPVOID hNameMappings;
PCWSTR lpszProgressTitle;
} SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW;
typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT;
typedef LPSHFILEOPSTRUCTA LPSHFILEOPSTRUCT;
SHSTDAPI_(int) SHFileOperationA(_Inout_ LPSHFILEOPSTRUCTA lpFileOp);
SHSTDAPI_(int) SHFileOperationW(_Inout_ LPSHFILEOPSTRUCTW lpFileOp);
SHSTDAPI_(void) SHFreeNameMappings(_In_opt_ HANDLE hNameMappings);
typedef struct _SHNAMEMAPPINGA
{
LPSTR pszOldPath;
LPSTR pszNewPath;
int cchOldPath;
int cchNewPath;
} SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA;
typedef struct _SHNAMEMAPPINGW
{
LPWSTR pszOldPath;
LPWSTR pszNewPath;
int cchOldPath;
int cchNewPath;
} SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
typedef SHNAMEMAPPINGA SHNAMEMAPPING;
typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING;
typedef struct _SHELLEXECUTEINFOA
{
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpFile;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
void *lpIDList;
LPCSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
union
{
HANDLE hIcon;
HANDLE hMonitor;
} DUMMYUNIONNAME;
HANDLE hProcess;
} SHELLEXECUTEINFOA, *LPSHELLEXECUTEINFOA;
typedef struct _SHELLEXECUTEINFOW
{
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCWSTR lpVerb;
LPCWSTR lpFile;
LPCWSTR lpParameters;
LPCWSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
void *lpIDList;
LPCWSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
union
{
HANDLE hIcon;
HANDLE hMonitor;
} DUMMYUNIONNAME;
HANDLE hProcess;
} SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW;
typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO;
typedef LPSHELLEXECUTEINFOA LPSHELLEXECUTEINFO;
SHSTDAPI_(BOOL) ShellExecuteExA(_Inout_ SHELLEXECUTEINFOA *pExecInfo);
SHSTDAPI_(BOOL) ShellExecuteExW(_Inout_ SHELLEXECUTEINFOW *pExecInfo);
typedef struct _SHCREATEPROCESSINFOW
{
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCWSTR pszFile;
LPCWSTR pszParameters;
LPCWSTR pszCurrentDirectory;
HANDLE hUserToken;
LPSECURITY_ATTRIBUTES lpProcessAttributes;
LPSECURITY_ATTRIBUTES lpThreadAttributes;
BOOL bInheritHandles;
DWORD dwCreationFlags;
LPSTARTUPINFOW lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInformation;
} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;
SHSTDAPI_(BOOL) SHCreateProcessAsUserW(_Inout_ PSHCREATEPROCESSINFOW pscpi);
SHSTDAPI SHEvaluateSystemCommandTemplate(_In_ PCWSTR pszCmdTemplate, _Outptr_ PWSTR *ppszApplication, _Outptr_opt_ PWSTR *ppszCommandLine, _Outptr_opt_ PWSTR *ppszParameters);
typedef enum ASSOCCLASS
{
ASSOCCLASS_SHELL_KEY = 0,
ASSOCCLASS_PROGID_KEY,
ASSOCCLASS_PROGID_STR,
ASSOCCLASS_CLSID_KEY,
ASSOCCLASS_CLSID_STR,
ASSOCCLASS_APP_KEY,
ASSOCCLASS_APP_STR,
ASSOCCLASS_SYSTEM_STR,
ASSOCCLASS_FOLDER,
ASSOCCLASS_STAR,
ASSOCCLASS_FIXED_PROGID_STR,
ASSOCCLASS_PROTOCOL_STR,
} ASSOCCLASS;
typedef struct ASSOCIATIONELEMENT
{
ASSOCCLASS ac;
HKEY hkClass;
PCWSTR pszClass;
} ASSOCIATIONELEMENT;
SHSTDAPI AssocCreateForClasses(_In_reads_(cClasses) const ASSOCIATIONELEMENT *rgClasses, ULONG cClasses, _In_ REFIID riid, _COM_Outptr_ void **ppv);
typedef struct _SHQUERYRBINFO {
DWORD cbSize;
__int64 i64Size;
__int64 i64NumItems;
} SHQUERYRBINFO, *LPSHQUERYRBINFO;
SHSTDAPI SHQueryRecycleBinA(_In_opt_ LPCSTR pszRootPath, _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo);
SHSTDAPI SHQueryRecycleBinW(_In_opt_ LPCWSTR pszRootPath, _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo);
SHSTDAPI SHEmptyRecycleBinA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR pszRootPath, DWORD dwFlags);
SHSTDAPI SHEmptyRecycleBinW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR pszRootPath, DWORD dwFlags);
typedef enum
{
QUNS_NOT_PRESENT = 1,
QUNS_BUSY = 2,
QUNS_RUNNING_D3D_FULL_SCREEN = 3,
QUNS_PRESENTATION_MODE = 4,
QUNS_ACCEPTS_NOTIFICATIONS = 5,
QUNS_QUIET_TIME = 6,
QUNS_APP = 7,
} QUERY_USER_NOTIFICATION_STATE;
SHSTDAPI SHQueryUserNotificationState(_Out_ QUERY_USER_NOTIFICATION_STATE *pquns);
SHSTDAPI SHGetPropertyStoreForWindow(_In_ HWND hwnd, _In_ REFIID riid, _Outptr_ void** ppv);
typedef struct _NOTIFYICONDATAA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
CHAR szTip[128];
DWORD dwState;
DWORD dwStateMask;
CHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
} DUMMYUNIONNAME;
CHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
HICON hBalloonIcon;
} NOTIFYICONDATAA, *PNOTIFYICONDATAA;
typedef struct _NOTIFYICONDATAW {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
WCHAR szTip[128];
DWORD dwState;
DWORD dwStateMask;
WCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
} DUMMYUNIONNAME;
WCHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
HICON hBalloonIcon;
} NOTIFYICONDATAW, *PNOTIFYICONDATAW;
typedef NOTIFYICONDATAA NOTIFYICONDATA;
typedef PNOTIFYICONDATAA PNOTIFYICONDATA;
typedef struct _NOTIFYICONIDENTIFIER {
DWORD cbSize;
HWND hWnd;
UINT uID;
GUID guidItem;
} NOTIFYICONIDENTIFIER, *PNOTIFYICONIDENTIFIER;
SHSTDAPI_(BOOL) Shell_NotifyIconA(DWORD dwMessage, _In_ PNOTIFYICONDATAA lpData);
SHSTDAPI_(BOOL) Shell_NotifyIconW(DWORD dwMessage, _In_ PNOTIFYICONDATAW lpData);
SHSTDAPI Shell_NotifyIconGetRect(_In_ const NOTIFYICONIDENTIFIER* identifier, _Out_ RECT* iconLocation);
typedef struct _SHFILEINFOA
{
HICON hIcon;
int iIcon;
DWORD dwAttributes;
CHAR szDisplayName[MAX_PATH];
CHAR szTypeName[80];
} SHFILEINFOA;
typedef struct _SHFILEINFOW
{
HICON hIcon;
int iIcon;
DWORD dwAttributes;
WCHAR szDisplayName[MAX_PATH];
WCHAR szTypeName[80];
} SHFILEINFOW;
typedef SHFILEINFOA SHFILEINFO;
SHSTDAPI_(DWORD_PTR) SHGetFileInfoA(_In_ LPCSTR pszPath, DWORD dwFileAttributes, _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOA *psfi,
UINT cbFileInfo, UINT uFlags);
SHSTDAPI_(DWORD_PTR) SHGetFileInfoW(_In_ LPCWSTR pszPath, DWORD dwFileAttributes, _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOW *psfi,
UINT cbFileInfo, UINT uFlags);
typedef struct _SHSTOCKICONINFO
{
DWORD cbSize;
HICON hIcon;
int iSysImageIndex;
int iIcon;
WCHAR szPath[MAX_PATH];
} SHSTOCKICONINFO;
typedef enum SHSTOCKICONID
{
SIID_DOCNOASSOC = 0,
SIID_DOCASSOC = 1,
SIID_APPLICATION = 2,
SIID_FOLDER = 3,
SIID_FOLDEROPEN = 4,
SIID_DRIVE525 = 5,
SIID_DRIVE35 = 6,
SIID_DRIVEREMOVE = 7,
SIID_DRIVEFIXED = 8,
SIID_DRIVENET = 9,
SIID_DRIVENETDISABLED = 10,
SIID_DRIVECD = 11,
SIID_DRIVERAM = 12,
SIID_WORLD = 13,
SIID_SERVER = 15,
SIID_PRINTER = 16,
SIID_MYNETWORK = 17,
SIID_FIND = 22,
SIID_HELP = 23,
SIID_SHARE = 28,
SIID_LINK = 29,
SIID_SLOWFILE = 30,
SIID_RECYCLER = 31,
SIID_RECYCLERFULL = 32,
SIID_MEDIACDAUDIO = 40,
SIID_LOCK = 47,
SIID_AUTOLIST = 49,
SIID_PRINTERNET = 50,
SIID_SERVERSHARE = 51,
SIID_PRINTERFAX = 52,
SIID_PRINTERFAXNET = 53,
SIID_PRINTERFILE = 54,
SIID_STACK = 55,
SIID_MEDIASVCD = 56,
SIID_STUFFEDFOLDER = 57,
SIID_DRIVEUNKNOWN = 58,
SIID_DRIVEDVD = 59,
SIID_MEDIADVD = 60,
SIID_MEDIADVDRAM = 61,
SIID_MEDIADVDRW = 62,
SIID_MEDIADVDR = 63,
SIID_MEDIADVDROM = 64,
SIID_MEDIACDAUDIOPLUS = 65,
SIID_MEDIACDRW = 66,
SIID_MEDIACDR = 67,
SIID_MEDIACDBURN = 68,
SIID_MEDIABLANKCD = 69,
SIID_MEDIACDROM = 70,
SIID_AUDIOFILES = 71,
SIID_IMAGEFILES = 72,
SIID_VIDEOFILES = 73,
SIID_MIXEDFILES = 74,
SIID_FOLDERBACK = 75,
SIID_FOLDERFRONT = 76,
SIID_SHIELD = 77,
SIID_WARNING = 78,
SIID_INFO = 79,
SIID_ERROR = 80,
SIID_KEY = 81,
SIID_SOFTWARE = 82,
SIID_RENAME = 83,
SIID_DELETE = 84,
SIID_MEDIAAUDIODVD = 85,
SIID_MEDIAMOVIEDVD = 86,
SIID_MEDIAENHANCEDCD = 87,
SIID_MEDIAENHANCEDDVD = 88,
SIID_MEDIAHDDVD = 89,
SIID_MEDIABLURAY = 90,
SIID_MEDIAVCD = 91,
SIID_MEDIADVDPLUSR = 92,
SIID_MEDIADVDPLUSRW = 93,
SIID_DESKTOPPC = 94,
SIID_MOBILEPC = 95,
SIID_USERS = 96,
SIID_MEDIASMARTMEDIA = 97,
SIID_MEDIACOMPACTFLASH = 98,
SIID_DEVICECELLPHONE = 99,
SIID_DEVICECAMERA = 100,
SIID_DEVICEVIDEOCAMERA = 101,
SIID_DEVICEAUDIOPLAYER = 102,
SIID_NETWORKCONNECT = 103,
SIID_INTERNET = 104,
SIID_ZIPFILE = 105,
SIID_SETTINGS = 106,
SIID_DRIVEHDDVD = 132,
SIID_DRIVEBD = 133,
SIID_MEDIAHDDVDROM = 134,
SIID_MEDIAHDDVDR = 135,
SIID_MEDIAHDDVDRAM = 136,
SIID_MEDIABDROM = 137,
SIID_MEDIABDR = 138,
SIID_MEDIABDRE = 139,
SIID_CLUSTEREDDRIVE = 140,
SIID_MAX_ICONS = 181,
} SHSTOCKICONID;
SHSTDAPI SHGetStockIconInfo(SHSTOCKICONID siid, UINT uFlags, _Inout_ SHSTOCKICONINFO *psii);
SHSTDAPI_(BOOL) SHGetDiskFreeSpaceExA(_In_ LPCSTR pszDirectoryName, _Out_opt_ ULARGE_INTEGER* pulFreeBytesAvailableToCaller,
_Out_opt_ ULARGE_INTEGER* pulTotalNumberOfBytes, _Out_opt_ ULARGE_INTEGER* pulTotalNumberOfFreeBytes);
SHSTDAPI_(BOOL) SHGetDiskFreeSpaceExW(_In_ LPCWSTR pszDirectoryName, _Out_opt_ ULARGE_INTEGER* pulFreeBytesAvailableToCaller,
_Out_opt_ ULARGE_INTEGER* pulTotalNumberOfBytes, _Out_opt_ ULARGE_INTEGER* pulTotalNumberOfFreeBytes);
_Success_(return != 0)
SHSTDAPI_(BOOL) SHGetNewLinkInfoA(_In_ LPCSTR pszLinkTo, _In_ LPCSTR pszDir, _Out_writes_(MAX_PATH) LPSTR pszName, _Out_ BOOL *pfMustCopy, _In_ UINT uFlags);
_Success_(return != 0)
SHSTDAPI_(BOOL) SHGetNewLinkInfoW(_In_ LPCWSTR pszLinkTo, _In_ LPCWSTR pszDir, _Out_writes_(MAX_PATH) LPWSTR pszName, _Out_ BOOL *pfMustCopy, _In_ UINT uFlags);
SHSTDAPI_(BOOL) SHInvokePrinterCommandA(_In_opt_ HWND hwnd, UINT uAction, _In_ LPCSTR lpBuf1, _In_opt_ LPCSTR lpBuf2, BOOL fModal);
SHSTDAPI_(BOOL) SHInvokePrinterCommandW(_In_opt_ HWND hwnd, UINT uAction, _In_ LPCWSTR lpBuf1, _In_opt_ LPCWSTR lpBuf2, BOOL fModal);
typedef struct _OPEN_PRINTER_PROPS_INFOA
{
DWORD dwSize;
LPSTR pszSheetName;
UINT uSheetIndex;
DWORD dwFlags;
BOOL bModal;
} OPEN_PRINTER_PROPS_INFOA, *POPEN_PRINTER_PROPS_INFOA;
typedef struct _OPEN_PRINTER_PROPS_INFOW
{
DWORD dwSize;
LPWSTR pszSheetName;
UINT uSheetIndex;
DWORD dwFlags;
BOOL bModal;
} OPEN_PRINTER_PROPS_INFOW, *POPEN_PRINTER_PROPS_INFOW;
typedef OPEN_PRINTER_PROPS_INFOA OPEN_PRINTER_PROPS_INFO;
typedef POPEN_PRINTER_PROPS_INFOA POPEN_PRINTER_PROPS_INFO;
SHSTDAPI SHLoadNonloadedIconOverlayIdentifiers(void);
SHSTDAPI SHIsFileAvailableOffline(_In_ PCWSTR pwszPath, _Out_opt_ DWORD *pdwStatus);
SHSTDAPI SHSetLocalizedName(_In_ PCWSTR pszPath, _In_ PCWSTR pszResModule, int idsRes);
SHSTDAPI SHRemoveLocalizedName(_In_ PCWSTR pszPath);
SHSTDAPI SHGetLocalizedName(_In_ PCWSTR pszPath, _Out_writes_(cch) PWSTR pszResModule, UINT cch, _Out_ int *pidsRes);
LWSTDAPIV_(int) ShellMessageBoxA(
_In_opt_ HINSTANCE hAppInst,
_In_opt_ HWND hWnd,
_In_ LPCSTR lpcText,
_In_opt_ LPCSTR lpcTitle,
_In_ UINT fuStyle, ...);
LWSTDAPIV_(int) ShellMessageBoxW(
_In_opt_ HINSTANCE hAppInst,
_In_opt_ HWND hWnd,
_In_ LPCWSTR lpcText,
_In_opt_ LPCWSTR lpcTitle,
_In_ UINT fuStyle, ...);
SHSTDAPI_(BOOL) IsLFNDriveA(_In_opt_ LPCSTR pszPath);
SHSTDAPI_(BOOL) IsLFNDriveW(_In_opt_ LPCWSTR pszPath);
STDAPI SHEnumerateUnreadMailAccountsA(_In_opt_ HKEY hKeyUser, DWORD dwIndex, _Out_writes_(cchMailAddress) LPSTR pszMailAddress, int cchMailAddress);
STDAPI SHEnumerateUnreadMailAccountsW(_In_opt_ HKEY hKeyUser, DWORD dwIndex, _Out_writes_(cchMailAddress) LPWSTR pszMailAddress, int cchMailAddress);
STDAPI SHGetUnreadMailCountA(_In_opt_ HKEY hKeyUser, _In_opt_ LPCSTR pszMailAddress, _Out_opt_ DWORD *pdwCount, _Out_opt_ FILETIME *pFileTime, _Out_writes_opt_(cchShellExecuteCommand) LPSTR pszShellExecuteCommand, int cchShellExecuteCommand);
STDAPI SHGetUnreadMailCountW(_In_opt_ HKEY hKeyUser, _In_opt_ LPCWSTR pszMailAddress, _Out_opt_ DWORD *pdwCount, _Out_opt_ FILETIME *pFileTime, _Out_writes_opt_(cchShellExecuteCommand) LPWSTR pszShellExecuteCommand, int cchShellExecuteCommand);
STDAPI SHSetUnreadMailCountA(_In_ LPCSTR pszMailAddress, DWORD dwCount, _In_ LPCSTR pszShellExecuteCommand);
STDAPI SHSetUnreadMailCountW(_In_ LPCWSTR pszMailAddress, DWORD dwCount, _In_ LPCWSTR pszShellExecuteCommand);
STDAPI_(BOOL) SHTestTokenMembership(_In_opt_ HANDLE hToken, ULONG ulRID);
SHSTDAPI SHGetImageList(_In_ int iImageList, _In_ REFIID riid, _Outptr_ void **ppvObj);
typedef HRESULT (STDMETHODCALLTYPE *PFNCANSHAREFOLDERW)(_In_ PCWSTR pszPath);
typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(_In_opt_ HWND hwndParent, _In_ PCWSTR pszPath);
SHSTDAPI_(BOOL) InitNetworkAddressControl(void);
typedef struct tagNC_ADDRESS
{
struct NET_ADDRESS_INFO_ *pAddrInfo;
USHORT PortNumber;
BYTE PrefixLength;
} NC_ADDRESS, *PNC_ADDRESS;
STDAPI SHGetDriveMedia(_In_ PCWSTR pszDrive, _Out_ DWORD *pdwMediaContent);
typedef struct _PERF_DATA_BLOCK {
WCHAR Signature[4];
DWORD LittleEndian;
DWORD Version;
DWORD Revision;
DWORD TotalByteLength;
DWORD HeaderLength;
DWORD NumObjectTypes;
LONG DefaultObject;
SYSTEMTIME SystemTime;
LARGE_INTEGER PerfTime;
LARGE_INTEGER PerfFreq;
LARGE_INTEGER PerfTime100nSec;
DWORD SystemNameLength;
DWORD SystemNameOffset;
} PERF_DATA_BLOCK, *PPERF_DATA_BLOCK;
typedef struct _PERF_OBJECT_TYPE {
DWORD TotalByteLength;
DWORD DefinitionLength;
DWORD HeaderLength;
DWORD ObjectNameTitleIndex;
LPWSTR ObjectNameTitle;
DWORD ObjectHelpTitleIndex;
LPWSTR ObjectHelpTitle;
DWORD DetailLevel;
DWORD NumCounters;
LONG DefaultCounter;
LONG NumInstances;
DWORD CodePage;
LARGE_INTEGER PerfTime;
LARGE_INTEGER PerfFreq;
} PERF_OBJECT_TYPE, *PPERF_OBJECT_TYPE;
typedef struct _PERF_COUNTER_DEFINITION {
DWORD ByteLength;
DWORD CounterNameTitleIndex;
LPWSTR CounterNameTitle;
DWORD CounterHelpTitleIndex;
LPWSTR CounterHelpTitle;
LONG DefaultScale;
DWORD DetailLevel;
DWORD CounterType;
DWORD CounterSize;
DWORD CounterOffset;
} PERF_COUNTER_DEFINITION, *PPERF_COUNTER_DEFINITION;
typedef struct _PERF_INSTANCE_DEFINITION {
DWORD ByteLength;
DWORD ParentObjectTitleIndex;
DWORD ParentObjectInstance;
LONG UniqueID;
DWORD NameOffset;
DWORD NameLength;
} PERF_INSTANCE_DEFINITION, *PPERF_INSTANCE_DEFINITION;
typedef struct _PERF_COUNTER_BLOCK {
DWORD ByteLength;
} PERF_COUNTER_BLOCK, *PPERF_COUNTER_BLOCK;
typedef DWORD (APIENTRY PM_OPEN_PROC)(
_In_opt_ LPWSTR pContext
);
typedef DWORD (APIENTRY PM_COLLECT_PROC)(
_In_opt_ LPWSTR pValueName,
_Inout_
_At_(*ppData, _Pre_writable_byte_size_(*pcbTotalBytes) _Post_writable_byte_size_(*pcbTotalBytes))
_At_(_Old_(*ppData), _Post_writable_byte_size_(*pcbTotalBytes))
void** ppData,
_Inout_ DWORD* pcbTotalBytes,
_Out_ DWORD* pNumObjectTypes
);
typedef DWORD (APIENTRY PM_CLOSE_PROC)(void);
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef UINT_PTR SOCKET;
typedef struct fd_set {
u_int fd_count;
SOCKET fd_array[FD_SETSIZE];
} fd_set;
extern int PASCAL FAR __WSAFDIsSet(SOCKET, fd_set FAR *);
struct timeval {
long tv_sec;
long tv_usec;
};
struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};
struct netent {
char FAR * n_name;
char FAR * FAR * n_aliases;
short n_addrtype;
u_long n_net;
};
struct servent {
char FAR * s_name;
char FAR * FAR * s_aliases;
short s_port;
char FAR * s_proto;
};
struct protoent {
char FAR * p_name;
char FAR * FAR * p_aliases;
short p_proto;
};
typedef struct in_addr {
union {
struct { UCHAR s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { USHORT s_w1,s_w2; } S_un_w;
ULONG S_addr;
} S_un;
} IN_ADDR, *PIN_ADDR, FAR *LPIN_ADDR;
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
} WSADATA;
typedef WSADATA FAR *LPWSADATA;
struct ip_mreq {
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
struct sockproto {
u_short sp_family;
u_short sp_protocol;
};
struct linger {
u_short l_onoff;
u_short l_linger;
};
SOCKET PASCAL FAR accept (
_In_ SOCKET s,
_Out_writes_bytes_opt_(*addrlen) struct sockaddr FAR *addr,
_Inout_opt_ int FAR *addrlen);
int PASCAL FAR bind (
_In_ SOCKET s,
_In_reads_bytes_(namelen) const struct sockaddr FAR *addr,
_In_ int namelen);
int PASCAL FAR closesocket ( IN SOCKET s);
int PASCAL FAR connect (
_In_ SOCKET s,
_In_reads_bytes_(namelen) const struct sockaddr FAR *name,
_In_ int namelen);
int PASCAL FAR ioctlsocket (
_In_ SOCKET s,
_In_ long cmd,
_Inout_ u_long FAR *argp);
int PASCAL FAR getpeername (
_In_ SOCKET s,
_Out_writes_bytes_to_(*namelen, *namelen) struct sockaddr FAR *name,
_Inout_ int FAR * namelen);
int PASCAL FAR getsockname (
_In_ SOCKET s,
_Out_writes_bytes_to_(*namelen, *namelen) struct sockaddr FAR *name,
_Inout_ int FAR * namelen);
int PASCAL FAR getsockopt (
_In_ SOCKET s,
_In_ int level,
_In_ int optname,
_Out_writes_bytes_(*optlen) char FAR * optval,
_Inout_ int FAR *optlen);
u_long PASCAL FAR htonl ( _In_ u_long hostlong);
u_short PASCAL FAR htons (_In_ u_short hostshort);
unsigned long PASCAL FAR inet_addr (_In_z_ const char FAR * cp);
char FAR * PASCAL FAR inet_ntoa (_In_ struct in_addr in);
int PASCAL FAR listen (
_In_ SOCKET s,
_In_ int backlog);
u_long PASCAL FAR ntohl (_In_ u_long netlong);
u_short PASCAL FAR ntohs (_In_ u_short netshort);
int PASCAL FAR recv (
_In_ SOCKET s,
_Out_writes_bytes_to_(len, return) __out_data_source(NETWORK) char FAR * buf,
_In_ int len,
_In_ int flags);
int PASCAL FAR recvfrom (
_In_ SOCKET s,
_Out_writes_bytes_to_(len, return) __out_data_source(NETWORK) char FAR * buf,
_In_ int len,
_In_ int flags,
_Out_writes_bytes_to_opt_(*fromlen, *fromlen) struct sockaddr FAR * from,
_Inout_opt_ int FAR * fromlen);
int PASCAL FAR select (
_In_ int nfds,
_Inout_opt_ fd_set FAR *readfds,
_Inout_opt_ fd_set FAR *writefds,
_Inout_opt_ fd_set FAR *exceptfds,
_In_opt_ const struct timeval FAR *timeout);
int PASCAL FAR send (
_In_ SOCKET s,
_In_reads_bytes_(len) const char FAR * buf,
_In_ int len,
_In_ int flags);
int PASCAL FAR sendto (
_In_ SOCKET s,
_In_reads_bytes_(len) const char FAR * buf,
_In_ int len,
_In_ int flags,
_In_reads_bytes_opt_(tolen) const struct sockaddr FAR *to,
_In_ int tolen);
int PASCAL FAR setsockopt (
_In_ SOCKET s,
_In_ int level,
_In_ int optname,
_In_reads_bytes_opt_(optlen) const char FAR * optval,
_In_ int optlen);
int PASCAL FAR shutdown (
_In_ SOCKET s,
_In_ int how);
SOCKET PASCAL FAR socket (
_In_ int af,
_In_ int type,
_In_ int protocol);
struct hostent FAR * PASCAL FAR gethostbyaddr(
_In_reads_bytes_(len) const char FAR * addr,
_In_ int len,
_In_ int type);
struct hostent FAR * PASCAL FAR gethostbyname(_In_z_ const char FAR * name);
int PASCAL FAR gethostname (
_Out_writes_bytes_to_(namelen, return) char FAR * name,
_In_ int namelen);
struct servent FAR * PASCAL FAR getservbyport(
_In_ int port,
_In_z_ const char FAR * proto);
struct servent FAR * PASCAL FAR getservbyname(
_In_z_ const char FAR * name,
_In_z_ const char FAR * proto);
struct protoent FAR * PASCAL FAR getprotobynumber(_In_ int proto);
struct protoent FAR * PASCAL FAR getprotobyname(_In_z_ const char FAR * name);
int PASCAL FAR WSAStartup(
_In_ WORD wVersionRequired,
_Out_ LPWSADATA lpWSAData);
int PASCAL FAR WSACleanup(void);
void PASCAL FAR WSASetLastError(_In_ int iError);
int PASCAL FAR WSAGetLastError(void);
BOOL PASCAL FAR WSAIsBlocking(void);
int PASCAL FAR WSAUnhookBlockingHook(void);
FARPROC PASCAL FAR WSASetBlockingHook(_In_ FARPROC lpBlockFunc);
int PASCAL FAR WSACancelBlockingCall(void);
HANDLE PASCAL FAR WSAAsyncGetServByName(
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_z_ const char FAR * name,
_In_z_ const char FAR * proto,
_Out_writes_bytes_(buflen) char FAR * buf,
_In_ int buflen);
HANDLE PASCAL FAR WSAAsyncGetServByPort(
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_ int port,
_In_ const char FAR * proto,
_Out_writes_bytes_(buflen) char FAR * buf,
_In_ int buflen);
HANDLE PASCAL FAR WSAAsyncGetProtoByName(
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_z_ const char FAR * name,
_Out_writes_bytes_(buflen) char FAR * buf,
_In_ int buflen);
HANDLE PASCAL FAR WSAAsyncGetProtoByNumber(
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_ int number,
_Out_writes_bytes_(buflen) char FAR * buf,
_In_ int buflen);
HANDLE PASCAL FAR WSAAsyncGetHostByName(
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_z_ const char FAR * name,
_Out_writes_bytes_(buflen) char FAR * buf,
_In_ int buflen);
HANDLE PASCAL FAR WSAAsyncGetHostByAddr(
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_ const char FAR * addr,
_In_ int len,
_In_ int type,
_Out_writes_bytes_(buflen) char FAR * buf,
_In_ int buflen);
int PASCAL FAR WSACancelAsyncRequest(_In_ HANDLE hAsyncTaskHandle);
int PASCAL FAR WSAAsyncSelect(
_In_ SOCKET s,
_In_ HWND hWnd,
_In_ u_int wMsg,
_In_ long lEvent);
int PASCAL FAR WSARecvEx (
_In_ SOCKET s,
_Out_writes_bytes_to_(len, return) __out_data_source(NETWORK) char FAR * buf,
_In_ int len,
_Inout_ int FAR *flags);
typedef struct _TRANSMIT_FILE_BUFFERS {
PVOID Head;
DWORD HeadLength;
PVOID Tail;
DWORD TailLength;
} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;
BOOL
PASCAL FAR
TransmitFile (
_In_ SOCKET hSocket,
_In_ HANDLE hFile,
_In_ DWORD nNumberOfBytesToWrite,
_In_ DWORD nNumberOfBytesPerSend,
_Inout_opt_ LPOVERLAPPED lpOverlapped,
_In_opt_ LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
_In_ DWORD dwReserved
);
BOOL
PASCAL FAR
AcceptEx (
_In_ SOCKET sListenSocket,
_In_ SOCKET sAcceptSocket,
_Out_writes_bytes_to_(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLength,
*lpdwBytesReceived) PVOID lpOutputBuffer,
_In_ DWORD dwReceiveDataLength,
_In_ DWORD dwLocalAddressLength,
_In_ DWORD dwRemoteAddressLength,
_Out_ LPDWORD lpdwBytesReceived,
_Inout_ LPOVERLAPPED lpOverlapped
);
VOID
PASCAL FAR
GetAcceptExSockaddrs (
_In_reads_bytes_(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLength) PVOID lpOutputBuffer,
_In_ DWORD dwReceiveDataLength,
_In_ DWORD dwLocalAddressLength,
_In_ DWORD dwRemoteAddressLength,
_Outptr_result_bytebuffer_(*LocalSockaddrLength) struct sockaddr **LocalSockaddr,
_Out_ LPINT LocalSockaddrLength,
_Outptr_result_bytebuffer_(*RemoteSockaddrLength) struct sockaddr **RemoteSockaddr,
_Out_ LPINT RemoteSockaddrLength
);
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr_in *PSOCKADDR_IN;
typedef struct sockaddr_in FAR *LPSOCKADDR_IN;
typedef struct linger LINGER;
typedef struct linger *PLINGER;
typedef struct linger FAR *LPLINGER;
typedef struct fd_set FD_SET;
typedef struct fd_set *PFD_SET;
typedef struct fd_set FAR *LPFD_SET;
typedef struct hostent HOSTENT;
typedef struct hostent *PHOSTENT;
typedef struct hostent FAR *LPHOSTENT;
typedef struct servent SERVENT;
typedef struct servent *PSERVENT;
typedef struct servent FAR *LPSERVENT;
typedef struct protoent PROTOENT;
typedef struct protoent *PPROTOENT;
typedef struct protoent FAR *LPPROTOENT;
typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval FAR *LPTIMEVAL;
typedef unsigned int ALG_ID;
typedef ULONG_PTR HCRYPTPROV;
typedef ULONG_PTR HCRYPTKEY;
typedef ULONG_PTR HCRYPTHASH;
typedef struct _CMS_KEY_INFO {
DWORD dwVersion;
ALG_ID Algid;
BYTE *pbOID;
DWORD cbOID;
} CMS_KEY_INFO, *PCMS_KEY_INFO;
typedef struct _HMAC_Info {
ALG_ID HashAlgid;
BYTE *pbInnerString;
DWORD cbInnerString;
BYTE *pbOuterString;
DWORD cbOuterString;
} HMAC_INFO, *PHMAC_INFO;
typedef struct _SCHANNEL_ALG {
DWORD dwUse;
ALG_ID Algid;
DWORD cBits;
DWORD dwFlags;
DWORD dwReserved;
} SCHANNEL_ALG, *PSCHANNEL_ALG;
typedef struct _PROV_ENUMALGS {
ALG_ID aiAlgid;
DWORD dwBitLen;
DWORD dwNameLen;
CHAR szName[20];
} PROV_ENUMALGS;
typedef struct _PROV_ENUMALGS_EX {
ALG_ID aiAlgid;
DWORD dwDefaultLen;
DWORD dwMinLen;
DWORD dwMaxLen;
DWORD dwProtocols;
DWORD dwNameLen;
CHAR szName[20];
DWORD dwLongNameLen;
CHAR szLongName[40];
} PROV_ENUMALGS_EX;
typedef struct _PUBLICKEYSTRUC {
BYTE bType;
BYTE bVersion;
WORD reserved;
ALG_ID aiKeyAlg;
} BLOBHEADER, PUBLICKEYSTRUC;
typedef struct _RSAPUBKEY {
DWORD magic;
DWORD bitlen;
DWORD pubexp;
} RSAPUBKEY;
typedef struct _PUBKEY {
DWORD magic;
DWORD bitlen;
} DHPUBKEY, DSSPUBKEY, KEAPUBKEY, TEKPUBKEY;
typedef struct _DSSSEED {
DWORD counter;
BYTE seed[20];
} DSSSEED;
typedef struct _PUBKEYVER3 {
DWORD magic;
DWORD bitlenP;
DWORD bitlenQ;
DWORD bitlenJ;
DSSSEED DSSSeed;
} DHPUBKEY_VER3, DSSPUBKEY_VER3;
typedef struct _PRIVKEYVER3 {
DWORD magic;
DWORD bitlenP;
DWORD bitlenQ;
DWORD bitlenJ;
DWORD bitlenX;
DSSSEED DSSSeed;
} DHPRIVKEY_VER3, DSSPRIVKEY_VER3;
typedef struct _KEY_TYPE_SUBTYPE {
DWORD dwKeySpec;
GUID Type;
GUID Subtype;
} KEY_TYPE_SUBTYPE, *PKEY_TYPE_SUBTYPE;
typedef struct _CERT_FORTEZZA_DATA_PROP {
unsigned char SerialNumber[8];
int CertIndex;
unsigned char CertLabel[36];
} CERT_FORTEZZA_DATA_PROP;
typedef struct _CRYPT_RC4_KEY_STATE {
unsigned char Key[16];
unsigned char SBox[256];
unsigned char i;
unsigned char j;
} CRYPT_RC4_KEY_STATE, *PCRYPT_RC4_KEY_STATE;
typedef struct _CRYPT_DES_KEY_STATE {
unsigned char Key[8];
unsigned char IV[8];
unsigned char Feedback[8];
} CRYPT_DES_KEY_STATE, *PCRYPT_DES_KEY_STATE;
typedef struct _CRYPT_3DES_KEY_STATE {
unsigned char Key[24];
unsigned char IV[8];
unsigned char Feedback[8];
} CRYPT_3DES_KEY_STATE, *PCRYPT_3DES_KEY_STATE;
typedef struct _CRYPT_AES_128_KEY_STATE {
unsigned char Key[16];
unsigned char IV[16];
unsigned char EncryptionState[11][16];
unsigned char DecryptionState[11][16];
unsigned char Feedback[16];
} CRYPT_AES_128_KEY_STATE, *PCRYPT_AES_128_KEY_STATE;
typedef struct _CRYPT_AES_256_KEY_STATE {
unsigned char Key[32];
unsigned char IV[16];
unsigned char EncryptionState[15][16];
unsigned char DecryptionState[15][16];
unsigned char Feedback[16];
} CRYPT_AES_256_KEY_STATE, *PCRYPT_AES_256_KEY_STATE;
typedef struct _CRYPTOAPI_BLOB {
DWORD cbData;
_Field_size_bytes_(cbData) BYTE *pbData;
} CRYPT_INTEGER_BLOB, *PCRYPT_INTEGER_BLOB,
CRYPT_UINT_BLOB, *PCRYPT_UINT_BLOB,
CRYPT_OBJID_BLOB, *PCRYPT_OBJID_BLOB,
CERT_NAME_BLOB, *PCERT_NAME_BLOB,
CERT_RDN_VALUE_BLOB, *PCERT_RDN_VALUE_BLOB,
CERT_BLOB, *PCERT_BLOB,
CRL_BLOB, *PCRL_BLOB,
DATA_BLOB, *PDATA_BLOB,
CRYPT_DATA_BLOB, *PCRYPT_DATA_BLOB,
CRYPT_HASH_BLOB, *PCRYPT_HASH_BLOB,
CRYPT_DIGEST_BLOB, *PCRYPT_DIGEST_BLOB,
CRYPT_DER_BLOB, *PCRYPT_DER_BLOB,
CRYPT_ATTR_BLOB, *PCRYPT_ATTR_BLOB;
typedef struct _CMS_DH_KEY_INFO {
DWORD dwVersion;
ALG_ID Algid;
LPSTR pszContentEncObjId;
CRYPT_DATA_BLOB PubInfo;
void *pReserved;
} CMS_DH_KEY_INFO, *PCMS_DH_KEY_INFO;
WINADVAPI
BOOL
WINAPI
CryptAcquireContextA(
_Out_ HCRYPTPROV *phProv,
_In_opt_ LPCSTR szContainer,
_In_opt_ LPCSTR szProvider,
_In_ DWORD dwProvType,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptAcquireContextW(
_Out_ HCRYPTPROV *phProv,
_In_opt_ LPCWSTR szContainer,
_In_opt_ LPCWSTR szProvider,
_In_ DWORD dwProvType,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptReleaseContext(
_In_ HCRYPTPROV hProv,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptGenKey(
_In_ HCRYPTPROV hProv,
_In_ ALG_ID Algid,
_In_ DWORD dwFlags,
_Out_ HCRYPTKEY *phKey
);
WINADVAPI
BOOL
WINAPI
CryptDeriveKey(
_In_ HCRYPTPROV hProv,
_In_ ALG_ID Algid,
_In_ HCRYPTHASH hBaseData,
_In_ DWORD dwFlags,
_Out_ HCRYPTKEY *phKey
);
WINADVAPI
BOOL
WINAPI
CryptDestroyKey(
_In_ HCRYPTKEY hKey
);
WINADVAPI
BOOL
WINAPI
CryptSetKeyParam(
_In_ HCRYPTKEY hKey,
_In_ DWORD dwParam,
_In_ CONST BYTE *pbData,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptGetKeyParam(
_In_ HCRYPTKEY hKey,
_In_ DWORD dwParam,
_Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
_Inout_ DWORD *pdwDataLen,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptSetHashParam(
_In_ HCRYPTHASH hHash,
_In_ DWORD dwParam,
_In_ CONST BYTE *pbData,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptGetHashParam(
_In_ HCRYPTHASH hHash,
_In_ DWORD dwParam,
_Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
_Inout_ DWORD *pdwDataLen,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptSetProvParam(
_In_ HCRYPTPROV hProv,
_In_ DWORD dwParam,
_In_ CONST BYTE *pbData,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptGetProvParam(
_In_ HCRYPTPROV hProv,
_In_ DWORD dwParam,
_Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
_Inout_ DWORD *pdwDataLen,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptGenRandom(
_In_ HCRYPTPROV hProv,
_In_ DWORD dwLen,
_Inout_updates_bytes_(dwLen) BYTE *pbBuffer
);
WINADVAPI
BOOL
WINAPI
CryptGetUserKey(
_In_ HCRYPTPROV hProv,
_In_ DWORD dwKeySpec,
_Out_ HCRYPTKEY *phUserKey
);
WINADVAPI
BOOL
WINAPI
CryptExportKey(
_In_ HCRYPTKEY hKey,
_In_ HCRYPTKEY hExpKey,
_In_ DWORD dwBlobType,
_In_ DWORD dwFlags,
_Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
_Inout_ DWORD *pdwDataLen
);
WINADVAPI
BOOL
WINAPI
CryptImportKey(
_In_ HCRYPTPROV hProv,
_In_reads_bytes_(dwDataLen) CONST BYTE *pbData,
_In_ DWORD dwDataLen,
_In_ HCRYPTKEY hPubKey,
_In_ DWORD dwFlags,
_Out_ HCRYPTKEY *phKey
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptEncrypt(
_In_ HCRYPTKEY hKey,
_In_ HCRYPTHASH hHash,
_In_ BOOL Final,
_In_ DWORD dwFlags,
_Inout_updates_bytes_to_opt_(dwBufLen, *pdwDataLen) BYTE *pbData,
_Inout_ DWORD *pdwDataLen,
_In_ DWORD dwBufLen
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptDecrypt(
_In_ HCRYPTKEY hKey,
_In_ HCRYPTHASH hHash,
_In_ BOOL Final,
_In_ DWORD dwFlags,
_Inout_updates_bytes_to_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
_Inout_ DWORD *pdwDataLen
);
WINADVAPI
BOOL
WINAPI
CryptCreateHash(
_In_ HCRYPTPROV hProv,
_In_ ALG_ID Algid,
_In_ HCRYPTKEY hKey,
_In_ DWORD dwFlags,
_Out_ HCRYPTHASH *phHash
);
WINADVAPI
BOOL
WINAPI
CryptHashData(
_In_ HCRYPTHASH hHash,
_In_reads_bytes_(dwDataLen) CONST BYTE *pbData,
_In_ DWORD dwDataLen,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptHashSessionKey(
_In_ HCRYPTHASH hHash,
_In_ HCRYPTKEY hKey,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptDestroyHash(
_In_ HCRYPTHASH hHash
);
WINADVAPI
BOOL
WINAPI
CryptSignHashA(
_In_ HCRYPTHASH hHash,
_In_ DWORD dwKeySpec,
_In_opt_ LPCSTR szDescription,
_In_ DWORD dwFlags,
_Out_writes_bytes_to_opt_(*pdwSigLen, *pdwSigLen) BYTE *pbSignature,
_Inout_ DWORD *pdwSigLen
);
WINADVAPI
BOOL
WINAPI
CryptSignHashW(
_In_ HCRYPTHASH hHash,
_In_ DWORD dwKeySpec,
_In_opt_ LPCWSTR szDescription,
_In_ DWORD dwFlags,
_Out_writes_bytes_to_opt_(*pdwSigLen, *pdwSigLen) BYTE *pbSignature,
_Inout_ DWORD *pdwSigLen
);
WINADVAPI
BOOL
WINAPI
CryptVerifySignatureA(
_In_ HCRYPTHASH hHash,
_In_reads_bytes_(dwSigLen) CONST BYTE *pbSignature,
_In_ DWORD dwSigLen,
_In_ HCRYPTKEY hPubKey,
_In_opt_ LPCSTR szDescription,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptVerifySignatureW(
_In_ HCRYPTHASH hHash,
_In_reads_bytes_(dwSigLen) CONST BYTE *pbSignature,
_In_ DWORD dwSigLen,
_In_ HCRYPTKEY hPubKey,
_In_opt_ LPCWSTR szDescription,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptSetProviderA(
_In_ LPCSTR pszProvName,
_In_ DWORD dwProvType
);
WINADVAPI
BOOL
WINAPI
CryptSetProviderW(
_In_ LPCWSTR pszProvName,
_In_ DWORD dwProvType
);
WINADVAPI
BOOL
WINAPI
CryptSetProviderExA(
_In_ LPCSTR pszProvName,
_In_ DWORD dwProvType,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptSetProviderExW(
_In_ LPCWSTR pszProvName,
_In_ DWORD dwProvType,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptGetDefaultProviderA(
_In_ DWORD dwProvType,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPSTR pszProvName,
_Inout_ DWORD *pcbProvName
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptGetDefaultProviderW(
_In_ DWORD dwProvType,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPWSTR pszProvName,
_Inout_ DWORD *pcbProvName
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptEnumProviderTypesA(
_In_ DWORD dwIndex,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_ DWORD *pdwProvType,
_Out_writes_bytes_to_opt_(*pcbTypeName, *pcbTypeName) LPSTR szTypeName,
_Inout_ DWORD *pcbTypeName
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptEnumProviderTypesW(
_In_ DWORD dwIndex,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_ DWORD *pdwProvType,
_Out_writes_bytes_to_opt_(*pcbTypeName, *pcbTypeName) LPWSTR szTypeName,
_Inout_ DWORD *pcbTypeName
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptEnumProvidersA(
_In_ DWORD dwIndex,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_ DWORD *pdwProvType,
_Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPSTR szProvName,
_Inout_ DWORD *pcbProvName
);
WINADVAPI
_Success_(0 != return) BOOL
WINAPI
CryptEnumProvidersW(
_In_ DWORD dwIndex,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_ DWORD *pdwProvType,
_Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPWSTR szProvName,
_Inout_ DWORD *pcbProvName
);
WINADVAPI
BOOL
WINAPI
CryptContextAddRef(
_In_ HCRYPTPROV hProv,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags
);
WINADVAPI
BOOL
WINAPI
CryptDuplicateKey(
_In_ HCRYPTKEY hKey,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_ HCRYPTKEY *phKey
);
WINADVAPI
BOOL
WINAPI
CryptDuplicateHash(
_In_ HCRYPTHASH hHash,
_Reserved_ DWORD *pdwReserved,
_In_ DWORD dwFlags,
_Out_ HCRYPTHASH *phHash
);
BOOL
__cdecl
GetEncSChannel(
_Outptr_result_buffer_(*dwDecSize) BYTE **pData,
_Out_ DWORD *dwDecSize
);
typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS;
typedef struct __BCRYPT_KEY_LENGTHS_STRUCT
{
ULONG dwMinLength;
ULONG dwMaxLength;
ULONG dwIncrement;
} BCRYPT_KEY_LENGTHS_STRUCT;
typedef BCRYPT_KEY_LENGTHS_STRUCT BCRYPT_AUTH_TAG_LENGTHS_STRUCT;
typedef struct _BCRYPT_OID
{
ULONG cbOID;
PUCHAR pbOID;
} BCRYPT_OID;
typedef struct _BCRYPT_OID_LIST
{
ULONG dwOIDCount;
BCRYPT_OID *pOIDs;
} BCRYPT_OID_LIST;
typedef struct _BCRYPT_PKCS1_PADDING_INFO
{
LPCWSTR pszAlgId;
} BCRYPT_PKCS1_PADDING_INFO;
typedef struct _BCRYPT_PSS_PADDING_INFO
{
LPCWSTR pszAlgId;
ULONG cbSalt;
} BCRYPT_PSS_PADDING_INFO;
typedef struct _BCRYPT_OAEP_PADDING_INFO
{
LPCWSTR pszAlgId;
PUCHAR pbLabel;
ULONG cbLabel;
} BCRYPT_OAEP_PADDING_INFO;
typedef struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO
{
ULONG cbSize;
ULONG dwInfoVersion;
PUCHAR pbNonce;
ULONG cbNonce;
PUCHAR pbAuthData;
ULONG cbAuthData;
PUCHAR pbTag;
ULONG cbTag;
PUCHAR pbMacContext;
ULONG cbMacContext;
ULONG cbAAD;
ULONGLONG cbData;
ULONG dwFlags;
} BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO, *PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
typedef struct _BCryptBuffer {
ULONG cbBuffer;
ULONG BufferType;
PVOID pvBuffer;
} BCryptBuffer, * PBCryptBuffer;
typedef struct _BCryptBufferDesc {
ULONG ulVersion;
ULONG cBuffers;
PBCryptBuffer pBuffers;
} BCryptBufferDesc, * PBCryptBufferDesc;
typedef PVOID BCRYPT_HANDLE;
typedef PVOID BCRYPT_ALG_HANDLE;
typedef PVOID BCRYPT_KEY_HANDLE;
typedef PVOID BCRYPT_HASH_HANDLE;
typedef PVOID BCRYPT_SECRET_HANDLE;
typedef struct _BCRYPT_KEY_BLOB
{
ULONG Magic;
} BCRYPT_KEY_BLOB;
typedef struct _BCRYPT_RSAKEY_BLOB
{
ULONG Magic;
ULONG BitLength;
ULONG cbPublicExp;
ULONG cbModulus;
ULONG cbPrime1;
ULONG cbPrime2;
} BCRYPT_RSAKEY_BLOB;
typedef struct _BCRYPT_ECCKEY_BLOB
{
ULONG dwMagic;
ULONG cbKey;
} BCRYPT_ECCKEY_BLOB, *PBCRYPT_ECCKEY_BLOB;
typedef struct _SSL_ECCKEY_BLOB
{
ULONG dwCurveType;
ULONG cbKey;
} SSL_ECCKEY_BLOB, *PSSL_ECCKEY_BLOB;
typedef enum
{
BCRYPT_ECC_PRIME_SHORT_WEIERSTRASS_CURVE = 0x1,
BCRYPT_ECC_PRIME_TWISTED_EDWARDS_CURVE = 0x2,
BCRYPT_ECC_PRIME_MONTGOMERY_CURVE = 0x3
} ECC_CURVE_TYPE_ENUM;
typedef enum
{
BCRYPT_NO_CURVE_GENERATION_ALG_ID = 0x0
} ECC_CURVE_ALG_ID_ENUM;
typedef struct _BCRYPT_ECCFULLKEY_BLOB
{
ULONG dwMagic;
ULONG dwVersion;
ECC_CURVE_TYPE_ENUM dwCurveType;
ECC_CURVE_ALG_ID_ENUM dwCurveGenerationAlgId;
ULONG cbFieldLength;
ULONG cbSubgroupOrder;
ULONG cbCofactor;
ULONG cbSeed;
} BCRYPT_ECCFULLKEY_BLOB, *PBCRYPT_ECCFULLKEY_BLOB;
typedef struct _BCRYPT_DH_KEY_BLOB
{
ULONG dwMagic;
ULONG cbKey;
} BCRYPT_DH_KEY_BLOB, *PBCRYPT_DH_KEY_BLOB;
typedef _Struct_size_bytes_(cbLength) struct _BCRYPT_DH_PARAMETER_HEADER
{
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;
typedef struct _BCRYPT_DSA_KEY_BLOB
{
ULONG dwMagic;
ULONG cbKey;
UCHAR Count[4];
UCHAR Seed[20];
UCHAR q[20];
} BCRYPT_DSA_KEY_BLOB, *PBCRYPT_DSA_KEY_BLOB;
typedef enum
{
DSA_HASH_ALGORITHM_SHA1,
DSA_HASH_ALGORITHM_SHA256,
DSA_HASH_ALGORITHM_SHA512
} HASHALGORITHM_ENUM;
typedef enum
{
DSA_FIPS186_2,
DSA_FIPS186_3
} DSAFIPSVERSION_ENUM;
typedef struct _BCRYPT_DSA_KEY_BLOB_V2
{
ULONG dwMagic;
ULONG cbKey;
HASHALGORITHM_ENUM hashAlgorithm;
DSAFIPSVERSION_ENUM standardVersion;
ULONG cbSeedLength;
ULONG cbGroupSize;
UCHAR Count[4];
} BCRYPT_DSA_KEY_BLOB_V2, *PBCRYPT_DSA_KEY_BLOB_V2;
typedef struct _BCRYPT_KEY_DATA_BLOB_HEADER
{
ULONG dwMagic;
ULONG dwVersion;
ULONG cbKeyData;
} BCRYPT_KEY_DATA_BLOB_HEADER, *PBCRYPT_KEY_DATA_BLOB_HEADER;
typedef struct _BCRYPT_DSA_PARAMETER_HEADER
{
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
UCHAR Count[4];
UCHAR Seed[20];
UCHAR q[20];
} BCRYPT_DSA_PARAMETER_HEADER;
typedef struct _BCRYPT_DSA_PARAMETER_HEADER_V2
{
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
HASHALGORITHM_ENUM hashAlgorithm;
DSAFIPSVERSION_ENUM standardVersion;
ULONG cbSeedLength;
ULONG cbGroupSize;
UCHAR Count[4];
} BCRYPT_DSA_PARAMETER_HEADER_V2;
typedef struct _BCRYPT_ECC_CURVE_NAMES
{
ULONG dwEccCurveNames;
LPWSTR *pEccCurveNames;
} BCRYPT_ECC_CURVE_NAMES;
typedef enum {
BCRYPT_HASH_OPERATION_HASH_DATA = 1,
BCRYPT_HASH_OPERATION_FINISH_HASH = 2,
} BCRYPT_HASH_OPERATION_TYPE;
typedef struct _BCRYPT_MULTI_HASH_OPERATION {
ULONG iHash;
BCRYPT_HASH_OPERATION_TYPE hashOperation;
_Field_size_(cbBuffer) PUCHAR pbBuffer;
ULONG cbBuffer;
} BCRYPT_MULTI_HASH_OPERATION;
typedef enum{
BCRYPT_OPERATION_TYPE_HASH = 1,
} BCRYPT_MULTI_OPERATION_TYPE;
typedef struct _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT
{
ULONG cbPerObject;
ULONG cbPerElement;
} BCRYPT_MULTI_OBJECT_LENGTH_STRUCT;
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptOpenAlgorithmProvider(
_Out_ BCRYPT_ALG_HANDLE *phAlgorithm,
_In_z_ LPCWSTR pszAlgId,
_In_opt_z_ LPCWSTR pszImplementation,
_In_ ULONG dwFlags);
typedef struct _BCRYPT_ALGORITHM_IDENTIFIER
{
LPWSTR pszName;
ULONG dwClass;
ULONG dwFlags;
} BCRYPT_ALGORITHM_IDENTIFIER;
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEnumAlgorithms(
_In_ ULONG dwAlgOperations,
_Out_ ULONG *pAlgCount,
_Out_ BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList,
_In_ ULONG dwFlags);
typedef struct _BCRYPT_PROVIDER_NAME
{
LPWSTR pszProviderName;
} BCRYPT_PROVIDER_NAME;
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEnumProviders(
_In_z_ LPCWSTR pszAlgId,
_Out_ ULONG *pImplCount,
_Out_ BCRYPT_PROVIDER_NAME **ppImplList,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptGetProperty(
_In_ BCRYPT_HANDLE hObject,
_In_z_ LPCWSTR pszProperty,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PUCHAR pbOutput,
_In_ ULONG cbOutput,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptSetProperty(
_Inout_ BCRYPT_HANDLE hObject,
_In_z_ LPCWSTR pszProperty,
_In_reads_bytes_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_In_ ULONG dwFlags);
NTSTATUS
WINAPI
BCryptCloseAlgorithmProvider(
_Inout_ BCRYPT_ALG_HANDLE hAlgorithm,
_In_ ULONG dwFlags);
VOID
WINAPI
BCryptFreeBuffer(
_In_ PVOID pvBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptGenerateSymmetricKey(
_Inout_ BCRYPT_ALG_HANDLE hAlgorithm,
_Out_ BCRYPT_KEY_HANDLE *phKey,
_Out_writes_bytes_all_opt_(cbKeyObject) PUCHAR pbKeyObject,
_In_ ULONG cbKeyObject,
_In_reads_bytes_(cbSecret) PUCHAR pbSecret,
_In_ ULONG cbSecret,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptGenerateKeyPair(
_Inout_ BCRYPT_ALG_HANDLE hAlgorithm,
_Out_ BCRYPT_KEY_HANDLE *phKey,
_In_ ULONG dwLength,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEncrypt(
_Inout_ BCRYPT_KEY_HANDLE hKey,
_In_reads_bytes_opt_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_In_opt_ VOID *pPaddingInfo,
_Inout_updates_bytes_opt_(cbIV) PUCHAR pbIV,
_In_ ULONG cbIV,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PUCHAR pbOutput,
_In_ ULONG cbOutput,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDecrypt(
_Inout_ BCRYPT_KEY_HANDLE hKey,
_In_reads_bytes_opt_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_In_opt_ VOID *pPaddingInfo,
_Inout_updates_bytes_opt_(cbIV) PUCHAR pbIV,
_In_ ULONG cbIV,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PUCHAR pbOutput,
_In_ ULONG cbOutput,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptExportKey(
_In_ BCRYPT_KEY_HANDLE hKey,
_In_opt_ BCRYPT_KEY_HANDLE hExportKey,
_In_z_ LPCWSTR pszBlobType,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PUCHAR pbOutput,
_In_ ULONG cbOutput,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptImportKey(
_In_ BCRYPT_ALG_HANDLE hAlgorithm,
_In_opt_ BCRYPT_KEY_HANDLE hImportKey,
_In_z_ LPCWSTR pszBlobType,
_Out_ BCRYPT_KEY_HANDLE *phKey,
_Out_writes_bytes_all_opt_(cbKeyObject) PUCHAR pbKeyObject,
_In_ ULONG cbKeyObject,
_In_reads_bytes_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptImportKeyPair(
_In_ BCRYPT_ALG_HANDLE hAlgorithm,
_In_opt_ BCRYPT_KEY_HANDLE hImportKey,
_In_z_ LPCWSTR pszBlobType,
_Out_ BCRYPT_KEY_HANDLE *phKey,
_In_reads_bytes_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDuplicateKey(
_In_ BCRYPT_KEY_HANDLE hKey,
_Out_ BCRYPT_KEY_HANDLE *phNewKey,
_Out_writes_bytes_all_opt_(cbKeyObject) PUCHAR pbKeyObject,
_In_ ULONG cbKeyObject,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptFinalizeKeyPair(
_Inout_ BCRYPT_KEY_HANDLE hKey,
_In_ ULONG dwFlags);
NTSTATUS
WINAPI
BCryptDestroyKey(
_Inout_ BCRYPT_KEY_HANDLE hKey);
NTSTATUS
WINAPI
BCryptDestroySecret(
_Inout_ BCRYPT_SECRET_HANDLE hSecret);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptSignHash(
_In_ BCRYPT_KEY_HANDLE hKey,
_In_opt_ VOID *pPaddingInfo,
_In_reads_bytes_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PUCHAR pbOutput,
_In_ ULONG cbOutput,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptVerifySignature(
_In_ BCRYPT_KEY_HANDLE hKey,
_In_opt_ VOID *pPaddingInfo,
_In_reads_bytes_(cbHash) PUCHAR pbHash,
_In_ ULONG cbHash,
_In_reads_bytes_(cbSignature) PUCHAR pbSignature,
_In_ ULONG cbSignature,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptSecretAgreement(
_In_ BCRYPT_KEY_HANDLE hPrivKey,
_In_ BCRYPT_KEY_HANDLE hPubKey,
_Out_ BCRYPT_SECRET_HANDLE *phAgreedSecret,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDeriveKey(
_In_ BCRYPT_SECRET_HANDLE hSharedSecret,
_In_z_ LPCWSTR pwszKDF,
_In_opt_ BCryptBufferDesc *pParameterList,
_Out_writes_bytes_to_opt_(cbDerivedKey, *pcbResult) PUCHAR pbDerivedKey,
_In_ ULONG cbDerivedKey,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptKeyDerivation(
_In_ BCRYPT_KEY_HANDLE hKey,
_In_opt_ BCryptBufferDesc *pParameterList,
_Out_writes_bytes_to_(cbDerivedKey, *pcbResult) PUCHAR pbDerivedKey,
_In_ ULONG cbDerivedKey,
_Out_ ULONG *pcbResult,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptCreateHash(
_Inout_ BCRYPT_ALG_HANDLE hAlgorithm,
_Out_ BCRYPT_HASH_HANDLE *phHash,
_Out_writes_bytes_all_opt_(cbHashObject) PUCHAR pbHashObject,
_In_ ULONG cbHashObject,
_In_reads_bytes_opt_(cbSecret) PUCHAR pbSecret,
_In_ ULONG cbSecret,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptHashData(
_Inout_ BCRYPT_HASH_HANDLE hHash,
_In_reads_bytes_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptFinishHash(
_Inout_ BCRYPT_HASH_HANDLE hHash,
_Out_writes_bytes_all_(cbOutput) PUCHAR pbOutput,
_In_ ULONG cbOutput,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptCreateMultiHash(
_Inout_ BCRYPT_ALG_HANDLE hAlgorithm,
_Out_ BCRYPT_HASH_HANDLE *phHash,
_In_ ULONG nHashes,
_Out_writes_bytes_all_opt_(cbHashObject) PUCHAR pbHashObject,
_In_ ULONG cbHashObject,
_In_reads_bytes_opt_(cbSecret) PUCHAR pbSecret,
_In_ ULONG cbSecret,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptProcessMultiOperations(
_Inout_ BCRYPT_HANDLE hObject,
_In_ BCRYPT_MULTI_OPERATION_TYPE operationType,
_In_reads_bytes_(cbOperations) PVOID pOperations,
_In_ ULONG cbOperations,
_In_ ULONG dwFlags );
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDuplicateHash(
_In_ BCRYPT_HASH_HANDLE hHash,
_Out_ BCRYPT_HASH_HANDLE *phNewHash,
_Out_writes_bytes_all_opt_(cbHashObject) PUCHAR pbHashObject,
_In_ ULONG cbHashObject,
_In_ ULONG dwFlags);
NTSTATUS
WINAPI
BCryptDestroyHash(
_Inout_ BCRYPT_HASH_HANDLE hHash);
NTSTATUS
WINAPI
BCryptHash(
_Inout_ BCRYPT_ALG_HANDLE hAlgorithm,
_In_reads_bytes_opt_(cbSecret) PUCHAR pbSecret,
_In_ ULONG cbSecret,
_In_reads_bytes_(cbInput) PUCHAR pbInput,
_In_ ULONG cbInput,
_Out_writes_bytes_all_(cbOutput) PUCHAR pbOutput,
_In_ ULONG cbOutput );
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptGenRandom(
_In_opt_ BCRYPT_ALG_HANDLE hAlgorithm,
_Out_writes_bytes_(cbBuffer) PUCHAR pbBuffer,
_In_ ULONG cbBuffer,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDeriveKeyCapi(
_In_ BCRYPT_HASH_HANDLE hHash,
_In_opt_ BCRYPT_ALG_HANDLE hTargetAlg,
_Out_writes_bytes_( cbDerivedKey ) PUCHAR pbDerivedKey,
_In_ ULONG cbDerivedKey,
_In_ ULONG dwFlags);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDeriveKeyPBKDF2(
_In_ BCRYPT_ALG_HANDLE hPrf,
_In_reads_bytes_opt_( cbPassword ) PUCHAR pbPassword,
_In_ ULONG cbPassword,
_In_reads_bytes_opt_( cbSalt ) PUCHAR pbSalt,
_In_ ULONG cbSalt,
_In_ ULONGLONG cIterations,
_Out_writes_bytes_( cbDerivedKey ) PUCHAR pbDerivedKey,
_In_ ULONG cbDerivedKey,
_In_ ULONG dwFlags);
typedef struct _BCRYPT_INTERFACE_VERSION
{
USHORT MajorVersion;
USHORT MinorVersion;
} BCRYPT_INTERFACE_VERSION, *PBCRYPT_INTERFACE_VERSION;
typedef struct _CRYPT_INTERFACE_REG
{
ULONG dwInterface;
ULONG dwFlags;
ULONG cFunctions;
PWSTR *rgpszFunctions;
}
CRYPT_INTERFACE_REG, *PCRYPT_INTERFACE_REG;
typedef struct _CRYPT_IMAGE_REG
{
PWSTR pszImage;
ULONG cInterfaces;
PCRYPT_INTERFACE_REG *rgpInterfaces;
}
CRYPT_IMAGE_REG, *PCRYPT_IMAGE_REG;
typedef struct _CRYPT_PROVIDER_REG
{
ULONG cAliases;
PWSTR *rgpszAliases;
PCRYPT_IMAGE_REG pUM;
PCRYPT_IMAGE_REG pKM;
}
CRYPT_PROVIDER_REG, *PCRYPT_PROVIDER_REG;
typedef struct _CRYPT_PROVIDERS
{
ULONG cProviders;
PWSTR *rgpszProviders;
}
CRYPT_PROVIDERS, *PCRYPT_PROVIDERS;
typedef struct _CRYPT_CONTEXT_CONFIG
{
ULONG dwFlags;
ULONG dwReserved;
}
CRYPT_CONTEXT_CONFIG, *PCRYPT_CONTEXT_CONFIG;
typedef struct _CRYPT_CONTEXT_FUNCTION_CONFIG
{
ULONG dwFlags;
ULONG dwReserved;
}
CRYPT_CONTEXT_FUNCTION_CONFIG, *PCRYPT_CONTEXT_FUNCTION_CONFIG;
typedef struct _CRYPT_CONTEXTS
{
ULONG cContexts;
PWSTR *rgpszContexts;
}
CRYPT_CONTEXTS, *PCRYPT_CONTEXTS;
typedef struct _CRYPT_CONTEXT_FUNCTIONS
{
ULONG cFunctions;
PWSTR *rgpszFunctions;
}
CRYPT_CONTEXT_FUNCTIONS, *PCRYPT_CONTEXT_FUNCTIONS;
typedef struct _CRYPT_CONTEXT_FUNCTION_PROVIDERS
{
ULONG cProviders;
PWSTR *rgpszProviders;
}
CRYPT_CONTEXT_FUNCTION_PROVIDERS, *PCRYPT_CONTEXT_FUNCTION_PROVIDERS;
typedef struct _CRYPT_PROPERTY_REF
{
PWSTR pszProperty;
ULONG cbValue;
PUCHAR pbValue;
}
CRYPT_PROPERTY_REF, *PCRYPT_PROPERTY_REF;
typedef struct _CRYPT_IMAGE_REF
{
PWSTR pszImage;
ULONG dwFlags;
}
CRYPT_IMAGE_REF, *PCRYPT_IMAGE_REF;
typedef struct _CRYPT_PROVIDER_REF
{
ULONG dwInterface;
PWSTR pszFunction;
PWSTR pszProvider;
ULONG cProperties;
PCRYPT_PROPERTY_REF *rgpProperties;
PCRYPT_IMAGE_REF pUM;
PCRYPT_IMAGE_REF pKM;
}
CRYPT_PROVIDER_REF, *PCRYPT_PROVIDER_REF;
typedef struct _CRYPT_PROVIDER_REFS
{
ULONG cProviders;
PCRYPT_PROVIDER_REF *rgpProviders;
}
CRYPT_PROVIDER_REFS, *PCRYPT_PROVIDER_REFS;
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptQueryProviderRegistration(
_In_z_ LPCWSTR pszProvider,
_In_ ULONG dwMode,
_In_ ULONG dwInterface,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_PROVIDER_REG *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEnumRegisteredProviders(
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_PROVIDERS *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptCreateContext(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_opt_ PCRYPT_CONTEXT_CONFIG pConfig);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptDeleteContext(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEnumContexts(
_In_ ULONG dwTable,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_CONTEXTS *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptConfigureContext(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ PCRYPT_CONTEXT_CONFIG pConfig);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptQueryContextConfiguration(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_CONTEXT_CONFIG *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptAddContextFunction(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction,
_In_ ULONG dwPosition);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptRemoveContextFunction(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEnumContextFunctions(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_CONTEXT_FUNCTIONS *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptConfigureContextFunction(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction,
_In_ PCRYPT_CONTEXT_FUNCTION_CONFIG pConfig);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptQueryContextFunctionConfiguration(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_CONTEXT_FUNCTION_CONFIG *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptEnumContextFunctionProviders(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_CONTEXT_FUNCTION_PROVIDERS *ppBuffer);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptSetContextFunctionProperty(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction,
_In_z_ LPCWSTR pszProperty,
_In_ ULONG cbValue,
_In_reads_bytes_opt_(cbValue) PUCHAR pbValue);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptQueryContextFunctionProperty(
_In_ ULONG dwTable,
_In_z_ LPCWSTR pszContext,
_In_ ULONG dwInterface,
_In_z_ LPCWSTR pszFunction,
_In_z_ LPCWSTR pszProperty,
_Inout_ ULONG* pcbValue,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PUCHAR *ppbValue);
_Must_inspect_result_
NTSTATUS
WINAPI
BCryptRegisterConfigChangeNotify(
_Out_ HANDLE *phEvent);
NTSTATUS
WINAPI
BCryptUnregisterConfigChangeNotify(
_In_ HANDLE hEvent);
_Must_inspect_result_
NTSTATUS WINAPI
BCryptResolveProviders(
_In_opt_z_ LPCWSTR pszContext,
_In_opt_ ULONG dwInterface,
_In_opt_z_ LPCWSTR pszFunction,
_In_opt_z_ LPCWSTR pszProvider,
_In_ ULONG dwMode,
_In_ ULONG dwFlags,
_Inout_ ULONG* pcbBuffer,
_Outptr_opt_result_bytebuffer_all_maybenull_(*pcbBuffer) PCRYPT_PROVIDER_REFS *ppBuffer);
NTSTATUS
WINAPI
BCryptGetFipsAlgorithmMode(
_Out_ BOOLEAN *pfEnabled
);
BOOLEAN
CngGetFipsAlgorithmMode(
VOID
);
typedef LONG SECURITY_STATUS;
typedef LPVOID (WINAPI *PFN_NCRYPT_ALLOC)(
_In_ SIZE_T cbSize
);
typedef VOID (WINAPI *PFN_NCRYPT_FREE)(
_In_ LPVOID pv
);
typedef struct NCRYPT_ALLOC_PARA {
DWORD cbSize;
PFN_NCRYPT_ALLOC pfnAlloc;
PFN_NCRYPT_FREE pfnFree;
} NCRYPT_ALLOC_PARA;
typedef BCryptBuffer NCryptBuffer;
typedef BCryptBuffer* PNCryptBuffer;
typedef BCryptBufferDesc NCryptBufferDesc;
typedef BCryptBufferDesc* PNCryptBufferDesc;
typedef ULONG_PTR NCRYPT_HANDLE;
typedef ULONG_PTR NCRYPT_PROV_HANDLE;
typedef ULONG_PTR NCRYPT_KEY_HANDLE;
typedef ULONG_PTR NCRYPT_HASH_HANDLE;
typedef ULONG_PTR NCRYPT_SECRET_HANDLE;
typedef _Struct_size_bytes_(cbSize + cbIV + cbOtherInfo)
struct _NCRYPT_CIPHER_PADDING_INFO
{
ULONG cbSize;
DWORD dwFlags;
_Field_size_bytes_(cbIV)
PUCHAR pbIV;
ULONG cbIV;
_Field_size_bytes_(cbOtherInfo)
PUCHAR pbOtherInfo;
ULONG cbOtherInfo;
} NCRYPT_CIPHER_PADDING_INFO, *PNCRYPT_CIPHER_PADDING_INFO;
typedef struct _NCRYPT_PLATFORM_ATTEST_PADDING_INFO {
ULONG magic;
ULONG pcrMask;
} NCRYPT_PLATFORM_ATTEST_PADDING_INFO;
typedef struct _NCRYPT_KEY_ATTEST_PADDING_INFO {
ULONG magic;
PUCHAR pbKeyBlob;
ULONG cbKeyBlob;
PUCHAR pbKeyAuth;
ULONG cbKeyAuth;
} NCRYPT_KEY_ATTEST_PADDING_INFO;
typedef struct _NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES
{
ULONG Version;
ULONG Flags;
ULONG cbPublicKeyBlob;
} NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES, *PNCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES;
typedef struct _NCRYPT_VSM_KEY_ATTESTATION_STATEMENT
{
ULONG Magic;
ULONG Version;
ULONG cbSignature;
ULONG cbReport;
ULONG cbAttributes;
} NCRYPT_VSM_KEY_ATTESTATION_STATEMENT, *PNCRYPT_VSM_KEY_ATTESTATION_STATEMENT;
typedef struct _NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS
{
ULONG Version;
ULONGLONG TrustletId;
ULONG MinSvn;
ULONG FlagsMask;
ULONG FlagsExpected;
ULONG AllowDebugging : 1;
ULONG Reserved : 31;
} NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS, *PNCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS;
typedef struct _NCRYPT_EXPORTED_ISOLATED_KEY_HEADER
{
ULONG Version;
ULONG KeyUsage;
ULONG PerBootKey : 1;
ULONG Reserved : 31;
ULONG cbAlgName;
ULONG cbNonce;
ULONG cbAuthTag;
ULONG cbWrappingKey;
ULONG cbIsolatedKey;
} NCRYPT_EXPORTED_ISOLATED_KEY_HEADER, *PNCRYPT_EXPORTED_ISOLATED_KEY_HEADER;
typedef struct _NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE
{
NCRYPT_EXPORTED_ISOLATED_KEY_HEADER Header;
} NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE, *PNCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE;
typedef struct __NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT
{
UINT32 Magic;
UINT32 Version;
UINT32 HeaderSize;
UINT32 cbCertifyInfo;
UINT32 cbSignature;
UINT32 cbTpmPublic;
} NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT,*PNCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT;
typedef struct _NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT
{
ULONG Magic;
ULONG Version;
ULONG pcrAlg;
ULONG cbSignature;
ULONG cbQuote;
ULONG cbPcrs;
} NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT, *PNCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT;
_Check_return_
SECURITY_STATUS
WINAPI
NCryptOpenStorageProvider(
_Out_ NCRYPT_PROV_HANDLE *phProvider,
_In_opt_ LPCWSTR pszProviderName,
_In_ DWORD dwFlags);
typedef struct _NCryptAlgorithmName
{
LPWSTR pszName;
DWORD dwClass;
DWORD dwAlgOperations;
DWORD dwFlags;
} NCryptAlgorithmName;
_Check_return_
SECURITY_STATUS
WINAPI
NCryptEnumAlgorithms(
_In_ NCRYPT_PROV_HANDLE hProvider,
_In_ DWORD dwAlgOperations,
_Out_ DWORD * pdwAlgCount,
_Outptr_result_buffer_(*pdwAlgCount) NCryptAlgorithmName **ppAlgList,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptIsAlgSupported(
_In_ NCRYPT_PROV_HANDLE hProvider,
_In_ LPCWSTR pszAlgId,
_In_ DWORD dwFlags);
typedef struct NCryptKeyName
{
LPWSTR pszName;
LPWSTR pszAlgid;
DWORD dwLegacyKeySpec;
DWORD dwFlags;
} NCryptKeyName;
_Check_return_
SECURITY_STATUS
WINAPI
NCryptEnumKeys(
_In_ NCRYPT_PROV_HANDLE hProvider,
_In_opt_ LPCWSTR pszScope,
_Outptr_ NCryptKeyName **ppKeyName,
_Inout_ PVOID * ppEnumState,
_In_ DWORD dwFlags);
typedef struct NCryptProviderName
{
LPWSTR pszName;
LPWSTR pszComment;
} NCryptProviderName;
_Check_return_
SECURITY_STATUS
WINAPI
NCryptEnumStorageProviders(
_Out_ DWORD * pdwProviderCount,
_Outptr_result_buffer_(*pdwProviderCount) NCryptProviderName **ppProviderList,
_In_ DWORD dwFlags);
SECURITY_STATUS
WINAPI
NCryptFreeBuffer(
_Pre_notnull_ PVOID pvInput);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptOpenKey(
_In_ NCRYPT_PROV_HANDLE hProvider,
_Out_ NCRYPT_KEY_HANDLE *phKey,
_In_ LPCWSTR pszKeyName,
_In_opt_ DWORD dwLegacyKeySpec,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptCreatePersistedKey(
_In_ NCRYPT_PROV_HANDLE hProvider,
_Out_ NCRYPT_KEY_HANDLE *phKey,
_In_ LPCWSTR pszAlgId,
_In_opt_ LPCWSTR pszKeyName,
_In_ DWORD dwLegacyKeySpec,
_In_ DWORD dwFlags);
typedef struct __NCRYPT_UI_POLICY
{
DWORD dwVersion;
DWORD dwFlags;
LPCWSTR pszCreationTitle;
LPCWSTR pszFriendlyName;
LPCWSTR pszDescription;
} NCRYPT_UI_POLICY;
typedef struct __NCRYPT_KEY_ACCESS_POLICY_BLOB
{
DWORD dwVersion;
DWORD dwPolicyFlags;
DWORD cbUserSid;
DWORD cbApplicationSid;
}NCRYPT_KEY_ACCESS_POLICY_BLOB;
typedef struct __NCRYPT_SUPPORTED_LENGTHS
{
DWORD dwMinLength;
DWORD dwMaxLength;
DWORD dwIncrement;
DWORD dwDefaultLength;
} NCRYPT_SUPPORTED_LENGTHS;
typedef struct __NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO
{
DWORD dwVersion;
INT32 iExpiration;
BYTE pabNonce[32];
BYTE pabPolicyRef[32];
BYTE pabHMAC[32];
} NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO;
typedef struct __NCRYPT_PCP_TPM_FW_VERSION_INFO
{
UINT16 major1;
UINT16 major2;
UINT16 minor1;
UINT16 minor2;
} NCRYPT_PCP_TPM_FW_VERSION_INFO;
typedef struct __NCRYPT_PCP_RAW_POLICYDIGEST
{
DWORD dwVersion;
DWORD cbDigest;
} NCRYPT_PCP_RAW_POLICYDIGEST_INFO;
_Check_return_
_Success_( return == 0 )
SECURITY_STATUS
WINAPI
NCryptGetProperty(
_In_ NCRYPT_HANDLE hObject,
_In_ LPCWSTR pszProperty,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD * pcbResult,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptSetProperty(
_In_ NCRYPT_HANDLE hObject,
_In_ LPCWSTR pszProperty,
_In_reads_bytes_(cbInput) PBYTE pbInput,
_In_ DWORD cbInput,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptFinalizeKey(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptEncrypt(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_reads_bytes_opt_(cbInput) PBYTE pbInput,
_In_ DWORD cbInput,
_In_opt_ VOID *pPaddingInfo,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD * pcbResult,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptDecrypt(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_reads_bytes_opt_(cbInput) PBYTE pbInput,
_In_ DWORD cbInput,
_In_opt_ VOID *pPaddingInfo,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD * pcbResult,
_In_ DWORD dwFlags);
typedef struct _NCRYPT_KEY_BLOB_HEADER
{
ULONG cbSize;
ULONG dwMagic;
ULONG cbAlgName;
ULONG cbKeyData;
} NCRYPT_KEY_BLOB_HEADER, *PNCRYPT_KEY_BLOB_HEADER;
typedef struct NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER
{
DWORD magic;
DWORD cbHeader;
DWORD cbPublic;
DWORD cbPrivate;
DWORD cbName;
} NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER, *PNCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER;
_Check_return_
SECURITY_STATUS
WINAPI
NCryptImportKey(
_In_ NCRYPT_PROV_HANDLE hProvider,
_In_opt_ NCRYPT_KEY_HANDLE hImportKey,
_In_ LPCWSTR pszBlobType,
_In_opt_ NCryptBufferDesc *pParameterList,
_Out_ NCRYPT_KEY_HANDLE *phKey,
_In_reads_bytes_(cbData) PBYTE pbData,
_In_ DWORD cbData,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptExportKey(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_opt_ NCRYPT_KEY_HANDLE hExportKey,
_In_ LPCWSTR pszBlobType,
_In_opt_ NCryptBufferDesc *pParameterList,
_Out_writes_bytes_to_opt_(cbOutput, *pcbResult) PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD * pcbResult,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptSignHash(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_opt_ VOID *pPaddingInfo,
_In_reads_bytes_(cbHashValue) PBYTE pbHashValue,
_In_ DWORD cbHashValue,
_Out_writes_bytes_to_opt_(cbSignature, *pcbResult) PBYTE pbSignature,
_In_ DWORD cbSignature,
_Out_ DWORD * pcbResult,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptVerifySignature(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_opt_ VOID *pPaddingInfo,
_In_reads_bytes_(cbHashValue) PBYTE pbHashValue,
_In_ DWORD cbHashValue,
_In_reads_bytes_(cbSignature) PBYTE pbSignature,
_In_ DWORD cbSignature,
_In_ DWORD dwFlags);
SECURITY_STATUS
WINAPI
NCryptDeleteKey(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_ DWORD dwFlags);
SECURITY_STATUS
WINAPI
NCryptFreeObject(
_In_ NCRYPT_HANDLE hObject);
BOOL
WINAPI
NCryptIsKeyHandle(
_In_ NCRYPT_KEY_HANDLE hKey);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptTranslateHandle(
_Out_opt_ NCRYPT_PROV_HANDLE *phProvider,
_Out_ NCRYPT_KEY_HANDLE *phKey,
_In_ HCRYPTPROV hLegacyProv,
_In_opt_ HCRYPTKEY hLegacyKey,
_In_opt_ DWORD dwLegacyKeySpec,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptNotifyChangeKey(
_In_ NCRYPT_PROV_HANDLE hProvider,
_Inout_ HANDLE *phEvent,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptSecretAgreement(
_In_ NCRYPT_KEY_HANDLE hPrivKey,
_In_ NCRYPT_KEY_HANDLE hPubKey,
_Out_ NCRYPT_SECRET_HANDLE *phAgreedSecret,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptDeriveKey(
_In_ NCRYPT_SECRET_HANDLE hSharedSecret,
_In_ LPCWSTR pwszKDF,
_In_opt_ NCryptBufferDesc *pParameterList,
_Out_writes_bytes_to_opt_(cbDerivedKey, *pcbResult) PBYTE pbDerivedKey,
_In_ DWORD cbDerivedKey,
_Out_ DWORD *pcbResult,
_In_ ULONG dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptKeyDerivation(
_In_ NCRYPT_KEY_HANDLE hKey,
_In_opt_ NCryptBufferDesc *pParameterList,
_Out_writes_bytes_to_(cbDerivedKey, *pcbResult) PUCHAR pbDerivedKey,
_In_ DWORD cbDerivedKey,
_Out_ DWORD *pcbResult,
_In_ ULONG dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptCreateClaim(
_In_opt_ NCRYPT_KEY_HANDLE hSubjectKey,
_In_opt_ NCRYPT_KEY_HANDLE hAuthorityKey,
_In_ DWORD dwClaimType,
_In_opt_ NCryptBufferDesc *pParameterList,
_Out_writes_bytes_to_opt_(cbClaimBlob, *pcbResult) PBYTE pbClaimBlob,
_In_ DWORD cbClaimBlob,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags);
_Check_return_
SECURITY_STATUS
WINAPI
NCryptVerifyClaim(
_In_ NCRYPT_KEY_HANDLE hSubjectKey,
_In_opt_ NCRYPT_KEY_HANDLE hAuthorityKey,
_In_ DWORD dwClaimType,
_In_opt_ NCryptBufferDesc *pParameterList,
_In_reads_bytes_(cbClaimBlob) PBYTE pbClaimBlob,
_In_ DWORD cbClaimBlob,
_Out_ NCryptBufferDesc *pOutput,
_In_ DWORD dwFlags);
typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE;
typedef ULONG_PTR HCRYPTPROV_LEGACY;
typedef struct _CRYPT_BIT_BLOB {
DWORD cbData;
BYTE *pbData;
DWORD cUnusedBits;
} CRYPT_BIT_BLOB, *PCRYPT_BIT_BLOB;
typedef struct _CRYPT_ALGORITHM_IDENTIFIER {
LPSTR pszObjId;
CRYPT_OBJID_BLOB Parameters;
} CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER;
typedef struct _CRYPT_OBJID_TABLE {
DWORD dwAlgId;
LPCSTR pszObjId;
} CRYPT_OBJID_TABLE, *PCRYPT_OBJID_TABLE;
typedef struct _CRYPT_HASH_INFO {
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
CRYPT_HASH_BLOB Hash;
} CRYPT_HASH_INFO, *PCRYPT_HASH_INFO;
typedef struct _CERT_EXTENSION {
LPSTR pszObjId;
BOOL fCritical;
CRYPT_OBJID_BLOB Value;
} CERT_EXTENSION, *PCERT_EXTENSION;
typedef const CERT_EXTENSION* PCCERT_EXTENSION;
typedef struct _CRYPT_ATTRIBUTE_TYPE_VALUE {
LPSTR pszObjId;
CRYPT_OBJID_BLOB Value;
} CRYPT_ATTRIBUTE_TYPE_VALUE, *PCRYPT_ATTRIBUTE_TYPE_VALUE;
typedef struct _CRYPT_ATTRIBUTE {
LPSTR pszObjId;
DWORD cValue;
PCRYPT_ATTR_BLOB rgValue;
} CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE;
typedef struct _CRYPT_ATTRIBUTES {
DWORD cAttr;
PCRYPT_ATTRIBUTE rgAttr;
} CRYPT_ATTRIBUTES, *PCRYPT_ATTRIBUTES;
typedef struct _CERT_RDN_ATTR {
LPSTR pszObjId;
DWORD dwValueType;
CERT_RDN_VALUE_BLOB Value;
} CERT_RDN_ATTR, *PCERT_RDN_ATTR;
typedef struct _CERT_RDN {
DWORD cRDNAttr;
PCERT_RDN_ATTR rgRDNAttr;
} CERT_RDN, *PCERT_RDN;
typedef struct _CERT_NAME_INFO {
DWORD cRDN;
PCERT_RDN rgRDN;
} CERT_NAME_INFO, *PCERT_NAME_INFO;
typedef struct _CERT_NAME_VALUE {
DWORD dwValueType;
CERT_RDN_VALUE_BLOB Value;
} CERT_NAME_VALUE, *PCERT_NAME_VALUE;
typedef struct _CERT_PUBLIC_KEY_INFO {
CRYPT_ALGORITHM_IDENTIFIER Algorithm;
CRYPT_BIT_BLOB PublicKey;
} CERT_PUBLIC_KEY_INFO, *PCERT_PUBLIC_KEY_INFO;
typedef struct _CRYPT_ECC_PRIVATE_KEY_INFO{
DWORD dwVersion;
CRYPT_DER_BLOB PrivateKey;
LPSTR szCurveOid;
CRYPT_BIT_BLOB PublicKey;
} CRYPT_ECC_PRIVATE_KEY_INFO, *PCRYPT_ECC_PRIVATE_KEY_INFO;
typedef struct _CRYPT_PRIVATE_KEY_INFO{
DWORD Version;
CRYPT_ALGORITHM_IDENTIFIER Algorithm;
CRYPT_DER_BLOB PrivateKey;
PCRYPT_ATTRIBUTES pAttributes;
} CRYPT_PRIVATE_KEY_INFO, *PCRYPT_PRIVATE_KEY_INFO;
typedef struct _CRYPT_ENCRYPTED_PRIVATE_KEY_INFO{
CRYPT_ALGORITHM_IDENTIFIER EncryptionAlgorithm;
CRYPT_DATA_BLOB EncryptedPrivateKey;
} CRYPT_ENCRYPTED_PRIVATE_KEY_INFO, *PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO;
typedef BOOL (CALLBACK *PCRYPT_DECRYPT_PRIVATE_KEY_FUNC)(
_In_ CRYPT_ALGORITHM_IDENTIFIER Algorithm,
_In_ CRYPT_DATA_BLOB EncryptedPrivateKey,
_Out_writes_bytes_opt_ (*pcbClearTextKey) BYTE* pbClearTextKey,
_Inout_ DWORD* pcbClearTextKey,
_In_ LPVOID pVoidDecryptFunc);
typedef BOOL (CALLBACK *PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC)(
_Out_ CRYPT_ALGORITHM_IDENTIFIER* pAlgorithm,
_In_ CRYPT_DATA_BLOB* pClearTextPrivateKey,
_Out_writes_bytes_opt_ (*pcbEncryptedKey) BYTE* pbEncryptedKey,
_Inout_ DWORD* pcbEncryptedKey,
_In_ LPVOID pVoidEncryptFunc);
typedef BOOL (CALLBACK *PCRYPT_RESOLVE_HCRYPTPROV_FUNC)(
CRYPT_PRIVATE_KEY_INFO *pPrivateKeyInfo,
HCRYPTPROV *phCryptProv,
LPVOID pVoidResolveFunc);
typedef struct _CRYPT_PKCS8_IMPORT_PARAMS{
CRYPT_DIGEST_BLOB PrivateKey;
PCRYPT_RESOLVE_HCRYPTPROV_FUNC pResolvehCryptProvFunc;
LPVOID pVoidResolveFunc;
PCRYPT_DECRYPT_PRIVATE_KEY_FUNC pDecryptPrivateKeyFunc;
LPVOID pVoidDecryptFunc;
} CRYPT_PKCS8_IMPORT_PARAMS, *PCRYPT_PKCS8_IMPORT_PARAMS, CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS, *PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS;
typedef struct _CRYPT_PKCS8_EXPORT_PARAMS{
HCRYPTPROV hCryptProv;
DWORD dwKeySpec;
LPSTR pszPrivateKeyObjId;
PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC pEncryptPrivateKeyFunc;
LPVOID pVoidEncryptFunc;
} CRYPT_PKCS8_EXPORT_PARAMS, *PCRYPT_PKCS8_EXPORT_PARAMS;
typedef struct _CERT_INFO {
DWORD dwVersion;
CRYPT_INTEGER_BLOB SerialNumber;
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
CERT_NAME_BLOB Issuer;
FILETIME NotBefore;
FILETIME NotAfter;
CERT_NAME_BLOB Subject;
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo;
CRYPT_BIT_BLOB IssuerUniqueId;
CRYPT_BIT_BLOB SubjectUniqueId;
DWORD cExtension;
PCERT_EXTENSION rgExtension;
} CERT_INFO, *PCERT_INFO;
typedef struct _CRL_ENTRY {
CRYPT_INTEGER_BLOB SerialNumber;
FILETIME RevocationDate;
DWORD cExtension;
PCERT_EXTENSION rgExtension;
} CRL_ENTRY, *PCRL_ENTRY;
typedef struct _CRL_INFO {
DWORD dwVersion;
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
CERT_NAME_BLOB Issuer;
FILETIME ThisUpdate;
FILETIME NextUpdate;
DWORD cCRLEntry;
PCRL_ENTRY rgCRLEntry;
DWORD cExtension;
PCERT_EXTENSION rgExtension;
} CRL_INFO, *PCRL_INFO;
typedef struct _CERT_OR_CRL_BLOB {
DWORD dwChoice;
DWORD cbEncoded;
_Field_size_bytes_(cbEncoded)
BYTE *pbEncoded;
} CERT_OR_CRL_BLOB, * PCERT_OR_CRL_BLOB;
typedef struct _CERT_OR_CRL_BUNDLE {
DWORD cItem;
_Field_size_(cItem)
PCERT_OR_CRL_BLOB rgItem;
} CERT_OR_CRL_BUNDLE, *PCERT_OR_CRL_BUNDLE;
typedef struct _CERT_REQUEST_INFO {
DWORD dwVersion;
CERT_NAME_BLOB Subject;
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo;
DWORD cAttribute;
PCRYPT_ATTRIBUTE rgAttribute;
} CERT_REQUEST_INFO, *PCERT_REQUEST_INFO;
typedef struct _CERT_KEYGEN_REQUEST_INFO {
DWORD dwVersion;
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo;
LPWSTR pwszChallengeString;
} CERT_KEYGEN_REQUEST_INFO, *PCERT_KEYGEN_REQUEST_INFO;
typedef struct _CERT_SIGNED_CONTENT_INFO {
CRYPT_DER_BLOB ToBeSigned;
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
CRYPT_BIT_BLOB Signature;
} CERT_SIGNED_CONTENT_INFO, *PCERT_SIGNED_CONTENT_INFO;
typedef struct _CTL_USAGE {
DWORD cUsageIdentifier;
LPSTR *rgpszUsageIdentifier;
} CTL_USAGE, *PCTL_USAGE,
CERT_ENHKEY_USAGE, *PCERT_ENHKEY_USAGE;
typedef const CTL_USAGE* PCCTL_USAGE;
typedef const CERT_ENHKEY_USAGE* PCCERT_ENHKEY_USAGE;
typedef struct _CTL_ENTRY {
CRYPT_DATA_BLOB SubjectIdentifier;
DWORD cAttribute;
PCRYPT_ATTRIBUTE rgAttribute;
} CTL_ENTRY, *PCTL_ENTRY;
typedef struct _CTL_INFO {
DWORD dwVersion;
CTL_USAGE SubjectUsage;
CRYPT_DATA_BLOB ListIdentifier;
CRYPT_INTEGER_BLOB SequenceNumber;
FILETIME ThisUpdate;
FILETIME NextUpdate;
CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm;
DWORD cCTLEntry;
PCTL_ENTRY rgCTLEntry;
DWORD cExtension;
PCERT_EXTENSION rgExtension;
} CTL_INFO, *PCTL_INFO;
typedef struct _CRYPT_TIME_STAMP_REQUEST_INFO {
LPSTR pszTimeStampAlgorithm;
LPSTR pszContentType;
CRYPT_OBJID_BLOB Content;
DWORD cAttribute;
PCRYPT_ATTRIBUTE rgAttribute;
} CRYPT_TIME_STAMP_REQUEST_INFO, *PCRYPT_TIME_STAMP_REQUEST_INFO;
typedef struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR {
LPWSTR pwszName;
LPWSTR pwszValue;
} CRYPT_ENROLLMENT_NAME_VALUE_PAIR, * PCRYPT_ENROLLMENT_NAME_VALUE_PAIR;
typedef struct _CRYPT_CSP_PROVIDER {
DWORD dwKeySpec;
LPWSTR pwszProviderName;
CRYPT_BIT_BLOB Signature;
} CRYPT_CSP_PROVIDER, * PCRYPT_CSP_PROVIDER;
WINCRYPT32API
BOOL
WINAPI
CryptFormatObject(
_In_ DWORD dwCertEncodingType,
_In_ DWORD dwFormatType,
_In_ DWORD dwFormatStrType,
_In_opt_ void *pFormatStruct,
_In_opt_ LPCSTR lpszStructType,
_In_reads_bytes_(cbEncoded) const BYTE *pbEncoded,
_In_ DWORD cbEncoded,
_At_((WCHAR *)pbFormat, _Out_writes_bytes_to_opt_(*pcbFormat, *pcbFormat)) void *pbFormat,
_Inout_ DWORD *pcbFormat
);
typedef LPVOID (WINAPI *PFN_CRYPT_ALLOC)(
_In_ size_t cbSize
);
typedef VOID (WINAPI *PFN_CRYPT_FREE)(
_In_ LPVOID pv
);
typedef struct _CRYPT_ENCODE_PARA {
DWORD cbSize;
PFN_CRYPT_ALLOC pfnAlloc;
PFN_CRYPT_FREE pfnFree;
} CRYPT_ENCODE_PARA, *PCRYPT_ENCODE_PARA;
WINCRYPT32API
BOOL
WINAPI
CryptEncodeObjectEx(
_In_ DWORD dwCertEncodingType,
_In_ LPCSTR lpszStructType,
_In_ const void *pvStructInfo,
_In_ DWORD dwFlags,
_In_opt_ PCRYPT_ENCODE_PARA pEncodePara,
_Out_opt_ void *pvEncoded,
_Inout_ DWORD *pcbEncoded
);
WINCRYPT32API
BOOL
WINAPI
CryptEncodeObject(
_In_ DWORD dwCertEncodingType,
_In_ LPCSTR lpszStructType,
_In_ const void *pvStructInfo,
_Out_writes_bytes_to_opt_(*pcbEncoded, *pcbEncoded) BYTE *pbEncoded,
_Inout_ DWORD *pcbEncoded
);
typedef struct _CRYPT_DECODE_PARA {
DWORD cbSize;
PFN_CRYPT_ALLOC pfnAlloc;
PFN_CRYPT_FREE pfnFree;
} CRYPT_DECODE_PARA, *PCRYPT_DECODE_PARA;
WINCRYPT32API
BOOL
WINAPI
CryptDecodeObjectEx(
_In_ DWORD dwCertEncodingType,
_In_ LPCSTR lpszStructType,
_In_reads_bytes_(cbEncoded) const BYTE *pbEncoded,
_In_ DWORD cbEncoded,
_In_ DWORD dwFlags,
_In_opt_ PCRYPT_DECODE_PARA pDecodePara,
_Out_opt_ void *pvStructInfo,
_Inout_ DWORD *pcbStructInfo
);
WINCRYPT32API
BOOL
WINAPI
CryptDecodeObject(
_In_ DWORD dwCertEncodingType,
_In_ LPCSTR lpszStructType,
_In_reads_bytes_(cbEncoded) const BYTE *pbEncoded,
_In_ DWORD cbEncoded,
_In_ DWORD dwFlags,
_Out_writes_bytes_to_opt_(*pcbStructInfo, *pcbStructInfo) void *pvStructInfo,
_Inout_ DWORD *pcbStructInfo
);
typedef struct _CERT_EXTENSIONS {
DWORD cExtension;
PCERT_EXTENSION rgExtension;
} CERT_EXTENSIONS, *PCERT_EXTENSIONS;
typedef struct _CERT_AUTHORITY_KEY_ID_INFO {
CRYPT_DATA_BLOB KeyId;
CERT_NAME_BLOB CertIssuer;
CRYPT_INTEGER_BLOB CertSerialNumber;
} CERT_AUTHORITY_KEY_ID_INFO, *PCERT_AUTHORITY_KEY_ID_INFO;
typedef struct _CERT_PRIVATE_KEY_VALIDITY {
FILETIME NotBefore;
FILETIME NotAfter;
} CERT_PRIVATE_KEY_VALIDITY, *PCERT_PRIVATE_KEY_VALIDITY;
typedef struct _CERT_KEY_ATTRIBUTES_INFO {
CRYPT_DATA_BLOB KeyId;
CRYPT_BIT_BLOB IntendedKeyUsage;
PCERT_PRIVATE_KEY_VALIDITY pPrivateKeyUsagePeriod;
} CERT_KEY_ATTRIBUTES_INFO, *PCERT_KEY_ATTRIBUTES_INFO;
typedef struct _CERT_POLICY_ID {
DWORD cCertPolicyElementId;
LPSTR *rgpszCertPolicyElementId;
} CERT_POLICY_ID, *PCERT_POLICY_ID;
typedef struct _CERT_KEY_USAGE_RESTRICTION_INFO {
DWORD cCertPolicyId;
PCERT_POLICY_ID rgCertPolicyId;
CRYPT_BIT_BLOB RestrictedKeyUsage;
} CERT_KEY_USAGE_RESTRICTION_INFO, *PCERT_KEY_USAGE_RESTRICTION_INFO;
typedef struct _CERT_OTHER_NAME {
LPSTR pszObjId;
CRYPT_OBJID_BLOB Value;
} CERT_OTHER_NAME, *PCERT_OTHER_NAME;
typedef struct _CERT_ALT_NAME_ENTRY {
DWORD dwAltNameChoice;
union {
PCERT_OTHER_NAME pOtherName;
LPWSTR pwszRfc822Name;
LPWSTR pwszDNSName;
CERT_NAME_BLOB DirectoryName;
LPWSTR pwszURL;
CRYPT_DATA_BLOB IPAddress;
LPSTR pszRegisteredID;
} DUMMYUNIONNAME;
} CERT_ALT_NAME_ENTRY, *PCERT_ALT_NAME_ENTRY;
typedef struct _CERT_ALT_NAME_INFO {
DWORD cAltEntry;
PCERT_ALT_NAME_ENTRY rgAltEntry;
} CERT_ALT_NAME_INFO, *PCERT_ALT_NAME_INFO;
typedef struct _CERT_BASIC_CONSTRAINTS_INFO {
CRYPT_BIT_BLOB SubjectType;
BOOL fPathLenConstraint;
DWORD dwPathLenConstraint;
DWORD cSubtreesConstraint;
CERT_NAME_BLOB *rgSubtreesConstraint;
} CERT_BASIC_CONSTRAINTS_INFO, *PCERT_BASIC_CONSTRAINTS_INFO;
typedef struct _CERT_BASIC_CONSTRAINTS2_INFO {
BOOL fCA;
BOOL fPathLenConstraint;
DWORD dwPathLenConstraint;
} CERT_BASIC_CONSTRAINTS2_INFO, *PCERT_BASIC_CONSTRAINTS2_INFO;
typedef struct _CERT_POLICY_QUALIFIER_INFO {
LPSTR pszPolicyQualifierId;
CRYPT_OBJID_BLOB Qualifier;
} CERT_POLICY_QUALIFIER_INFO, *PCERT_POLICY_QUALIFIER_INFO;
typedef struct _CERT_POLICY_INFO {
LPSTR pszPolicyIdentifier;
DWORD cPolicyQualifier;
CERT_POLICY_QUALIFIER_INFO *rgPolicyQualifier;
} CERT_POLICY_INFO, *PCERT_POLICY_INFO;
typedef struct _CERT_POLICIES_INFO {
DWORD cPolicyInfo;
CERT_POLICY_INFO *rgPolicyInfo;
} CERT_POLICIES_INFO, *PCERT_POLICIES_INFO;
typedef struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE {
LPSTR pszOrganization;
DWORD cNoticeNumbers;
int *rgNoticeNumbers;
} CERT_POLICY_QUALIFIER_NOTICE_REFERENCE, *PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE;
typedef struct _CERT_POLICY_QUALIFIER_USER_NOTICE {
CERT_POLICY_QUALIFIER_NOTICE_REFERENCE *pNoticeReference;
LPWSTR pszDisplayText;
} CERT_POLICY_QUALIFIER_USER_NOTICE, *PCERT_POLICY_QUALIFIER_USER_NOTICE;
typedef struct _CPS_URLS {
LPWSTR pszURL;
CRYPT_ALGORITHM_IDENTIFIER *pAlgorithm;
CRYPT_DATA_BLOB *pDigest;
} CPS_URLS, *PCPS_URLS;
typedef struct _CERT_POLICY95_QUALIFIER1 {
LPWSTR pszPracticesReference;
LPSTR pszNoticeIdentifier;
LPSTR pszNSINoticeIdentifier;
DWORD cCPSURLs;
CPS_URLS *rgCPSURLs;
} CERT_POLICY95_QUALIFIER1, *PCERT_POLICY95_QUALIFIER1;
typedef struct _CERT_POLICY_MAPPING {
LPSTR pszIssuerDomainPolicy;
LPSTR pszSubjectDomainPolicy;
} CERT_POLICY_MAPPING, *PCERT_POLICY_MAPPING;
typedef struct _CERT_POLICY_MAPPINGS_INFO {
DWORD cPolicyMapping;
PCERT_POLICY_MAPPING rgPolicyMapping;
} CERT_POLICY_MAPPINGS_INFO, *PCERT_POLICY_MAPPINGS_INFO;
typedef struct _CERT_POLICY_CONSTRAINTS_INFO {
BOOL fRequireExplicitPolicy;
DWORD dwRequireExplicitPolicySkipCerts;
BOOL fInhibitPolicyMapping;
DWORD dwInhibitPolicyMappingSkipCerts;
} CERT_POLICY_CONSTRAINTS_INFO, *PCERT_POLICY_CONSTRAINTS_INFO;
typedef struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY {
LPSTR pszObjId;
DWORD cValue;
PCRYPT_DER_BLOB rgValue;
} CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY, *PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY;
typedef struct _CRYPT_CONTENT_INFO {
LPSTR pszObjId;
CRYPT_DER_BLOB Content;
} CRYPT_CONTENT_INFO, *PCRYPT_CONTENT_INFO;
typedef struct _CRYPT_SEQUENCE_OF_ANY {
DWORD cValue;
PCRYPT_DER_BLOB rgValue;
} CRYPT_SEQUENCE_OF_ANY, *PCRYPT_SEQUENCE_OF_ANY;
typedef struct _CERT_AUTHORITY_KEY_ID2_INFO {
CRYPT_DATA_BLOB KeyId;
CERT_ALT_NAME_INFO AuthorityCertIssuer;
CRYPT_INTEGER_BLOB AuthorityCertSerialNumber;
} CERT_AUTHORITY_KEY_ID2_INFO, *PCERT_AUTHORITY_KEY_ID2_INFO;
typedef struct _CERT_ACCESS_DESCRIPTION {
LPSTR pszAccessMethod;
CERT_ALT_NAME_ENTRY AccessLocation;
} CERT_ACCESS_DESCRIPTION, *PCERT_ACCESS_DESCRIPTION;
typedef struct _CERT_AUTHORITY_INFO_ACCESS {
DWORD cAccDescr;
PCERT_ACCESS_DESCRIPTION rgAccDescr;
} CERT_AUTHORITY_INFO_ACCESS, *PCERT_AUTHORITY_INFO_ACCESS,
CERT_SUBJECT_INFO_ACCESS, *PCERT_SUBJECT_INFO_ACCESS;
typedef struct _CRL_DIST_POINT_NAME {
DWORD dwDistPointNameChoice;
union {
CERT_ALT_NAME_INFO FullName;
} DUMMYUNIONNAME;
} CRL_DIST_POINT_NAME, *PCRL_DIST_POINT_NAME;
typedef struct _CRL_DIST_POINT {
CRL_DIST_POINT_NAME DistPointName;
CRYPT_BIT_BLOB ReasonFlags;
CERT_ALT_NAME_INFO CRLIssuer;
} CRL_DIST_POINT, *PCRL_DIST_POINT;
typedef struct _CRL_DIST_POINTS_INFO {
DWORD cDistPoint;
PCRL_DIST_POINT rgDistPoint;
} CRL_DIST_POINTS_INFO, *PCRL_DIST_POINTS_INFO;
typedef struct _CROSS_CERT_DIST_POINTS_INFO {
DWORD dwSyncDeltaTime;
DWORD cDistPoint;
PCERT_ALT_NAME_INFO rgDistPoint;
} CROSS_CERT_DIST_POINTS_INFO, *PCROSS_CERT_DIST_POINTS_INFO;
typedef struct _CERT_PAIR {
CERT_BLOB Forward;
CERT_BLOB Reverse;
} CERT_PAIR, *PCERT_PAIR;
typedef struct _CRL_ISSUING_DIST_POINT {
CRL_DIST_POINT_NAME DistPointName;
BOOL fOnlyContainsUserCerts;
BOOL fOnlyContainsCACerts;
CRYPT_BIT_BLOB OnlySomeReasonFlags;
BOOL fIndirectCRL;
} CRL_ISSUING_DIST_POINT, *PCRL_ISSUING_DIST_POINT;
typedef struct _CERT_GENERAL_SUBTREE {
CERT_ALT_NAME_ENTRY Base;
DWORD dwMinimum;
BOOL fMaximum;
DWORD dwMaximum;
} CERT_GENERAL_SUBTREE, *PCERT_GENERAL_SUBTREE;
typedef struct _CERT_NAME_CONSTRAINTS_INFO {
DWORD cPermittedSubtree;
PCERT_GENERAL_SUBTREE rgPermittedSubtree;
DWORD cExcludedSubtree;
PCERT_GENERAL_SUBTREE rgExcludedSubtree;
} CERT_NAME_CONSTRAINTS_INFO, *PCERT_NAME_CONSTRAINTS_INFO;
typedef struct _CERT_DSS_PARAMETERS {
CRYPT_UINT_BLOB p;
CRYPT_UINT_BLOB q;
CRYPT_UINT_BLOB g;
} CERT_DSS_PARAMETERS, *PCERT_DSS_PARAMETERS;
typedef struct _CERT_DH_PARAMETERS {
CRYPT_UINT_BLOB p;
CRYPT_UINT_BLOB g;
} CERT_DH_PARAMETERS, *PCERT_DH_PARAMETERS;
typedef struct _CERT_ECC_SIGNATURE {
CRYPT_UINT_BLOB r;
CRYPT_UINT_BLOB s;
} CERT_ECC_SIGNATURE, *PCERT_ECC_SIGNATURE;
typedef struct _CERT_X942_DH_VALIDATION_PARAMS {
CRYPT_BIT_BLOB seed;
DWORD pgenCounter;
} CERT_X942_DH_VALIDATION_PARAMS, *PCERT_X942_DH_VALIDATION_PARAMS;
typedef struct _CERT_X942_DH_PARAMETERS {
CRYPT_UINT_BLOB p;
CRYPT_UINT_BLOB g;
CRYPT_UINT_BLOB q;
CRYPT_UINT_BLOB j;
PCERT_X942_DH_VALIDATION_PARAMS pValidationParams;
} CERT_X942_DH_PARAMETERS, *PCERT_X942_DH_PARAMETERS;
typedef struct _CRYPT_X942_OTHER_INFO {
LPSTR pszContentEncryptionObjId;
BYTE rgbCounter[CRYPT_X942_COUNTER_BYTE_LENGTH];
BYTE rgbKeyLength[CRYPT_X942_KEY_LENGTH_BYTE_LENGTH];
CRYPT_DATA_BLOB PubInfo;
} CRYPT_X942_OTHER_INFO, *PCRYPT_X942_OTHER_INFO;
typedef struct _CRYPT_ECC_CMS_SHARED_INFO {
CRYPT_ALGORITHM_IDENTIFIER Algorithm;
CRYPT_DATA_BLOB EntityUInfo;
BYTE rgbSuppPubInfo[CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH];
} CRYPT_ECC_CMS_SHARED_INFO, *PCRYPT_ECC_CMS_SHARED_INFO;
typedef struct _CRYPT_RC2_CBC_PARAMETERS {
DWORD dwVersion;
BOOL fIV;
BYTE rgbIV[8];
} CRYPT_RC2_CBC_PARAMETERS, *PCRYPT_RC2_CBC_PARAMETERS;
typedef struct _CRYPT_SMIME_CAPABILITY {
LPSTR pszObjId;
CRYPT_OBJID_BLOB Parameters;
} CRYPT_SMIME_CAPABILITY, *PCRYPT_SMIME_CAPABILITY;
typedef struct _CRYPT_SMIME_CAPABILITIES {
DWORD cCapability;
PCRYPT_SMIME_CAPABILITY rgCapability;
} CRYPT_SMIME_CAPABILITIES, *PCRYPT_SMIME_CAPABILITIES;
typedef struct _CERT_QC_STATEMENT {
LPSTR pszStatementId;
CRYPT_OBJID_BLOB StatementInfo;
} CERT_QC_STATEMENT, *PCERT_QC_STATEMENT;
typedef struct _CERT_QC_STATEMENTS_EXT_INFO {
DWORD cStatement;
PCERT_QC_STATEMENT rgStatement;
} CERT_QC_STATEMENTS_EXT_INFO, *PCERT_QC_STATEMENTS_EXT_INFO;
typedef struct _CRYPT_MASK_GEN_ALGORITHM {
LPSTR pszObjId;
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
} CRYPT_MASK_GEN_ALGORITHM, *PCRYPT_MASK_GEN_ALGORITHM;
typedef struct _CRYPT_RSA_SSA_PSS_PARAMETERS {
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
CRYPT_MASK_GEN_ALGORITHM MaskGenAlgorithm;
DWORD dwSaltLength;
DWORD dwTrailerField;
} CRYPT_RSA_SSA_PSS_PARAMETERS, *PCRYPT_RSA_SSA_PSS_PARAMETERS;
typedef struct _CRYPT_PSOURCE_ALGORITHM {
LPSTR pszObjId;
CRYPT_DATA_BLOB EncodingParameters;
} CRYPT_PSOURCE_ALGORITHM, *PCRYPT_PSOURCE_ALGORITHM;
typedef struct _CRYPT_RSAES_OAEP_PARAMETERS {
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
CRYPT_MASK_GEN_ALGORITHM MaskGenAlgorithm;
CRYPT_PSOURCE_ALGORITHM PSourceAlgorithm;
} CRYPT_RSAES_OAEP_PARAMETERS, *PCRYPT_RSAES_OAEP_PARAMETERS;
typedef struct _CMC_TAGGED_ATTRIBUTE {
DWORD dwBodyPartID;
CRYPT_ATTRIBUTE Attribute;
} CMC_TAGGED_ATTRIBUTE, *PCMC_TAGGED_ATTRIBUTE;
typedef struct _CMC_TAGGED_CERT_REQUEST {
DWORD dwBodyPartID;
CRYPT_DER_BLOB SignedCertRequest;
} CMC_TAGGED_CERT_REQUEST, *PCMC_TAGGED_CERT_REQUEST;
typedef struct _CMC_TAGGED_REQUEST {
DWORD dwTaggedRequestChoice;
union {
PCMC_TAGGED_CERT_REQUEST pTaggedCertRequest;
} DUMMYUNIONNAME;
} CMC_TAGGED_REQUEST, *PCMC_TAGGED_REQUEST;
typedef struct _CMC_TAGGED_CONTENT_INFO {
DWORD dwBodyPartID;
CRYPT_DER_BLOB EncodedContentInfo;
} CMC_TAGGED_CONTENT_INFO, *PCMC_TAGGED_CONTENT_INFO;
typedef struct _CMC_TAGGED_OTHER_MSG {
DWORD dwBodyPartID;
LPSTR pszObjId;
CRYPT_OBJID_BLOB Value;
} CMC_TAGGED_OTHER_MSG, *PCMC_TAGGED_OTHER_MSG;
typedef struct _CMC_DATA_INFO {
DWORD cTaggedAttribute;
PCMC_TAGGED_ATTRIBUTE rgTaggedAttribute;
DWORD cTaggedRequest;
PCMC_TAGGED_REQUEST rgTaggedRequest;
DWORD cTaggedContentInfo;
PCMC_TAGGED_CONTENT_INFO rgTaggedContentInfo;
DWORD cTaggedOtherMsg;
PCMC_TAGGED_OTHER_MSG rgTaggedOtherMsg;
} CMC_DATA_INFO, *PCMC_DATA_INFO;
typedef struct _CMC_RESPONSE_INFO {
DWORD cTaggedAttribute;
PCMC_TAGGED_ATTRIBUTE rgTaggedAttribute;
DWORD cTaggedContentInfo;
PCMC_TAGGED_CONTENT_INFO rgTaggedContentInfo;
DWORD cTaggedOtherMsg;
PCMC_TAGGED_OTHER_MSG rgTaggedOtherMsg;
} CMC_RESPONSE_INFO, *PCMC_RESPONSE_INFO;
typedef struct _CMC_PEND_INFO {
CRYPT_DATA_BLOB PendToken;
FILETIME PendTime;
} CMC_PEND_INFO, *PCMC_PEND_INFO;
typedef struct _CMC_STATUS_INFO {
DWORD dwStatus;
DWORD cBodyList;
DWORD *rgdwBodyList;
LPWSTR pwszStatusString;
DW
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment