Go to the source code of this file.
◆ VDM_DISALLOWED_VALUE_NAME
| #define VDM_DISALLOWED_VALUE_NAME L"VDMDisallowed" |
Definition at line 17 of file vdm.h.
◆ VDM_POLICY_KEY_NAME
| #define VDM_POLICY_KEY_NAME L"Software\\Policies\\Microsoft\\Windows\\AppCompat" |
Definition at line 16 of file vdm.h.
◆ PVDM_CONSOLE_RECORD
◆ PVDM_DOS_RECORD
◆ VDM_CONSOLE_RECORD
◆ VDM_DOS_RECORD
◆ BaseInitializeVDM()
Definition at line 587 of file vdm.c.
588{
589
591
592
595}
#define InitializeListHead(ListHead)
NTSYSAPI NTSTATUS NTAPI RtlInitializeCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
LIST_ENTRY VDMConsoleListHead
RTL_CRITICAL_SECTION DosCriticalSection
RTL_CRITICAL_SECTION WowCriticalSection
Referenced by CSR_SERVER_DLL_INIT().
◆ BaseSrvCleanupVDMResources()
Definition at line 296 of file vdm.c.
297{
302
303
305
306
309 {
312
314 {
316 {
319 }
320
321
323 {
326
327
329 {
333 }
334
335
339 }
340
341
344 }
345 }
346
347
349}
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define RemoveEntryList(Entry)
#define IsListEmpty(ListHead)
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSTATUS NTAPI NtSetEvent(IN HANDLE EventHandle, OUT PLONG PreviousState OPTIONAL)
struct _LIST_ENTRY * Flink
PVDM_COMMAND_INFO CommandInfo
VOID BaseSrvDestroyConsoleRecord(PVDM_CONSOLE_RECORD ConsoleRecord)
VOID BaseSrvFreeVDMInfo(PVDM_COMMAND_INFO CommandInfo)
#define CONTAINING_RECORD(address, type, field)
Referenced by BaseClientDisconnectRoutine().
◆ BaseSrvGetConsoleRecord()
Definition at line 49 of file vdm.c.
50{
53
54
56
57
59 {
62 }
63
64
66
69}
#define STATUS_INVALID_PARAMETER
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
Referenced by CSR_API().
◆ BaseSrvIsVdmAllowed()
Definition at line 142 of file vdm.c.
143{
152
153
157
159 &MachineKeyName,
163
164
167
173
174
176 {
177
181 ValueInfo,
182 sizeof(ValueBuffer),
183 &ActualSize)))
184 {
186 {
187
189 }
190 }
191
193 }
194
195
197
198
199 if (!VdmAllowed)
return FALSE;
200
201
205
206
208
214
215
217 {
218
222 ValueInfo,
223 sizeof(ValueBuffer),
224 &ActualSize)))
225 {
227 {
228
230 }
231 }
232
234 }
235
236 return VdmAllowed;
237}
BOOLEAN NTAPI CsrImpersonateClient(IN PCSR_THREAD CsrThread)
BOOLEAN NTAPI CsrRevertToSelf(VOID)
#define NT_SUCCESS(StatCode)
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
NTSYSAPI NTSTATUS NTAPI RtlOpenCurrentUser(_In_ ACCESS_MASK DesiredAccess, _Out_ PHANDLE KeyHandle)
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
@ KeyValuePartialInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
struct _KEY_VALUE_PARTIAL_INFORMATION KEY_VALUE_PARTIAL_INFORMATION
struct _KEY_VALUE_PARTIAL_INFORMATION * PKEY_VALUE_PARTIAL_INFORMATION
#define OBJ_CASE_INSENSITIVE
#define VDM_POLICY_KEY_NAME
#define VDM_DISALLOWED_VALUE_NAME
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Referenced by CSR_API().
◆ GetConsoleRecordBySessionId()
Definition at line 94 of file vdm.c.
95{
98
99
101 {
103 if (CurrentRecord->
SessionId == TaskId)
break;
104 }
105
106
108
111}
Referenced by CSR_API().