mirror of
https://github.com/reactos/reactos.git
synced 2025-05-04 05:03:22 +00:00
Amd64/misc 64bit fixes (#236)
[REACTOS] Misc 64 bit fixes * [NTOS:MM] Allow MEM_DOS_LIM in NtMapViewOfSection on x64 as well * [NTOS:MM] Implement x64 version of MmIsDisabledPage * [HAL] Remove obsolete code * [NTOS:KE] Fix amd64 version of KeContextToTrapFrame and KeTrapFrameToContext * [XDK] Fix CONTEXT_XSTATE definition * [PCNET] Convert physical address types from pointers to PHYSICAL_ADDRESS
This commit is contained in:
parent
5a4693ff6f
commit
a2f7de7ee8
17 changed files with 72 additions and 76 deletions
|
@ -64,11 +64,10 @@ DbgUiConvertStateChangeStructure(IN PDBGUI_WAIT_STATE_CHANGE WaitStateChange,
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
THREAD_BASIC_INFORMATION ThreadBasicInfo;
|
THREAD_BASIC_INFORMATION ThreadBasicInfo;
|
||||||
LPDEBUG_EVENT DebugEvent = Win32DebugEvent;
|
LPDEBUG_EVENT DebugEvent = Win32DebugEvent;
|
||||||
|
|
||||||
/* Write common data */
|
/* Write common data */
|
||||||
DebugEvent->dwProcessId = (DWORD)WaitStateChange->
|
DebugEvent->dwProcessId = PtrToUlong(WaitStateChange->AppClientId.UniqueProcess);
|
||||||
AppClientId.UniqueProcess;
|
DebugEvent->dwThreadId = PtrToUlong(WaitStateChange->AppClientId.UniqueThread);
|
||||||
DebugEvent->dwThreadId = (DWORD)WaitStateChange->AppClientId.UniqueThread;
|
|
||||||
|
|
||||||
/* Check what kind of even this is */
|
/* Check what kind of even this is */
|
||||||
switch (WaitStateChange->NewState)
|
switch (WaitStateChange->NewState)
|
||||||
|
|
|
@ -20,7 +20,7 @@ TranslateStdHandle(IN HANDLE hHandle)
|
||||||
{
|
{
|
||||||
PRTL_USER_PROCESS_PARAMETERS Ppb = NtCurrentPeb()->ProcessParameters;
|
PRTL_USER_PROCESS_PARAMETERS Ppb = NtCurrentPeb()->ProcessParameters;
|
||||||
|
|
||||||
switch ((ULONG)hHandle)
|
switch ((ULONG_PTR)hHandle)
|
||||||
{
|
{
|
||||||
case STD_INPUT_HANDLE: return Ppb->StandardInput;
|
case STD_INPUT_HANDLE: return Ppb->StandardInput;
|
||||||
case STD_OUTPUT_HANDLE: return Ppb->StandardOutput;
|
case STD_OUTPUT_HANDLE: return Ppb->StandardOutput;
|
||||||
|
|
|
@ -63,14 +63,15 @@ static LPWSTR load_message( HMODULE module, UINT id, WORD lang )
|
||||||
{
|
{
|
||||||
MESSAGE_RESOURCE_ENTRY *mre;
|
MESSAGE_RESOURCE_ENTRY *mre;
|
||||||
WCHAR *buffer;
|
WCHAR *buffer;
|
||||||
NTSTATUS status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
TRACE("module = %p, id = %08x\n", module, id );
|
TRACE("module = %p, id = %08x\n", module, id );
|
||||||
|
|
||||||
if (!module) module = GetModuleHandleW( NULL );
|
if (!module) module = GetModuleHandleW( NULL );
|
||||||
if ((status = RtlFindMessage( module, (ULONG)RT_MESSAGETABLE, lang, id, &mre )) != STATUS_SUCCESS)
|
Status = RtlFindMessage(module, (ULONG_PTR)RT_MESSAGETABLE, lang, id, &mre);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
SetLastError( RtlNtStatusToDosError(status) );
|
SetLastError(RtlNtStatusToDosError(Status));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ INT_PTR CALLBACK PickIconProc(HWND hwndDlg,
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
pIconContext = (PPICK_ICON_CONTEXT)lParam;
|
pIconContext = (PPICK_ICON_CONTEXT)lParam;
|
||||||
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG)pIconContext);
|
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pIconContext);
|
||||||
pIconContext->hDlgCtrl = GetDlgItem(hwndDlg, IDC_PICKICON_LIST);
|
pIconContext->hDlgCtrl = GetDlgItem(hwndDlg, IDC_PICKICON_LIST);
|
||||||
SendMessageW(pIconContext->hDlgCtrl, LB_SETCOLUMNWIDTH, 32, 0);
|
SendMessageW(pIconContext->hDlgCtrl, LB_SETCOLUMNWIDTH, 32, 0);
|
||||||
EnumResourceNamesW(pIconContext->hLibrary, RT_ICON, EnumPickIconResourceProc, (LPARAM)pIconContext->hDlgCtrl);
|
EnumResourceNamesW(pIconContext->hLibrary, RT_ICON, EnumPickIconResourceProc, (LPARAM)pIconContext->hDlgCtrl);
|
||||||
|
|
|
@ -27,7 +27,7 @@ void OskitDumpBuffer( PCHAR Data, UINT Len ) {
|
||||||
|
|
||||||
for( i = 0; i < Len; i++ ) {
|
for( i = 0; i < Len; i++ ) {
|
||||||
if( i && !(i & 0xf) ) DbgPrint( "\n" );
|
if( i && !(i & 0xf) ) DbgPrint( "\n" );
|
||||||
if( !(i & 0xf) ) DbgPrint( "%08x: ", (UINT)(Data + i) );
|
if( !(i & 0xf) ) DbgPrint( "%p: ", (Data + i) );
|
||||||
DbgPrint( " %02x", Data[i] & 0xff );
|
DbgPrint( " %02x", Data[i] & 0xff );
|
||||||
}
|
}
|
||||||
DbgPrint("\n");
|
DbgPrint("\n");
|
||||||
|
|
|
@ -139,8 +139,8 @@ MiniportHandleInterrupt(
|
||||||
IndicatedData = TRUE;
|
IndicatedData = TRUE;
|
||||||
|
|
||||||
RtlZeroMemory(Descriptor, sizeof(RECEIVE_DESCRIPTOR));
|
RtlZeroMemory(Descriptor, sizeof(RECEIVE_DESCRIPTOR));
|
||||||
Descriptor->RBADR =
|
Descriptor->RBADR = Adapter->ReceiveBufferPtrPhys.QuadPart +
|
||||||
(ULONG)(Adapter->ReceiveBufferPtrPhys + Adapter->CurrentReceiveDescriptorIndex * BUFFER_SIZE);
|
(Adapter->CurrentReceiveDescriptorIndex * BUFFER_SIZE);
|
||||||
Descriptor->BCNT = (-BUFFER_SIZE) | 0xf000;
|
Descriptor->BCNT = (-BUFFER_SIZE) | 0xf000;
|
||||||
Descriptor->FLAGS |= RD_OWN;
|
Descriptor->FLAGS |= RD_OWN;
|
||||||
|
|
||||||
|
@ -308,11 +308,9 @@ MiFreeSharedMemory(
|
||||||
{
|
{
|
||||||
NDIS_PHYSICAL_ADDRESS PhysicalAddress;
|
NDIS_PHYSICAL_ADDRESS PhysicalAddress;
|
||||||
|
|
||||||
PhysicalAddress.u.HighPart = 0;
|
|
||||||
|
|
||||||
if(Adapter->InitializationBlockVirt)
|
if(Adapter->InitializationBlockVirt)
|
||||||
{
|
{
|
||||||
PhysicalAddress.u.LowPart = (ULONG)Adapter->InitializationBlockPhys;
|
PhysicalAddress = Adapter->InitializationBlockPhys;
|
||||||
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->InitializationBlockLength,
|
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->InitializationBlockLength,
|
||||||
FALSE, Adapter->InitializationBlockVirt, PhysicalAddress);
|
FALSE, Adapter->InitializationBlockVirt, PhysicalAddress);
|
||||||
Adapter->InitializationBlockVirt = NULL;
|
Adapter->InitializationBlockVirt = NULL;
|
||||||
|
@ -320,7 +318,7 @@ MiFreeSharedMemory(
|
||||||
|
|
||||||
if(Adapter->TransmitDescriptorRingVirt)
|
if(Adapter->TransmitDescriptorRingVirt)
|
||||||
{
|
{
|
||||||
PhysicalAddress.u.LowPart = (ULONG)Adapter->TransmitDescriptorRingPhys;
|
PhysicalAddress = Adapter->TransmitDescriptorRingPhys;
|
||||||
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->TransmitDescriptorRingLength,
|
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->TransmitDescriptorRingLength,
|
||||||
FALSE, Adapter->TransmitDescriptorRingVirt, PhysicalAddress);
|
FALSE, Adapter->TransmitDescriptorRingVirt, PhysicalAddress);
|
||||||
Adapter->TransmitDescriptorRingVirt = NULL;
|
Adapter->TransmitDescriptorRingVirt = NULL;
|
||||||
|
@ -328,7 +326,7 @@ MiFreeSharedMemory(
|
||||||
|
|
||||||
if(Adapter->ReceiveDescriptorRingVirt)
|
if(Adapter->ReceiveDescriptorRingVirt)
|
||||||
{
|
{
|
||||||
PhysicalAddress.u.LowPart = (ULONG)Adapter->ReceiveDescriptorRingPhys;
|
PhysicalAddress = Adapter->ReceiveDescriptorRingPhys;
|
||||||
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->ReceiveDescriptorRingLength,
|
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->ReceiveDescriptorRingLength,
|
||||||
FALSE, Adapter->ReceiveDescriptorRingVirt, PhysicalAddress);
|
FALSE, Adapter->ReceiveDescriptorRingVirt, PhysicalAddress);
|
||||||
Adapter->ReceiveDescriptorRingVirt = NULL;
|
Adapter->ReceiveDescriptorRingVirt = NULL;
|
||||||
|
@ -336,7 +334,7 @@ MiFreeSharedMemory(
|
||||||
|
|
||||||
if(Adapter->TransmitBufferPtrVirt)
|
if(Adapter->TransmitBufferPtrVirt)
|
||||||
{
|
{
|
||||||
PhysicalAddress.u.LowPart = (ULONG)Adapter->TransmitBufferPtrPhys;
|
PhysicalAddress = Adapter->TransmitBufferPtrPhys;
|
||||||
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->TransmitBufferLength,
|
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->TransmitBufferLength,
|
||||||
TRUE, Adapter->TransmitBufferPtrVirt, PhysicalAddress);
|
TRUE, Adapter->TransmitBufferPtrVirt, PhysicalAddress);
|
||||||
Adapter->TransmitBufferPtrVirt = NULL;
|
Adapter->TransmitBufferPtrVirt = NULL;
|
||||||
|
@ -344,7 +342,7 @@ MiFreeSharedMemory(
|
||||||
|
|
||||||
if(Adapter->ReceiveBufferPtrVirt)
|
if(Adapter->ReceiveBufferPtrVirt)
|
||||||
{
|
{
|
||||||
PhysicalAddress.u.LowPart = (ULONG)Adapter->ReceiveBufferPtrPhys;
|
PhysicalAddress = Adapter->ReceiveBufferPtrPhys;
|
||||||
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->ReceiveBufferLength,
|
NdisMFreeSharedMemory(Adapter->MiniportAdapterHandle, Adapter->ReceiveBufferLength,
|
||||||
TRUE, Adapter->ReceiveBufferPtrVirt, PhysicalAddress);
|
TRUE, Adapter->ReceiveBufferPtrVirt, PhysicalAddress);
|
||||||
Adapter->ReceiveBufferPtrVirt = NULL;
|
Adapter->ReceiveBufferPtrVirt = NULL;
|
||||||
|
@ -383,13 +381,13 @@ MiAllocateSharedMemory(
|
||||||
return NDIS_STATUS_RESOURCES;
|
return NDIS_STATUS_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(((ULONG)Adapter->InitializationBlockVirt & 0x00000003) != 0)
|
if (((ULONG_PTR)Adapter->InitializationBlockVirt & 0x00000003) != 0)
|
||||||
{
|
{
|
||||||
DPRINT1("address 0x%x not dword-aligned\n", Adapter->InitializationBlockVirt);
|
DPRINT1("address 0x%x not dword-aligned\n", Adapter->InitializationBlockVirt);
|
||||||
return NDIS_STATUS_RESOURCES;
|
return NDIS_STATUS_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adapter->InitializationBlockPhys = (PINITIALIZATION_BLOCK)NdisGetPhysicalAddressLow(PhysicalAddress);
|
Adapter->InitializationBlockPhys = PhysicalAddress;
|
||||||
|
|
||||||
/* allocate the transport descriptor ring */
|
/* allocate the transport descriptor ring */
|
||||||
Adapter->TransmitDescriptorRingLength = sizeof(TRANSMIT_DESCRIPTOR) * BufferCount;
|
Adapter->TransmitDescriptorRingLength = sizeof(TRANSMIT_DESCRIPTOR) * BufferCount;
|
||||||
|
@ -404,13 +402,13 @@ MiAllocateSharedMemory(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((ULONG)Adapter->TransmitDescriptorRingVirt & 0x00000003) != 0)
|
if (((ULONG_PTR)Adapter->TransmitDescriptorRingVirt & 0x00000003) != 0)
|
||||||
{
|
{
|
||||||
DPRINT1("address 0x%x not dword-aligned\n", Adapter->TransmitDescriptorRingVirt);
|
DPRINT1("address 0x%x not dword-aligned\n", Adapter->TransmitDescriptorRingVirt);
|
||||||
return NDIS_STATUS_RESOURCES;
|
return NDIS_STATUS_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adapter->TransmitDescriptorRingPhys = (PTRANSMIT_DESCRIPTOR)NdisGetPhysicalAddressLow(PhysicalAddress);
|
Adapter->TransmitDescriptorRingPhys = PhysicalAddress;
|
||||||
RtlZeroMemory(Adapter->TransmitDescriptorRingVirt, sizeof(TRANSMIT_DESCRIPTOR) * BufferCount);
|
RtlZeroMemory(Adapter->TransmitDescriptorRingVirt, sizeof(TRANSMIT_DESCRIPTOR) * BufferCount);
|
||||||
|
|
||||||
/* allocate the receive descriptor ring */
|
/* allocate the receive descriptor ring */
|
||||||
|
@ -426,13 +424,13 @@ MiAllocateSharedMemory(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((ULONG)Adapter->ReceiveDescriptorRingVirt & 0x00000003) != 0)
|
if (((ULONG_PTR)Adapter->ReceiveDescriptorRingVirt & 0x00000003) != 0)
|
||||||
{
|
{
|
||||||
DPRINT1("address 0x%x not dword-aligned\n", Adapter->ReceiveDescriptorRingVirt);
|
DPRINT1("address 0x%x not dword-aligned\n", Adapter->ReceiveDescriptorRingVirt);
|
||||||
return NDIS_STATUS_RESOURCES;
|
return NDIS_STATUS_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adapter->ReceiveDescriptorRingPhys = (PRECEIVE_DESCRIPTOR)NdisGetPhysicalAddressLow(PhysicalAddress);
|
Adapter->ReceiveDescriptorRingPhys = PhysicalAddress;
|
||||||
RtlZeroMemory(Adapter->ReceiveDescriptorRingVirt, sizeof(RECEIVE_DESCRIPTOR) * BufferCount);
|
RtlZeroMemory(Adapter->ReceiveDescriptorRingVirt, sizeof(RECEIVE_DESCRIPTOR) * BufferCount);
|
||||||
|
|
||||||
/* allocate transmit buffers */
|
/* allocate transmit buffers */
|
||||||
|
@ -448,13 +446,13 @@ MiAllocateSharedMemory(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((ULONG)Adapter->TransmitBufferPtrVirt & 0x00000003) != 0)
|
if(((ULONG_PTR)Adapter->TransmitBufferPtrVirt & 0x00000003) != 0)
|
||||||
{
|
{
|
||||||
DPRINT1("address 0x%x not dword-aligned\n", Adapter->TransmitBufferPtrVirt);
|
DPRINT1("address 0x%x not dword-aligned\n", Adapter->TransmitBufferPtrVirt);
|
||||||
return NDIS_STATUS_RESOURCES;
|
return NDIS_STATUS_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adapter->TransmitBufferPtrPhys = (PCHAR)NdisGetPhysicalAddressLow(PhysicalAddress);
|
Adapter->TransmitBufferPtrPhys = PhysicalAddress;
|
||||||
RtlZeroMemory(Adapter->TransmitBufferPtrVirt, BUFFER_SIZE * BufferCount);
|
RtlZeroMemory(Adapter->TransmitBufferPtrVirt, BUFFER_SIZE * BufferCount);
|
||||||
|
|
||||||
/* allocate receive buffers */
|
/* allocate receive buffers */
|
||||||
|
@ -470,13 +468,13 @@ MiAllocateSharedMemory(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((ULONG)Adapter->ReceiveBufferPtrVirt & 0x00000003) != 0)
|
if (((ULONG_PTR)Adapter->ReceiveBufferPtrVirt & 0x00000003) != 0)
|
||||||
{
|
{
|
||||||
DPRINT1("address 0x%x not dword-aligned\n", Adapter->ReceiveBufferPtrVirt);
|
DPRINT1("address 0x%x not dword-aligned\n", Adapter->ReceiveBufferPtrVirt);
|
||||||
return NDIS_STATUS_RESOURCES;
|
return NDIS_STATUS_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adapter->ReceiveBufferPtrPhys = (PCHAR)NdisGetPhysicalAddressLow(PhysicalAddress);
|
Adapter->ReceiveBufferPtrPhys = PhysicalAddress;
|
||||||
RtlZeroMemory(Adapter->ReceiveBufferPtrVirt, BUFFER_SIZE * BufferCount);
|
RtlZeroMemory(Adapter->ReceiveBufferPtrVirt, BUFFER_SIZE * BufferCount);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -495,7 +493,7 @@ MiAllocateSharedMemory(
|
||||||
TransmitDescriptor = Adapter->TransmitDescriptorRingVirt;
|
TransmitDescriptor = Adapter->TransmitDescriptorRingVirt;
|
||||||
for(i = 0; i < BufferCount; i++)
|
for(i = 0; i < BufferCount; i++)
|
||||||
{
|
{
|
||||||
(TransmitDescriptor+i)->TBADR = (ULONG)Adapter->TransmitBufferPtrPhys + i * BUFFER_SIZE;
|
(TransmitDescriptor+i)->TBADR = Adapter->TransmitBufferPtrPhys.QuadPart + i * BUFFER_SIZE;
|
||||||
(TransmitDescriptor+i)->BCNT = 0xf000 | -BUFFER_SIZE; /* 2's compliment + set top 4 bits */
|
(TransmitDescriptor+i)->BCNT = 0xf000 | -BUFFER_SIZE; /* 2's compliment + set top 4 bits */
|
||||||
(TransmitDescriptor+i)->FLAGS = TD1_STP | TD1_ENP;
|
(TransmitDescriptor+i)->FLAGS = TD1_STP | TD1_ENP;
|
||||||
}
|
}
|
||||||
|
@ -506,7 +504,7 @@ MiAllocateSharedMemory(
|
||||||
ReceiveDescriptor = Adapter->ReceiveDescriptorRingVirt;
|
ReceiveDescriptor = Adapter->ReceiveDescriptorRingVirt;
|
||||||
for(i = 0; i < BufferCount; i++)
|
for(i = 0; i < BufferCount; i++)
|
||||||
{
|
{
|
||||||
(ReceiveDescriptor+i)->RBADR = (ULONG)Adapter->ReceiveBufferPtrPhys + i * BUFFER_SIZE;
|
(ReceiveDescriptor+i)->RBADR = Adapter->ReceiveBufferPtrPhys.QuadPart + i * BUFFER_SIZE;
|
||||||
(ReceiveDescriptor+i)->BCNT = 0xf000 | -BUFFER_SIZE; /* 2's compliment + set top 4 bits */
|
(ReceiveDescriptor+i)->BCNT = 0xf000 | -BUFFER_SIZE; /* 2's compliment + set top 4 bits */
|
||||||
(ReceiveDescriptor+i)->FLAGS = RD_OWN;
|
(ReceiveDescriptor+i)->FLAGS = RD_OWN;
|
||||||
}
|
}
|
||||||
|
@ -542,12 +540,12 @@ MiPrepareInitializationBlock(
|
||||||
|
|
||||||
/* set up receive ring */
|
/* set up receive ring */
|
||||||
DPRINT("Receive ring physical address: 0x%x\n", Adapter->ReceiveDescriptorRingPhys);
|
DPRINT("Receive ring physical address: 0x%x\n", Adapter->ReceiveDescriptorRingPhys);
|
||||||
Adapter->InitializationBlockVirt->RDRA = (ULONG)Adapter->ReceiveDescriptorRingPhys;
|
Adapter->InitializationBlockVirt->RDRA = Adapter->ReceiveDescriptorRingPhys.QuadPart;
|
||||||
Adapter->InitializationBlockVirt->RLEN = (Adapter->LogBufferCount << 4) & 0xf0;
|
Adapter->InitializationBlockVirt->RLEN = (Adapter->LogBufferCount << 4) & 0xf0;
|
||||||
|
|
||||||
/* set up transmit ring */
|
/* set up transmit ring */
|
||||||
DPRINT("Transmit ring physical address: 0x%x\n", Adapter->TransmitDescriptorRingPhys);
|
DPRINT("Transmit ring physical address: 0x%x\n", Adapter->TransmitDescriptorRingPhys);
|
||||||
Adapter->InitializationBlockVirt->TDRA = (ULONG)Adapter->TransmitDescriptorRingPhys;
|
Adapter->InitializationBlockVirt->TDRA = Adapter->TransmitDescriptorRingPhys.QuadPart;
|
||||||
Adapter->InitializationBlockVirt->TLEN = (Adapter->LogBufferCount << 4) & 0xf0;
|
Adapter->InitializationBlockVirt->TLEN = (Adapter->LogBufferCount << 4) & 0xf0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -730,9 +728,9 @@ MiInitChip(
|
||||||
|
|
||||||
/* set up csr1 and csr2 with init block */
|
/* set up csr1 and csr2 with init block */
|
||||||
NdisRawWritePortUshort(Adapter->PortOffset + RAP, CSR1);
|
NdisRawWritePortUshort(Adapter->PortOffset + RAP, CSR1);
|
||||||
NdisRawWritePortUshort(Adapter->PortOffset + RDP, (USHORT)((ULONG)Adapter->InitializationBlockPhys & 0xffff));
|
NdisRawWritePortUshort(Adapter->PortOffset + RDP, (USHORT)(Adapter->InitializationBlockPhys.LowPart & 0xffff));
|
||||||
NdisRawWritePortUshort(Adapter->PortOffset + RAP, CSR2);
|
NdisRawWritePortUshort(Adapter->PortOffset + RAP, CSR2);
|
||||||
NdisRawWritePortUshort(Adapter->PortOffset + RDP, (USHORT)((ULONG)Adapter->InitializationBlockPhys >> 16) & 0xffff);
|
NdisRawWritePortUshort(Adapter->PortOffset + RDP, (USHORT)(Adapter->InitializationBlockPhys.LowPart >> 16) & 0xffff);
|
||||||
|
|
||||||
DPRINT("programmed with init block\n");
|
DPRINT("programmed with init block\n");
|
||||||
|
|
||||||
|
@ -1223,7 +1221,7 @@ MiniportSend(
|
||||||
Adapter->CurrentTransmitEndIndex %= Adapter->BufferCount;
|
Adapter->CurrentTransmitEndIndex %= Adapter->BufferCount;
|
||||||
|
|
||||||
Desc->FLAGS = TD1_OWN | TD1_STP | TD1_ENP;
|
Desc->FLAGS = TD1_OWN | TD1_STP | TD1_ENP;
|
||||||
Desc->BCNT = 0xf000 | -TotalPacketLength;
|
Desc->BCNT = 0xf000 | -(INT)TotalPacketLength;
|
||||||
|
|
||||||
NdisMSynchronizeWithInterrupt(&Adapter->InterruptObject, MiSyncStartTransmit, Adapter);
|
NdisMSynchronizeWithInterrupt(&Adapter->InterruptObject, MiSyncStartTransmit, Adapter);
|
||||||
|
|
||||||
|
|
|
@ -79,27 +79,27 @@ typedef struct _ADAPTER
|
||||||
/* initialization block */
|
/* initialization block */
|
||||||
ULONG InitializationBlockLength;
|
ULONG InitializationBlockLength;
|
||||||
PINITIALIZATION_BLOCK InitializationBlockVirt;
|
PINITIALIZATION_BLOCK InitializationBlockVirt;
|
||||||
PINITIALIZATION_BLOCK InitializationBlockPhys;
|
PHYSICAL_ADDRESS InitializationBlockPhys;
|
||||||
|
|
||||||
/* transmit descriptor ring */
|
/* transmit descriptor ring */
|
||||||
ULONG TransmitDescriptorRingLength;
|
ULONG TransmitDescriptorRingLength;
|
||||||
PTRANSMIT_DESCRIPTOR TransmitDescriptorRingVirt;
|
PTRANSMIT_DESCRIPTOR TransmitDescriptorRingVirt;
|
||||||
PTRANSMIT_DESCRIPTOR TransmitDescriptorRingPhys;
|
PHYSICAL_ADDRESS TransmitDescriptorRingPhys;
|
||||||
|
|
||||||
/* transmit buffers */
|
/* transmit buffers */
|
||||||
ULONG TransmitBufferLength;
|
ULONG TransmitBufferLength;
|
||||||
PCHAR TransmitBufferPtrVirt;
|
PCHAR TransmitBufferPtrVirt;
|
||||||
PCHAR TransmitBufferPtrPhys;
|
PHYSICAL_ADDRESS TransmitBufferPtrPhys;
|
||||||
|
|
||||||
/* receive descriptor ring */
|
/* receive descriptor ring */
|
||||||
ULONG ReceiveDescriptorRingLength;
|
ULONG ReceiveDescriptorRingLength;
|
||||||
PRECEIVE_DESCRIPTOR ReceiveDescriptorRingVirt;
|
PRECEIVE_DESCRIPTOR ReceiveDescriptorRingVirt;
|
||||||
PRECEIVE_DESCRIPTOR ReceiveDescriptorRingPhys;
|
PHYSICAL_ADDRESS ReceiveDescriptorRingPhys;
|
||||||
|
|
||||||
/* receive buffers */
|
/* receive buffers */
|
||||||
ULONG ReceiveBufferLength;
|
ULONG ReceiveBufferLength;
|
||||||
PCHAR ReceiveBufferPtrVirt;
|
PCHAR ReceiveBufferPtrVirt;
|
||||||
PCHAR ReceiveBufferPtrPhys;
|
PHYSICAL_ADDRESS ReceiveBufferPtrPhys;
|
||||||
|
|
||||||
/* buffer count */
|
/* buffer count */
|
||||||
ULONG BufferCount;
|
ULONG BufferCount;
|
||||||
|
|
|
@ -418,7 +418,7 @@ int MainFrameBase::Command(int id, int code)
|
||||||
|
|
||||||
HINSTANCE hinst = ShellExecute(_hwnd, NULL/*operation*/, dlg.cmd/*file*/, NULL/*parameters*/, NULL/*dir*/, dlg.cmdshow);
|
HINSTANCE hinst = ShellExecute(_hwnd, NULL/*operation*/, dlg.cmd/*file*/, NULL/*parameters*/, NULL/*dir*/, dlg.cmdshow);
|
||||||
|
|
||||||
if ((int)hinst <= 32)
|
if ((INT_PTR)hinst <= 32)
|
||||||
display_error(_hwnd, GetLastError());
|
display_error(_hwnd, GetLastError());
|
||||||
}
|
}
|
||||||
break;}
|
break;}
|
||||||
|
|
|
@ -192,7 +192,7 @@ BOOL launch_file(HWND hwnd, LPCTSTR cmd, UINT nCmdShow, LPCTSTR parameters)
|
||||||
|
|
||||||
HINSTANCE hinst = ShellExecute(hwnd, NULL/*operation*/, cmd, parameters, NULL/*dir*/, nCmdShow);
|
HINSTANCE hinst = ShellExecute(hwnd, NULL/*operation*/, cmd, parameters, NULL/*dir*/, nCmdShow);
|
||||||
|
|
||||||
if ((int)hinst <= 32) {
|
if ((INT_PTR)hinst <= 32) {
|
||||||
display_error(hwnd, GetLastError());
|
display_error(hwnd, GetLastError());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -205,7 +205,7 @@ BOOL launch_fileA(HWND hwnd, LPSTR cmd, UINT nCmdShow, LPCSTR parameters)
|
||||||
{
|
{
|
||||||
HINSTANCE hinst = ShellExecuteA(hwnd, NULL/*operation*/, cmd, parameters, NULL/*dir*/, nCmdShow);
|
HINSTANCE hinst = ShellExecuteA(hwnd, NULL/*operation*/, cmd, parameters, NULL/*dir*/, nCmdShow);
|
||||||
|
|
||||||
if ((int)hinst <= 32) {
|
if ((INT_PTR)hinst <= 32) {
|
||||||
display_error(hwnd, GetLastError());
|
display_error(hwnd, GetLastError());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -387,7 +387,7 @@ BOOL launch_cpanel(HWND hwnd, LPCTSTR applet)
|
||||||
_tcscpy(parameters, TEXT("shell32.dll,Control_RunDLL "));
|
_tcscpy(parameters, TEXT("shell32.dll,Control_RunDLL "));
|
||||||
_tcscat(parameters, applet);
|
_tcscat(parameters, applet);
|
||||||
|
|
||||||
return ((int)ShellExecute(hwnd, TEXT("open"), TEXT("rundll32.exe"), parameters, NULL, SW_SHOWDEFAULT) > 32);
|
return ((INT_PTR)ShellExecute(hwnd, TEXT("open"), TEXT("rundll32.exe"), parameters, NULL, SW_SHOWDEFAULT) > 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -838,7 +838,7 @@ protected:
|
||||||
{
|
{
|
||||||
if (!_cmd.empty()) {
|
if (!_cmd.empty()) {
|
||||||
HINSTANCE hinst = ShellExecute(GetParent(_hwnd), _T("open"), _cmd, 0, 0, SW_SHOWNORMAL);
|
HINSTANCE hinst = ShellExecute(GetParent(_hwnd), _T("open"), _cmd, 0, 0, SW_SHOWNORMAL);
|
||||||
return (int)hinst > HINSTANCE_ERROR;
|
return (INT_PTR)hinst > HINSTANCE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -861,7 +861,7 @@ struct ToolTip : public WindowHandle
|
||||||
void add(HWND hparent, HWND htool, LPCTSTR txt=LPSTR_TEXTCALLBACK, LPARAM lparam=0)
|
void add(HWND hparent, HWND htool, LPCTSTR txt=LPSTR_TEXTCALLBACK, LPARAM lparam=0)
|
||||||
{
|
{
|
||||||
TOOLINFO ti = {
|
TOOLINFO ti = {
|
||||||
sizeof(TOOLINFO), TTF_SUBCLASS|TTF_IDISHWND|TTF_TRANSPARENT, hparent, (UINT)htool,
|
sizeof(TOOLINFO), TTF_SUBCLASS|TTF_IDISHWND|TTF_TRANSPARENT, hparent, (UINT_PTR)htool,
|
||||||
{0,0,0,0}, 0, (LPTSTR)txt, lparam
|
{0,0,0,0}, 0, (LPTSTR)txt, lparam
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -893,7 +893,7 @@ struct ToolTip : public WindowHandle
|
||||||
void remove(HWND hparent, HWND htool)
|
void remove(HWND hparent, HWND htool)
|
||||||
{
|
{
|
||||||
TOOLINFO ti = {
|
TOOLINFO ti = {
|
||||||
sizeof(TOOLINFO), TTF_IDISHWND, hparent, (UINT)htool,
|
sizeof(TOOLINFO), TTF_IDISHWND, hparent, (UINT_PTR)htool,
|
||||||
{0,0,0,0}, 0, 0, 0
|
{0,0,0,0}, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -57,8 +57,9 @@ KeContextToTrapFrame(IN PCONTEXT Context,
|
||||||
|
|
||||||
/* Handle floating point registers */
|
/* Handle floating point registers */
|
||||||
if ((ContextFlags & CONTEXT_FLOATING_POINT) &&
|
if ((ContextFlags & CONTEXT_FLOATING_POINT) &&
|
||||||
(Context->SegCs & MODE_MASK))
|
((Context->SegCs & MODE_MASK) != KernelMode))
|
||||||
{
|
{
|
||||||
|
TrapFrame->MxCsr = Context->MxCsr;
|
||||||
TrapFrame->Xmm0 = Context->Xmm0;
|
TrapFrame->Xmm0 = Context->Xmm0;
|
||||||
TrapFrame->Xmm1 = Context->Xmm1;
|
TrapFrame->Xmm1 = Context->Xmm1;
|
||||||
TrapFrame->Xmm2 = Context->Xmm2;
|
TrapFrame->Xmm2 = Context->Xmm2;
|
||||||
|
@ -84,7 +85,7 @@ KeContextToTrapFrame(IN PCONTEXT Context,
|
||||||
if (ContextFlags & CONTEXT_CONTROL)
|
if (ContextFlags & CONTEXT_CONTROL)
|
||||||
{
|
{
|
||||||
/* Check if this was a Kernel Trap */
|
/* Check if this was a Kernel Trap */
|
||||||
if (Context->SegCs == KGDT64_R0_CODE)
|
if ((Context->SegCs & MODE_MASK) == KernelMode)
|
||||||
{
|
{
|
||||||
/* Set valid selectors */
|
/* Set valid selectors */
|
||||||
TrapFrame->SegCs = KGDT64_R0_CODE;
|
TrapFrame->SegCs = KGDT64_R0_CODE;
|
||||||
|
@ -107,7 +108,7 @@ KeContextToTrapFrame(IN PCONTEXT Context,
|
||||||
if (ContextFlags & CONTEXT_SEGMENTS)
|
if (ContextFlags & CONTEXT_SEGMENTS)
|
||||||
{
|
{
|
||||||
/* Check if this was a Kernel Trap */
|
/* Check if this was a Kernel Trap */
|
||||||
if (Context->SegCs == KGDT64_R0_CODE)
|
if ((Context->SegCs & MODE_MASK) == KernelMode)
|
||||||
{
|
{
|
||||||
/* Set valid selectors */
|
/* Set valid selectors */
|
||||||
TrapFrame->SegDs = KGDT64_R3_DATA | RPL_MASK;
|
TrapFrame->SegDs = KGDT64_R3_DATA | RPL_MASK;
|
||||||
|
@ -147,14 +148,20 @@ KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN PKEXCEPTION_FRAME ExceptionFrame,
|
IN PKEXCEPTION_FRAME ExceptionFrame,
|
||||||
IN OUT PCONTEXT Context)
|
IN OUT PCONTEXT Context)
|
||||||
{
|
{
|
||||||
|
ULONG ContextFlags;
|
||||||
KIRQL OldIrql;
|
KIRQL OldIrql;
|
||||||
|
|
||||||
/* Do this at APC_LEVEL */
|
/* Do this at APC_LEVEL */
|
||||||
OldIrql = KeGetCurrentIrql();
|
OldIrql = KeGetCurrentIrql();
|
||||||
if (OldIrql < APC_LEVEL) KeRaiseIrql(APC_LEVEL, &OldIrql);
|
if (OldIrql < APC_LEVEL) KeRaiseIrql(APC_LEVEL, &OldIrql);
|
||||||
|
|
||||||
|
/* Make sure we have an amd64 context, then remove the flag */
|
||||||
|
ContextFlags = Context->ContextFlags;
|
||||||
|
ASSERT(ContextFlags & CONTEXT_AMD64);
|
||||||
|
ContextFlags &= ~CONTEXT_AMD64;
|
||||||
|
|
||||||
/* Handle integer registers */
|
/* Handle integer registers */
|
||||||
if ((Context->ContextFlags & CONTEXT_INTEGER) == CONTEXT_INTEGER)
|
if (ContextFlags & CONTEXT_INTEGER)
|
||||||
{
|
{
|
||||||
Context->Rax = TrapFrame->Rax;
|
Context->Rax = TrapFrame->Rax;
|
||||||
Context->Rbx = TrapFrame->Rbx;
|
Context->Rbx = TrapFrame->Rbx;
|
||||||
|
@ -178,8 +185,8 @@ KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle floating point registers */
|
/* Handle floating point registers */
|
||||||
if (((Context->ContextFlags & CONTEXT_FLOATING_POINT) ==
|
if ((ContextFlags & CONTEXT_FLOATING_POINT) &&
|
||||||
CONTEXT_FLOATING_POINT) && (TrapFrame->SegCs & MODE_MASK))
|
((TrapFrame->SegCs & MODE_MASK) != KernelMode))
|
||||||
{
|
{
|
||||||
Context->Xmm0 = TrapFrame->Xmm0;
|
Context->Xmm0 = TrapFrame->Xmm0;
|
||||||
Context->Xmm1 = TrapFrame->Xmm1;
|
Context->Xmm1 = TrapFrame->Xmm1;
|
||||||
|
@ -203,10 +210,10 @@ KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle control registers */
|
/* Handle control registers */
|
||||||
if ((Context->ContextFlags & CONTEXT_CONTROL) == CONTEXT_CONTROL)
|
if (ContextFlags & CONTEXT_CONTROL)
|
||||||
{
|
{
|
||||||
/* Check if this was a Kernel Trap */
|
/* Check if this was a Kernel Trap */
|
||||||
if (TrapFrame->SegCs == KGDT64_R0_CODE)
|
if ((TrapFrame->SegCs & MODE_MASK) == KernelMode)
|
||||||
{
|
{
|
||||||
/* Set valid selectors */
|
/* Set valid selectors */
|
||||||
Context->SegCs = KGDT64_R0_CODE;
|
Context->SegCs = KGDT64_R0_CODE;
|
||||||
|
@ -226,10 +233,10 @@ KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle segment selectors */
|
/* Handle segment selectors */
|
||||||
if ((Context->ContextFlags & CONTEXT_SEGMENTS) == CONTEXT_SEGMENTS)
|
if (ContextFlags & CONTEXT_SEGMENTS)
|
||||||
{
|
{
|
||||||
/* Check if this was a Kernel Trap */
|
/* Check if this was a Kernel Trap */
|
||||||
if (TrapFrame->SegCs == KGDT64_R0_CODE)
|
if ((TrapFrame->SegCs & MODE_MASK) == KernelMode)
|
||||||
{
|
{
|
||||||
/* Set valid selectors */
|
/* Set valid selectors */
|
||||||
Context->SegDs = KGDT64_R3_DATA | RPL_MASK;
|
Context->SegDs = KGDT64_R3_DATA | RPL_MASK;
|
||||||
|
@ -248,8 +255,7 @@ KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle debug registers */
|
/* Handle debug registers */
|
||||||
if ((Context->ContextFlags & CONTEXT_DEBUG_REGISTERS) ==
|
if (ContextFlags & CONTEXT_DEBUG_REGISTERS)
|
||||||
CONTEXT_DEBUG_REGISTERS)
|
|
||||||
{
|
{
|
||||||
/* Copy the debug registers */
|
/* Copy the debug registers */
|
||||||
Context->Dr0 = TrapFrame->Dr0;
|
Context->Dr0 = TrapFrame->Dr0;
|
||||||
|
|
|
@ -54,16 +54,9 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
KiSetProcessorType(VOID)
|
KiSetProcessorType(VOID)
|
||||||
{
|
{
|
||||||
ULONG64 EFlags;
|
|
||||||
CPU_INFO CpuInfo;
|
CPU_INFO CpuInfo;
|
||||||
ULONG Stepping, Type;
|
ULONG Stepping, Type;
|
||||||
|
|
||||||
/* Start by assuming no CPUID data */
|
|
||||||
KeGetCurrentPrcb()->CpuID = 0;
|
|
||||||
|
|
||||||
/* Save EFlags */
|
|
||||||
EFlags = __readeflags();
|
|
||||||
|
|
||||||
/* Do CPUID 1 now */
|
/* Do CPUID 1 now */
|
||||||
KiCpuId(&CpuInfo, 1);
|
KiCpuId(&CpuInfo, 1);
|
||||||
|
|
||||||
|
@ -85,9 +78,6 @@ KiSetProcessorType(VOID)
|
||||||
KeGetCurrentPrcb()->CpuID = TRUE;
|
KeGetCurrentPrcb()->CpuID = TRUE;
|
||||||
KeGetCurrentPrcb()->CpuType = (UCHAR)Type;
|
KeGetCurrentPrcb()->CpuType = (UCHAR)Type;
|
||||||
KeGetCurrentPrcb()->CpuStep = (USHORT)Stepping;
|
KeGetCurrentPrcb()->CpuStep = (USHORT)Stepping;
|
||||||
|
|
||||||
/* Restore EFLAGS */
|
|
||||||
__writeeflags(EFlags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG
|
ULONG
|
||||||
|
|
|
@ -716,7 +716,7 @@ KiDisplayBlueScreen(IN ULONG MessageId,
|
||||||
/* Show the technical Data */
|
/* Show the technical Data */
|
||||||
sprintf(AnsiName,
|
sprintf(AnsiName,
|
||||||
"\r\n\r\n*** STOP: 0x%08lX (0x%p,0x%p,0x%p,0x%p)\r\n\r\n",
|
"\r\n\r\n*** STOP: 0x%08lX (0x%p,0x%p,0x%p,0x%p)\r\n\r\n",
|
||||||
KiBugCheckData[0],
|
(ULONG)KiBugCheckData[0],
|
||||||
(PVOID)KiBugCheckData[1],
|
(PVOID)KiBugCheckData[1],
|
||||||
(PVOID)KiBugCheckData[2],
|
(PVOID)KiBugCheckData[2],
|
||||||
(PVOID)KiBugCheckData[3],
|
(PVOID)KiBugCheckData[3],
|
||||||
|
|
|
@ -3567,7 +3567,7 @@ NtMapViewOfSection(IN HANDLE SectionHandle,
|
||||||
ACCESS_MASK DesiredAccess;
|
ACCESS_MASK DesiredAccess;
|
||||||
ULONG ProtectionMask;
|
ULONG ProtectionMask;
|
||||||
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
|
||||||
#ifdef _M_IX86
|
#if defined(_M_IX86) || defined(_M_AMD64)
|
||||||
static const ULONG ValidAllocationType = (MEM_TOP_DOWN | MEM_LARGE_PAGES |
|
static const ULONG ValidAllocationType = (MEM_TOP_DOWN | MEM_LARGE_PAGES |
|
||||||
MEM_DOS_LIM | SEC_NO_CHANGE | MEM_RESERVE);
|
MEM_DOS_LIM | SEC_NO_CHANGE | MEM_RESERVE);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -312,8 +312,10 @@ MmIsDisabledPage(PEPROCESS Process, PVOID Address)
|
||||||
{
|
{
|
||||||
MMPTE Pte;
|
MMPTE Pte;
|
||||||
Pte.u.Long = MiGetPteValueForProcess(Process, Address);
|
Pte.u.Long = MiGetPteValueForProcess(Process, Address);
|
||||||
__debugbreak(); // FIXME
|
|
||||||
return !Pte.u.Hard.Valid && !(Pte.u.Long & 0x800) && Pte.u.Hard.PageFrameNumber;
|
return (Pte.u.Hard.Valid == 0) &&
|
||||||
|
(Pte.u.Trans.Transition == 0) &&
|
||||||
|
(Pte.u.Hard.PageFrameNumber != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
|
|
@ -1975,7 +1975,7 @@ typedef struct _KPROCESS
|
||||||
LIST_ENTRY ProfileListHead;
|
LIST_ENTRY ProfileListHead;
|
||||||
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
|
||||||
ULONG_PTR DirectoryTableBase;
|
ULONG_PTR DirectoryTableBase;
|
||||||
ULONG Unused0;
|
ULONG_PTR Unused0;
|
||||||
#else
|
#else
|
||||||
ULONG_PTR DirectoryTableBase[2];
|
ULONG_PTR DirectoryTableBase[2];
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -191,7 +191,7 @@ $if (_NTDDK_)
|
||||||
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
|
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
|
||||||
#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
|
#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
|
||||||
|
|
||||||
#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x20L)
|
#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x40L)
|
||||||
|
|
||||||
#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
|
#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
|
||||||
#define CONTEXT_SERVICE_ACTIVE 0x10000000
|
#define CONTEXT_SERVICE_ACTIVE 0x10000000
|
||||||
|
|
Loading…
Reference in a new issue