mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 15:39:24 +01:00 
			
		
		
		
	* fixed win64 compilation
git-svn-id: trunk@6829 -
This commit is contained in:
		
							parent
							
								
									8aa259401c
								
							
						
					
					
						commit
						44752f5559
					
				@ -3959,7 +3959,7 @@ function  NtContinue(
 | 
				
			|||||||
function  ZwContinue(Context: PCONTEXT; TestAlert: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
					function  ZwContinue(Context: PCONTEXT; TestAlert: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
					// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
				
			||||||
// 
 | 
					//
 | 
				
			||||||
// !!!DO NOT USE!!!
 | 
					// !!!DO NOT USE!!!
 | 
				
			||||||
// Compatibility: NT4, W2K
 | 
					// Compatibility: NT4, W2K
 | 
				
			||||||
function  NtCreateChannel(
 | 
					function  NtCreateChannel(
 | 
				
			||||||
@ -4523,7 +4523,7 @@ function  NtIsSystemResumeAutomatic(): BOOLEAN; stdcall; {$IFNDEF RTDL}external
 | 
				
			|||||||
function  ZwIsSystemResumeAutomatic(): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
					function  ZwIsSystemResumeAutomatic(): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
					// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
				
			||||||
// 
 | 
					//
 | 
				
			||||||
// !!!DO NOT USE!!!
 | 
					// !!!DO NOT USE!!!
 | 
				
			||||||
// Compatibility: NT4, W2K
 | 
					// Compatibility: NT4, W2K
 | 
				
			||||||
function  NtListenChannel(
 | 
					function  NtListenChannel(
 | 
				
			||||||
@ -4683,7 +4683,7 @@ function  ZwNotifyChangeMultipleKeys(KeyHandle: HANDLE; Flags: ULONG; KeyObjectA
 | 
				
			|||||||
    WatchSubtree: BOOLEAN; Buffer: PVOID; BufferLength: ULONG; Asynchronous: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
					    WatchSubtree: BOOLEAN; Buffer: PVOID; BufferLength: ULONG; Asynchronous: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
					// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
				
			||||||
// 
 | 
					//
 | 
				
			||||||
// !!!DO NOT USE!!!
 | 
					// !!!DO NOT USE!!!
 | 
				
			||||||
// Compatibility: NT4, W2K
 | 
					// Compatibility: NT4, W2K
 | 
				
			||||||
function  NtOpenChannel(
 | 
					function  NtOpenChannel(
 | 
				
			||||||
@ -5453,7 +5453,7 @@ function  NtReplyWaitReplyPort(
 | 
				
			|||||||
function  ZwReplyWaitReplyPort(PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
					function  ZwReplyWaitReplyPort(PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
					// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
				
			||||||
// 
 | 
					//
 | 
				
			||||||
// !!!DO NOT USE!!!
 | 
					// !!!DO NOT USE!!!
 | 
				
			||||||
// Compatibility: NT4, W2K
 | 
					// Compatibility: NT4, W2K
 | 
				
			||||||
function  NtReplyWaitSendChannel(
 | 
					function  NtReplyWaitSendChannel(
 | 
				
			||||||
@ -5569,7 +5569,7 @@ function  ZwSecureConnectPort(PortHandle: PHANDLE; PortName: PUNICODE_STRING; Se
 | 
				
			|||||||
    ConnectData: PVOID; ConnectDataLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
					    ConnectData: PVOID; ConnectDataLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
					// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
				
			||||||
// 
 | 
					//
 | 
				
			||||||
// !!!DO NOT USE!!!
 | 
					// !!!DO NOT USE!!!
 | 
				
			||||||
// Compatibility: NT4, W2K
 | 
					// Compatibility: NT4, W2K
 | 
				
			||||||
function  NtSendWaitReplyChannel(
 | 
					function  NtSendWaitReplyChannel(
 | 
				
			||||||
@ -5581,7 +5581,7 @@ function  NtSendWaitReplyChannel(
 | 
				
			|||||||
function  ZwSendWaitReplyChannel(x: PVOID; y: PVOID; z: PVOID; z2: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
					function  ZwSendWaitReplyChannel(x: PVOID; y: PVOID; z: PVOID; z2: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
					// Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
 | 
				
			||||||
// 
 | 
					//
 | 
				
			||||||
// !!!DO NOT USE!!!
 | 
					// !!!DO NOT USE!!!
 | 
				
			||||||
// Compatibility: NT4, W2K
 | 
					// Compatibility: NT4, W2K
 | 
				
			||||||
function  NtSetContextChannel(
 | 
					function  NtSetContextChannel(
 | 
				
			||||||
@ -8173,26 +8173,44 @@ end;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Own function to retrieve the process's heap handle
 | 
					// Own function to retrieve the process's heap handle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function NtpGetProcessHeap(): HANDLE; 
 | 
					function NtpGetProcessHeap(): HANDLE;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
 | 
					{$ifdef cpu386}
 | 
				
			||||||
  mov   EAX, FS:[018h]            // EAX now holds the TEB address
 | 
					  mov   EAX, FS:[018h]            // EAX now holds the TEB address
 | 
				
			||||||
  mov   EAX, [EAX+030h]           // TEB+$30 holds the PEB address
 | 
					  mov   EAX, [EAX+030h]           // TEB+$30 holds the PEB address
 | 
				
			||||||
  mov   EAX, DWORD PTR [EAX+018h] // PEB+$30 holds the ProcessHeap's handle
 | 
					  mov   EAX, DWORD PTR [EAX+24] // PEB+$30 holds the ProcessHeap's handle
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					  mov   RAX, GS:[48]              // EAX now holds the TEB address
 | 
				
			||||||
 | 
					  mov   RAX, [RAX+060h]           // TEB+$30 holds the PEB address
 | 
				
			||||||
 | 
					  mov   RAX, DWORD PTR [RAX+48]   // PEB+$30 holds the ProcessHeap's handle
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Own function to retrieve the thread environment block (TEB) pointer
 | 
					// Own function to retrieve the thread environment block (TEB) pointer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function NtpCurrentTeb(): PTEB;
 | 
					function NtpCurrentTeb(): PTEB;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
  mov   EAX, FS:[018h]
 | 
					{$ifdef cpu386}
 | 
				
			||||||
 | 
					  mov   EAX, FS:[24]
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					  mov   RAX, GS:[48]
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Own function to retrieve the process environment block (PEB) pointer
 | 
					// Own function to retrieve the process environment block (PEB) pointer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function RtlpGetCurrentPeb(): PPEB;
 | 
					function RtlpGetCurrentPeb(): PPEB;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
  mov   EAX, FS:[018h]
 | 
					{$ifdef cpu386}
 | 
				
			||||||
 | 
					  mov   EAX, FS:[24]
 | 
				
			||||||
  mov   EAX, [EAX+030h]
 | 
					  mov   EAX, [EAX+030h]
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					  mov   RAX, GS:[24]
 | 
				
			||||||
 | 
					  mov   RAX, [RAX+060h]
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* Own function to swap bytes in 16bit values
 | 
					(* Own function to swap bytes in 16bit values
 | 
				
			||||||
@ -8202,6 +8220,9 @@ end;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function RtlUshortByteSwap(Source: USHORT): USHORT;
 | 
					function RtlUshortByteSwap(Source: USHORT): USHORT;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					  mov   CX, AX
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
  rol   AX, 08h
 | 
					  rol   AX, 08h
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8212,8 +8233,10 @@ end;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function RtlUlongByteSwap(Source: ULONG): ULONG;
 | 
					function RtlUlongByteSwap(Source: ULONG): ULONG;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
  // This is not written as mnemonics to be compatible with D4!
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
  db    0Fh, 0C8h       // "bswap EAX" can only be executed on 486+!!!
 | 
					  mov   ECX, EAX
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
 | 
					  bswap EAX
 | 
				
			||||||
(*
 | 
					(*
 | 
				
			||||||
// Does the same but perhaps slower ...
 | 
					// Does the same but perhaps slower ...
 | 
				
			||||||
                        // Source = $11223344
 | 
					                        // Source = $11223344
 | 
				
			||||||
@ -8230,12 +8253,18 @@ end;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function RtlUlonglongByteSwap(Source: ULONGLONG): ULONGLONG;
 | 
					function RtlUlonglongByteSwap(Source: ULONGLONG): ULONGLONG;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
 | 
					{$ifdef cpu386}
 | 
				
			||||||
  mov   EAX, [ESP+0Ch]  // Get the high part of the ULONGLONG into EAX
 | 
					  mov   EAX, [ESP+0Ch]  // Get the high part of the ULONGLONG into EAX
 | 
				
			||||||
  mov   EDX, [ESP+08h]  // Get the low part of the ULONGLONG into EDX
 | 
					  mov   EDX, [ESP+08h]  // Get the low part of the ULONGLONG into EDX
 | 
				
			||||||
  // This is not written as mnemonics to be compatible with D4!
 | 
					  // This is not written as mnemonics to be compatible with D4!
 | 
				
			||||||
  db    0Fh, 0C8h       // "bswap EAX" can only be executed on 486+!!!
 | 
					  db    0Fh, 0C8h       // "bswap EAX" can only be executed on 486+!!!
 | 
				
			||||||
  db    0Fh, 0CAh       // "bswap EDX" can only be executed on 486+!!!
 | 
					  db    0Fh, 0CAh       // "bswap EDX" can only be executed on 486+!!!
 | 
				
			||||||
  // High part returns in EDX, low part in EAX
 | 
					  // High part returns in EDX, low part in EAX
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					  MOV   RCX,RAX
 | 
				
			||||||
 | 
					  BSWAP EAX
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Resembles the RtlValidateUnicodeString() function available from Windows XP
 | 
					// Resembles the RtlValidateUnicodeString() function available from Windows XP
 | 
				
			||||||
 | 
				
			|||||||
@ -959,7 +959,7 @@ type
 | 
				
			|||||||
  PACCESS_MASK = ^ACCESS_MASK;
 | 
					  PACCESS_MASK = ^ACCESS_MASK;
 | 
				
			||||||
  {$EXTERNALSYM PACCESS_MASK}
 | 
					  {$EXTERNALSYM PACCESS_MASK}
 | 
				
			||||||
  TAccessMask = ACCESS_MASK;
 | 
					  TAccessMask = ACCESS_MASK;
 | 
				
			||||||
  PAccessMask = PACCESS_MASK;  
 | 
					  PAccessMask = PACCESS_MASK;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
////////////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
//                                                                    //
 | 
					//                                                                    //
 | 
				
			||||||
@ -1916,7 +1916,7 @@ type
 | 
				
			|||||||
  PACCESS_ALLOWED_CALLBACK_ACE = ^ACCESS_ALLOWED_CALLBACK_ACE;
 | 
					  PACCESS_ALLOWED_CALLBACK_ACE = ^ACCESS_ALLOWED_CALLBACK_ACE;
 | 
				
			||||||
  {$EXTERNALSYM PACCESS_ALLOWED_CALLBACK_ACE}
 | 
					  {$EXTERNALSYM PACCESS_ALLOWED_CALLBACK_ACE}
 | 
				
			||||||
  TAccessAllowedCallBackAce = ACCESS_ALLOWED_CALLBACK_ACE;
 | 
					  TAccessAllowedCallBackAce = ACCESS_ALLOWED_CALLBACK_ACE;
 | 
				
			||||||
  PAccessAllowedCallBackAce = PACCESS_ALLOWED_CALLBACK_ACE;  
 | 
					  PAccessAllowedCallBackAce = PACCESS_ALLOWED_CALLBACK_ACE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _ACCESS_DENIED_CALLBACK_ACE = record
 | 
					  _ACCESS_DENIED_CALLBACK_ACE = record
 | 
				
			||||||
    Header: ACE_HEADER;
 | 
					    Header: ACE_HEADER;
 | 
				
			||||||
@ -2815,7 +2815,7 @@ type
 | 
				
			|||||||
  PTOKEN_ORIGIN = ^TOKEN_ORIGIN;
 | 
					  PTOKEN_ORIGIN = ^TOKEN_ORIGIN;
 | 
				
			||||||
  {$EXTERNALSYM PTOKEN_ORIGIN}
 | 
					  {$EXTERNALSYM PTOKEN_ORIGIN}
 | 
				
			||||||
  TTokenOrigin = TOKEN_ORIGIN;
 | 
					  TTokenOrigin = TOKEN_ORIGIN;
 | 
				
			||||||
  PTokenOrigin = PTOKEN_ORIGIN;  
 | 
					  PTokenOrigin = PTOKEN_ORIGIN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// Security Tracking Mode
 | 
					// Security Tracking Mode
 | 
				
			||||||
@ -2881,7 +2881,7 @@ type
 | 
				
			|||||||
  PSECURITY_INFORMATION = ^SECURITY_INFORMATION;
 | 
					  PSECURITY_INFORMATION = ^SECURITY_INFORMATION;
 | 
				
			||||||
  {$EXTERNALSYM PSECURITY_INFORMATION}
 | 
					  {$EXTERNALSYM PSECURITY_INFORMATION}
 | 
				
			||||||
  TSecurityInformation = SECURITY_INFORMATION;
 | 
					  TSecurityInformation = SECURITY_INFORMATION;
 | 
				
			||||||
  PSecurityInformation = PSECURITY_INFORMATION;  
 | 
					  PSecurityInformation = PSECURITY_INFORMATION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const
 | 
					const
 | 
				
			||||||
  OWNER_SECURITY_INFORMATION = $00000001;
 | 
					  OWNER_SECURITY_INFORMATION = $00000001;
 | 
				
			||||||
@ -3179,7 +3179,7 @@ type
 | 
				
			|||||||
  PQUOTA_LIMITS_EX = ^QUOTA_LIMITS_EX;
 | 
					  PQUOTA_LIMITS_EX = ^QUOTA_LIMITS_EX;
 | 
				
			||||||
  {$EXTERNALSYM PQUOTA_LIMITS_EX}
 | 
					  {$EXTERNALSYM PQUOTA_LIMITS_EX}
 | 
				
			||||||
  TQuotaLimitsEx = QUOTA_LIMITS_EX;
 | 
					  TQuotaLimitsEx = QUOTA_LIMITS_EX;
 | 
				
			||||||
  PQuotaLimitsEx = PQUOTA_LIMITS_EX;  
 | 
					  PQuotaLimitsEx = PQUOTA_LIMITS_EX;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  PIO_COUNTERS = ^IO_COUNTERS;
 | 
					  PIO_COUNTERS = ^IO_COUNTERS;
 | 
				
			||||||
  {$EXTERNALSYM PIO_COUNTERS}
 | 
					  {$EXTERNALSYM PIO_COUNTERS}
 | 
				
			||||||
@ -3333,7 +3333,7 @@ type
 | 
				
			|||||||
  PJOBOBJECT_JOBSET_INFORMATION = ^JOBOBJECT_JOBSET_INFORMATION;
 | 
					  PJOBOBJECT_JOBSET_INFORMATION = ^JOBOBJECT_JOBSET_INFORMATION;
 | 
				
			||||||
  {$EXTERNALSYM PJOBOBJECT_JOBSET_INFORMATION}
 | 
					  {$EXTERNALSYM PJOBOBJECT_JOBSET_INFORMATION}
 | 
				
			||||||
  TJobObjectSetInformation = JOBOBJECT_JOBSET_INFORMATION;
 | 
					  TJobObjectSetInformation = JOBOBJECT_JOBSET_INFORMATION;
 | 
				
			||||||
  PJobObjectSetInformation = PJOBOBJECT_JOBSET_INFORMATION;  
 | 
					  PJobObjectSetInformation = PJOBOBJECT_JOBSET_INFORMATION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const
 | 
					const
 | 
				
			||||||
  JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0;
 | 
					  JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0;
 | 
				
			||||||
@ -3545,7 +3545,7 @@ type
 | 
				
			|||||||
  {$EXTERNALSYM SYSTEM_LOGICAL_PROCESSOR_INFORMATION}
 | 
					  {$EXTERNALSYM SYSTEM_LOGICAL_PROCESSOR_INFORMATION}
 | 
				
			||||||
  PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
 | 
					  PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
 | 
				
			||||||
  TSystemLogicalProcessorInformation = SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
 | 
					  TSystemLogicalProcessorInformation = SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
 | 
				
			||||||
  PSystemLogicalProcessorInformation = PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;  
 | 
					  PSystemLogicalProcessorInformation = PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const
 | 
					const
 | 
				
			||||||
  PROCESSOR_INTEL_386     = 386;
 | 
					  PROCESSOR_INTEL_386     = 386;
 | 
				
			||||||
@ -5155,7 +5155,7 @@ type
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function IMAGE_FIRST_SECTION(NtHeader: PImageNtHeaders): PImageSectionHeader;
 | 
					function IMAGE_FIRST_SECTION(NtHeader: PImageNtHeaders): PImageSectionHeader;
 | 
				
			||||||
{$EXTERNALSYM IMAGE_FIRST_SECTION}
 | 
					{$EXTERNALSYM IMAGE_FIRST_SECTION}
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
const
 | 
					const
 | 
				
			||||||
  IMAGE_SIZEOF_SECTION_HEADER = 40;
 | 
					  IMAGE_SIZEOF_SECTION_HEADER = 40;
 | 
				
			||||||
  {$EXTERNALSYM IMAGE_SIZEOF_SECTION_HEADER}
 | 
					  {$EXTERNALSYM IMAGE_SIZEOF_SECTION_HEADER}
 | 
				
			||||||
@ -7165,7 +7165,7 @@ type
 | 
				
			|||||||
  PSLIST_ENTRY = PSINGLE_LIST_ENTRY;
 | 
					  PSLIST_ENTRY = PSINGLE_LIST_ENTRY;
 | 
				
			||||||
  {$EXTERNALSYM PSLIST_ENTRY}
 | 
					  {$EXTERNALSYM PSLIST_ENTRY}
 | 
				
			||||||
  TSListEntry = SLIST_ENTRY;
 | 
					  TSListEntry = SLIST_ENTRY;
 | 
				
			||||||
  PSListEntry = PSLIST_ENTRY;  
 | 
					  PSListEntry = PSLIST_ENTRY;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type
 | 
					type
 | 
				
			||||||
  _SLIST_HEADER = record
 | 
					  _SLIST_HEADER = record
 | 
				
			||||||
@ -7183,7 +7183,7 @@ type
 | 
				
			|||||||
  PSLIST_HEADER = ^SLIST_HEADER;
 | 
					  PSLIST_HEADER = ^SLIST_HEADER;
 | 
				
			||||||
  {$EXTERNALSYM PSLIST_HEADER}
 | 
					  {$EXTERNALSYM PSLIST_HEADER}
 | 
				
			||||||
  TSListHeader = SLIST_HEADER;
 | 
					  TSListHeader = SLIST_HEADER;
 | 
				
			||||||
  PSListHeader = PSLIST_HEADER;  
 | 
					  PSListHeader = PSLIST_HEADER;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
procedure RtlInitializeSListHead(ListHead: PSLIST_HEADER); stdcall;
 | 
					procedure RtlInitializeSListHead(ListHead: PSLIST_HEADER); stdcall;
 | 
				
			||||||
{$EXTERNALSYM RtlInitializeSListHead}
 | 
					{$EXTERNALSYM RtlInitializeSListHead}
 | 
				
			||||||
@ -7646,8 +7646,8 @@ type
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    //
 | 
					    //
 | 
				
			||||||
    // Filled by verifier provider DLL
 | 
					    // Filled by verifier provider DLL
 | 
				
			||||||
    // 
 | 
					    //
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    ProviderNtdllHeapFreeCallback: RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK;
 | 
					    ProviderNtdllHeapFreeCallback: RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK;
 | 
				
			||||||
  end;
 | 
					  end;
 | 
				
			||||||
  {$EXTERNALSYM _RTL_VERIFIER_PROVIDER_DESCRIPTOR}
 | 
					  {$EXTERNALSYM _RTL_VERIFIER_PROVIDER_DESCRIPTOR}
 | 
				
			||||||
@ -8996,18 +8996,34 @@ end;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function NtCurrentTeb: PNT_TIB;
 | 
					function NtCurrentTeb: PNT_TIB;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
        MOV     EAX, FS:[0]
 | 
					{$ifdef cpu386}
 | 
				
			||||||
 | 
					        MOV     EAX, FS:[24]
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					        movq     RAX, GS:[48]
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function GetFiberData: PVOID;
 | 
					function GetFiberData: PVOID;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
        MOV     EAX, FS:[$10]
 | 
					{$ifdef cpu386}
 | 
				
			||||||
 | 
					        MOV     EAX, FS:[16]
 | 
				
			||||||
        MOV     EAX, [EAX]
 | 
					        MOV     EAX, [EAX]
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					        MOV     RAX, GS:[32]
 | 
				
			||||||
 | 
					        MOV     RAX, [RAX]
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function GetCurrentFiber: PVOID;
 | 
					function GetCurrentFiber: PVOID;
 | 
				
			||||||
asm
 | 
					asm
 | 
				
			||||||
        MOV     EAX, FS:[$10]
 | 
					{$ifdef cpu386}
 | 
				
			||||||
 | 
					        MOV     EAX, FS:[16]
 | 
				
			||||||
 | 
					{$endif cpu386}
 | 
				
			||||||
 | 
					{$ifdef cpux86_64}
 | 
				
			||||||
 | 
					        MOV     RAX, GS:[32]
 | 
				
			||||||
 | 
					{$endif cpux86_64}
 | 
				
			||||||
end;
 | 
					end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{$IFNDEF JWA_INCLUDEMODE}
 | 
					{$IFNDEF JWA_INCLUDEMODE}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user