Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
9ac8d63e
Commit
9ac8d63e
authored
Feb 29, 2024
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Move unwinding functions definitions to rtlsupportapi.h.
parent
630d7943
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
99 additions
and
65 deletions
+99
-65
thunk.c
dlls/krnl386.exe16/thunk.c
+1
-1
exception.c
dlls/msvcp90/exception.c
+1
-0
ntdll_misc.h
dlls/ntdll/ntdll_misc.h
+1
-0
signal_arm64ec.c
dlls/ntdll/signal_arm64ec.c
+3
-3
signal_x86_64.c
dlls/ntdll/signal_x86_64.c
+1
-1
exception.c
dlls/ntdll/tests/exception.c
+1
-0
unwind.c
dlls/ntdll/tests/unwind.c
+1
-0
unwind.c
dlls/ntdll/unwind.c
+11
-11
main.c
dlls/win32u/main.c
+1
-0
cpu.c
dlls/wow64cpu/cpu.c
+1
-0
Makefile.in
include/Makefile.in
+1
-0
rtlsupportapi.h
include/rtlsupportapi.h
+75
-0
exception.h
include/wine/exception.h
+1
-0
winnt.h
include/winnt.h
+0
-48
winternl.h
include/winternl.h
+0
-1
No files found.
dlls/krnl386.exe16/thunk.c
View file @
9ac8d63e
...
...
@@ -28,7 +28,7 @@
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "
winternl
.h"
#include "
rtlsupportapi
.h"
#include "wownt16.h"
#include "wownt32.h"
#include "wine/winbase16.h"
...
...
dlls/msvcp90/exception.c
View file @
9ac8d63e
...
...
@@ -23,6 +23,7 @@
#include "windef.h"
#include "winbase.h"
#include "winternl.h"
#include "rtlsupportapi.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
msvcp
);
...
...
dlls/ntdll/ntdll_misc.h
View file @
9ac8d63e
...
...
@@ -27,6 +27,7 @@
#include "winbase.h"
#include "winnt.h"
#include "winternl.h"
#include "rtlsupportapi.h"
#include "unixlib.h"
#include "wine/asm.h"
...
...
dlls/ntdll/signal_arm64ec.c
View file @
9ac8d63e
...
...
@@ -1551,10 +1551,10 @@ __ASM_GLOBAL_FUNC( "#KiUserCallbackDispatcher",
/**************************************************************************
* RtlIsEcCode (NTDLL.@)
*/
BOOLEAN
WINAPI
RtlIsEcCode
(
const
void
*
ptr
)
BOOLEAN
WINAPI
RtlIsEcCode
(
ULONG_PTR
ptr
)
{
const
UINT64
*
map
=
(
const
UINT64
*
)
NtCurrentTeb
()
->
Peb
->
EcCodeBitMap
;
ULONG_PTR
page
=
(
ULONG_PTR
)
ptr
/
page_size
;
ULONG_PTR
page
=
ptr
/
page_size
;
return
(
map
[
page
/
64
]
>>
(
page
&
63
))
&
1
;
}
...
...
@@ -1709,7 +1709,7 @@ void *check_call( void **target, void *exit_thunk, void *dest )
for
(;;)
{
if
(
dest
==
__wine_unix_call_dispatcher
)
return
dest
;
if
(
RtlIsEcCode
(
dest
))
return
dest
;
if
(
RtlIsEcCode
(
(
ULONG_PTR
)
dest
))
return
dest
;
if
(
code_match
(
dest
,
jmp_sequence
,
sizeof
(
jmp_sequence
)
))
{
int
*
off_ptr
=
(
int
*
)((
char
*
)
dest
+
sizeof
(
jmp_sequence
));
...
...
dlls/ntdll/signal_x86_64.c
View file @
9ac8d63e
...
...
@@ -463,7 +463,7 @@ __ASM_GLOBAL_FUNC( KiUserCallbackDispatcher,
/**************************************************************************
* RtlIsEcCode (NTDLL.@)
*/
BOOLEAN
WINAPI
RtlIsEcCode
(
const
void
*
ptr
)
BOOLEAN
WINAPI
RtlIsEcCode
(
ULONG_PTR
ptr
)
{
return
FALSE
;
}
...
...
dlls/ntdll/tests/exception.c
View file @
9ac8d63e
...
...
@@ -30,6 +30,7 @@
#include "winreg.h"
#include "winuser.h"
#include "winternl.h"
#include "rtlsupportapi.h"
#include "ddk/wdm.h"
#include "excpt.h"
#include "wine/test.h"
...
...
dlls/ntdll/tests/unwind.c
View file @
9ac8d63e
...
...
@@ -30,6 +30,7 @@
#include "winreg.h"
#include "winnt.h"
#include "winternl.h"
#include "rtlsupportapi.h"
#include "wine/test.h"
#ifndef __i386__
...
...
dlls/ntdll/unwind.c
View file @
9ac8d63e
...
...
@@ -134,7 +134,7 @@ BOOLEAN CDECL RtlInstallFunctionTableCallback( ULONG_PTR table, ULONG_PTR base,
/*************************************************************************
* RtlAddGrowableFunctionTable (NTDLL.@)
*/
DWORD
WINAPI
RtlAddGrowableFunctionTable
(
void
**
table
,
RUNTIME_FUNCTION
*
functions
,
DWORD
count
,
NTSTATUS
WINAPI
RtlAddGrowableFunctionTable
(
void
**
table
,
RUNTIME_FUNCTION
*
functions
,
DWORD
count
,
DWORD
max_count
,
ULONG_PTR
base
,
ULONG_PTR
end
)
{
struct
dynamic_unwind_entry
*
entry
;
...
...
@@ -249,7 +249,7 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionTable( ULONG_PTR pc, ULONG_PTR *base,
if
(
LdrFindEntryForAddress
(
(
void
*
)
pc
,
&
module
))
return
NULL
;
*
base
=
(
ULONG_PTR
)
module
->
DllBase
;
#ifdef __arm64ec__
if
(
RtlIsEcCode
(
(
void
*
)
pc
))
if
(
RtlIsEcCode
(
pc
))
{
IMAGE_LOAD_CONFIG_DIRECTORY
*
cfg
;
IMAGE_ARM64EC_METADATA
*
metadata
;
...
...
@@ -772,12 +772,12 @@ static ARM64_RUNTIME_FUNCTION *find_function_info_arm64( ULONG_PTR pc, ULONG_PTR
/**********************************************************************
* RtlVirtualUnwind (NTDLL.@)
*/
P
VOID
WINAPI
RtlVirtualUnwind
(
ULONG
type
,
ULONG_PTR
base
,
ULONG_PTR
pc
,
P
EXCEPTION_ROUTINE
WINAPI
RtlVirtualUnwind
(
ULONG
type
,
ULONG_PTR
base
,
ULONG_PTR
pc
,
ARM64_RUNTIME_FUNCTION
*
func
,
ARM64_NT_CONTEXT
*
context
,
PVOID
*
handler_data
,
ULONG_PTR
*
frame_ret
,
KNONVOLATILE_CONTEXT_POINTERS_ARM64
*
ctx_ptr
)
{
void
*
handler
;
PEXCEPTION_ROUTINE
handler
;
TRACE
(
"type %lx pc %I64x sp %I64x
\n
"
,
type
,
pc
,
context
->
Sp
);
...
...
@@ -1370,12 +1370,12 @@ static RUNTIME_FUNCTION *find_function_info( ULONG_PTR pc, ULONG_PTR base,
/***********************************************************************
* RtlVirtualUnwind (NTDLL.@)
*/
P
VOID
WINAPI
RtlVirtualUnwind
(
ULONG
type
,
ULONG_PTR
base
,
ULONG_PTR
pc
,
P
EXCEPTION_ROUTINE
WINAPI
RtlVirtualUnwind
(
ULONG
type
,
ULONG_PTR
base
,
ULONG_PTR
pc
,
RUNTIME_FUNCTION
*
func
,
CONTEXT
*
context
,
PVOID
*
handler_data
,
ULONG_PTR
*
frame_ret
,
KNONVOLATILE_CONTEXT_POINTERS
*
ctx_ptr
)
{
void
*
handler
;
PEXCEPTION_ROUTINE
handler
;
TRACE
(
"type %lx pc %Ix sp %lx
\n
"
,
type
,
pc
,
context
->
Sp
);
...
...
@@ -1810,7 +1810,7 @@ static RUNTIME_FUNCTION *find_function_info( ULONG_PTR pc, ULONG_PTR base,
/**********************************************************************
* RtlVirtualUnwind (NTDLL.@)
*/
P
VOID
WINAPI
RtlVirtualUnwind
(
ULONG
type
,
ULONG64
base
,
ULONG64
pc
,
P
EXCEPTION_ROUTINE
WINAPI
RtlVirtualUnwind
(
ULONG
type
,
ULONG64
base
,
ULONG64
pc
,
RUNTIME_FUNCTION
*
function
,
CONTEXT
*
context
,
PVOID
*
data
,
ULONG64
*
frame_ret
,
KNONVOLATILE_CONTEXT_POINTERS
*
ctx_ptr
)
...
...
@@ -1822,11 +1822,11 @@ PVOID WINAPI RtlVirtualUnwind( ULONG type, ULONG64 base, ULONG64 pc,
BOOL
mach_frame
=
FALSE
;
#ifdef __arm64ec__
if
(
RtlIsEcCode
(
(
void
*
)
pc
))
if
(
RtlIsEcCode
(
pc
))
{
DWORD
flags
=
context
->
ContextFlags
&
~
CONTEXT_UNWOUND_TO_CALL
;
ARM64_NT_CONTEXT
arm_context
;
void
*
ret
;
PEXCEPTION_ROUTINE
ret
;
context_x64_to_arm
(
&
arm_context
,
(
ARM64EC_NT_CONTEXT
*
)
context
);
ret
=
RtlVirtualUnwind_arm64
(
type
,
base
,
pc
,
(
ARM64_RUNTIME_FUNCTION
*
)
function
,
...
...
@@ -1963,7 +1963,7 @@ PVOID WINAPI RtlVirtualUnwind( ULONG type, ULONG64 base, ULONG64 pc,
if
(
prolog_offset
!=
~
0
)
return
NULL
;
/* inside prolog */
*
data
=
&
handler_data
->
handler
+
1
;
return
(
char
*
)
base
+
handler_data
->
handler
;
return
(
PEXCEPTION_ROUTINE
)((
char
*
)
base
+
handler_data
->
handler
)
;
}
...
...
@@ -1978,7 +1978,7 @@ PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry( ULONG_PTR pc, ULONG_PTR *base,
ULONG
size
;
#ifdef __arm64ec__
if
(
RtlIsEcCode
(
(
void
*
)
pc
))
if
(
RtlIsEcCode
(
pc
))
return
(
RUNTIME_FUNCTION
*
)
RtlLookupFunctionEntry_arm64
(
pc
,
base
,
table
);
#endif
...
...
dlls/win32u/main.c
View file @
9ac8d63e
...
...
@@ -26,6 +26,7 @@
#include "winbase.h"
#include "ntgdi.h"
#include "ntuser.h"
#include "rtlsupportapi.h"
#include "wine/unixlib.h"
#include "wine/asm.h"
#include "win32syscalls.h"
...
...
dlls/wow64cpu/cpu.c
View file @
9ac8d63e
...
...
@@ -25,6 +25,7 @@
#include "windef.h"
#include "winnt.h"
#include "winternl.h"
#include "rtlsupportapi.h"
#include "wine/asm.h"
#include "wine/debug.h"
...
...
include/Makefile.in
View file @
9ac8d63e
...
...
@@ -678,6 +678,7 @@ SOURCES = \
rstloc.idl
\
rstnot.idl
\
rstupd.idl
\
rtlsupportapi.h
\
rtutils.h
\
rtworkq.idl
\
sal.h
\
...
...
include/rtlsupportapi.h
0 → 100644
View file @
9ac8d63e
/*
* Definitions for Rtl exception handling functions
*
* Copyright 2024 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _APISETRTLSUPPORT_
#define _APISETRTLSUPPORT_
NTSYSAPI
void
WINAPI
RtlCaptureContext
(
CONTEXT
*
);
NTSYSAPI
void
WINAPI
RtlCaptureContext2
(
CONTEXT
*
);
NTSYSAPI
USHORT
WINAPI
RtlCaptureStackBackTrace
(
ULONG
,
ULONG
,
void
**
,
ULONG
*
);
NTSYSAPI
void
WINAPI
RtlRaiseException
(
EXCEPTION_RECORD
*
);
NTSYSAPI
void
CDECL
RtlRestoreContext
(
CONTEXT
*
,
EXCEPTION_RECORD
*
);
NTSYSAPI
void
WINAPI
RtlUnwind
(
void
*
,
void
*
,
EXCEPTION_RECORD
*
,
void
*
);
NTSYSAPI
void
*
WINAPI
RtlPcToFileHeader
(
void
*
,
void
**
);
#ifndef __i386__
#define UNWIND_HISTORY_TABLE_SIZE 12
typedef
struct
_UNWIND_HISTORY_TABLE_ENTRY
{
ULONG_PTR
ImageBase
;
PRUNTIME_FUNCTION
FunctionEntry
;
}
UNWIND_HISTORY_TABLE_ENTRY
,
*
PUNWIND_HISTORY_TABLE_ENTRY
;
typedef
struct
_UNWIND_HISTORY_TABLE
{
DWORD
Count
;
BYTE
LocalHint
;
BYTE
GlobalHint
;
BYTE
Search
;
BYTE
Once
;
ULONG_PTR
LowAddress
;
ULONG_PTR
HighAddress
;
UNWIND_HISTORY_TABLE_ENTRY
Entry
[
UNWIND_HISTORY_TABLE_SIZE
];
}
UNWIND_HISTORY_TABLE
,
*
PUNWIND_HISTORY_TABLE
;
typedef
PRUNTIME_FUNCTION
(
CALLBACK
*
PGET_RUNTIME_FUNCTION_CALLBACK
)(
DWORD_PTR
,
PVOID
);
#define RTL_VIRTUAL_UNWIND2_VALIDATE_PAC 0x0001
NTSYSAPI
BOOLEAN
CDECL
RtlAddFunctionTable
(
RUNTIME_FUNCTION
*
,
ULONG
,
ULONG_PTR
);
NTSYSAPI
NTSTATUS
WINAPI
RtlAddGrowableFunctionTable
(
void
**
,
PRUNTIME_FUNCTION
,
ULONG
,
ULONG
,
ULONG_PTR
,
ULONG_PTR
);
NTSYSAPI
BOOLEAN
CDECL
RtlDeleteFunctionTable
(
RUNTIME_FUNCTION
*
);
NTSYSAPI
void
WINAPI
RtlDeleteGrowableFunctionTable
(
void
*
);
NTSYSAPI
void
WINAPI
RtlGrowFunctionTable
(
void
*
,
ULONG
);
NTSYSAPI
BOOLEAN
CDECL
RtlInstallFunctionTableCallback
(
ULONG_PTR
,
ULONG_PTR
,
ULONG
,
PGET_RUNTIME_FUNCTION_CALLBACK
,
PVOID
,
PCWSTR
);
NTSYSAPI
PRUNTIME_FUNCTION
WINAPI
RtlLookupFunctionEntry
(
ULONG_PTR
,
ULONG_PTR
*
,
UNWIND_HISTORY_TABLE
*
);
NTSYSAPI
PRUNTIME_FUNCTION
WINAPI
RtlLookupFunctionTable
(
ULONG_PTR
,
ULONG_PTR
*
,
ULONG
*
);
NTSYSAPI
void
WINAPI
RtlUnwindEx
(
void
*
,
void
*
,
EXCEPTION_RECORD
*
,
void
*
,
CONTEXT
*
,
UNWIND_HISTORY_TABLE
*
);
NTSYSAPI
PEXCEPTION_ROUTINE
WINAPI
RtlVirtualUnwind
(
ULONG
,
ULONG_PTR
,
ULONG_PTR
,
RUNTIME_FUNCTION
*
,
CONTEXT
*
,
void
**
,
ULONG_PTR
*
,
KNONVOLATILE_CONTEXT_POINTERS
*
);
NTSYSAPI
NTSTATUS
WINAPI
RtlVirtualUnwind2
(
ULONG
,
ULONG_PTR
,
ULONG_PTR
,
RUNTIME_FUNCTION
*
,
CONTEXT
*
,
BOOLEAN
*
,
void
**
,
ULONG_PTR
*
,
KNONVOLATILE_CONTEXT_POINTERS
*
,
ULONG_PTR
*
,
ULONG_PTR
*
,
PEXCEPTION_ROUTINE
*
,
ULONG
);
#ifdef __x86_64__
NTSYSAPI
BOOLEAN
WINAPI
RtlIsEcCode
(
ULONG_PTR
);
#endif
#endif
/* __i386__ */
#endif
/* _APISETRTLSUPPORT_ */
include/wine/exception.h
View file @
9ac8d63e
...
...
@@ -27,6 +27,7 @@
#include <windef.h>
#include <winternl.h>
#include <rtlsupportapi.h>
#include <excpt.h>
#ifdef __cplusplus
...
...
include/winnt.h
View file @
9ac8d63e
...
...
@@ -1963,8 +1963,6 @@ typedef ARM64_NT_CONTEXT CONTEXT, *PCONTEXT;
#error You need to define a CONTEXT for your CPU
#endif
NTSYSAPI
void
WINAPI
RtlCaptureContext
(
CONTEXT
*
);
#define WOW64_CONTEXT_i386 0x00010000
#define WOW64_CONTEXT_i486 0x00010000
#define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000001))
...
...
@@ -1987,10 +1985,6 @@ NTSYSAPI void WINAPI RtlCaptureContext(CONTEXT*);
#define WOW64_SIZE_OF_80387_REGISTERS 80
#define WOW64_MAXIMUM_SUPPORTED_EXTENSION 512
#ifdef __x86_64__
NTSYSAPI
BOOLEAN
NTAPI
RtlIsEcCode
(
const
void
*
);
#endif
/* Exception definitions */
#define EXCEPTION_READ_FAULT 0
...
...
@@ -2108,47 +2102,6 @@ typedef void (CALLBACK *PTERMINATION_HANDLER)(BOOLEAN,DWORD64);
#endif
/* __aarch64__ */
NTSYSAPI
void
NTAPI
RtlRaiseException
(
struct
_EXCEPTION_RECORD
*
);
NTSYSAPI
void
CDECL
RtlRestoreContext
(
CONTEXT
*
,
struct
_EXCEPTION_RECORD
*
);
NTSYSAPI
void
NTAPI
RtlUnwind
(
void
*
,
void
*
,
struct
_EXCEPTION_RECORD
*
,
void
*
);
#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
#define UNWIND_HISTORY_TABLE_SIZE 12
typedef
struct
_UNWIND_HISTORY_TABLE_ENTRY
{
ULONG_PTR
ImageBase
;
PRUNTIME_FUNCTION
FunctionEntry
;
}
UNWIND_HISTORY_TABLE_ENTRY
,
*
PUNWIND_HISTORY_TABLE_ENTRY
;
typedef
struct
_UNWIND_HISTORY_TABLE
{
DWORD
Count
;
BYTE
LocalHint
;
BYTE
GlobalHint
;
BYTE
Search
;
BYTE
Once
;
ULONG_PTR
LowAddress
;
ULONG_PTR
HighAddress
;
UNWIND_HISTORY_TABLE_ENTRY
Entry
[
UNWIND_HISTORY_TABLE_SIZE
];
}
UNWIND_HISTORY_TABLE
,
*
PUNWIND_HISTORY_TABLE
;
typedef
PRUNTIME_FUNCTION
(
CALLBACK
*
PGET_RUNTIME_FUNCTION_CALLBACK
)(
DWORD_PTR
,
PVOID
);
NTSYSAPI
BOOLEAN
CDECL
RtlAddFunctionTable
(
RUNTIME_FUNCTION
*
,
DWORD
,
DWORD_PTR
);
NTSYSAPI
DWORD
WINAPI
RtlAddGrowableFunctionTable
(
void
**
,
PRUNTIME_FUNCTION
,
DWORD
,
DWORD
,
ULONG_PTR
,
ULONG_PTR
);
NTSYSAPI
BOOLEAN
CDECL
RtlDeleteFunctionTable
(
RUNTIME_FUNCTION
*
);
NTSYSAPI
void
WINAPI
RtlDeleteGrowableFunctionTable
(
void
*
);
NTSYSAPI
void
WINAPI
RtlGrowFunctionTable
(
void
*
,
DWORD
);
NTSYSAPI
BOOLEAN
CDECL
RtlInstallFunctionTableCallback
(
DWORD_PTR
,
DWORD_PTR
,
DWORD
,
PGET_RUNTIME_FUNCTION_CALLBACK
,
PVOID
,
PCWSTR
);
NTSYSAPI
PRUNTIME_FUNCTION
WINAPI
RtlLookupFunctionEntry
(
DWORD_PTR
,
DWORD_PTR
*
,
UNWIND_HISTORY_TABLE
*
);
NTSYSAPI
PRUNTIME_FUNCTION
WINAPI
RtlLookupFunctionTable
(
DWORD_PTR
,
DWORD_PTR
*
,
ULONG
*
);
NTSYSAPI
void
WINAPI
RtlUnwindEx
(
PVOID
,
PVOID
,
struct
_EXCEPTION_RECORD
*
,
PVOID
,
CONTEXT
*
,
UNWIND_HISTORY_TABLE
*
);
NTSYSAPI
PVOID
WINAPI
RtlVirtualUnwind
(
DWORD
,
ULONG_PTR
,
ULONG_PTR
,
RUNTIME_FUNCTION
*
,
CONTEXT
*
,
PVOID
*
,
ULONG_PTR
*
,
KNONVOLATILE_CONTEXT_POINTERS
*
);
#endif
/*
* Product types
*/
...
...
@@ -6845,7 +6798,6 @@ typedef VOID (CALLBACK *PTP_WAIT_CALLBACK)(PTP_CALLBACK_INSTANCE,PVOID,PTP_WAIT,
NTSYSAPI
BOOLEAN
NTAPI
RtlGetProductInfo
(
DWORD
,
DWORD
,
DWORD
,
DWORD
,
PDWORD
);
NTSYSAPI
void
*
NTAPI
RtlPcToFileHeader
(
void
*
,
void
**
);
typedef
enum
_RTL_UMS_THREAD_INFO_CLASS
{
...
...
include/winternl.h
View file @
9ac8d63e
...
...
@@ -4688,7 +4688,6 @@ NTSYSAPI BOOLEAN WINAPI RtlAreAllAccessesGranted(ACCESS_MASK,ACCESS_MASK);
NTSYSAPI
BOOLEAN
WINAPI
RtlAreAnyAccessesGranted
(
ACCESS_MASK
,
ACCESS_MASK
);
NTSYSAPI
BOOLEAN
WINAPI
RtlAreBitsSet
(
PCRTL_BITMAP
,
ULONG
,
ULONG
);
NTSYSAPI
BOOLEAN
WINAPI
RtlAreBitsClear
(
PCRTL_BITMAP
,
ULONG
,
ULONG
);
NTSYSAPI
USHORT
WINAPI
RtlCaptureStackBackTrace
(
ULONG
,
ULONG
,
PVOID
*
,
ULONG
*
);
NTSYSAPI
NTSTATUS
WINAPI
RtlCharToInteger
(
PCSZ
,
ULONG
,
PULONG
);
NTSYSAPI
NTSTATUS
WINAPI
RtlCheckRegistryKey
(
ULONG
,
PWSTR
);
NTSYSAPI
void
WINAPI
RtlClearAllBits
(
PRTL_BITMAP
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment