mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
- Fix several ULONG/ULONG_PTR issues
- Add a parameter to DefaultQueryInfoBufferCheck for ULONG_PTR/SIZE_T ResultLength svn path=/branches/ros-amd64-bringup/; revision=37435
This commit is contained in:
@@ -334,6 +334,7 @@ NtQueryEvent(IN HANDLE EventHandle,
|
||||
EventInformation,
|
||||
EventInformationLength,
|
||||
ReturnLength,
|
||||
NULL,
|
||||
PreviousMode);
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
|
||||
@@ -36,9 +36,9 @@ InterlockedPushEntrySList(IN PSLIST_HEADER ListHead,
|
||||
{
|
||||
Entry->Next = FirstEntry;
|
||||
NextEntry = FirstEntry;
|
||||
FirstEntry = (PVOID)_InterlockedCompareExchange((PLONG)Head,
|
||||
(LONG)Entry,
|
||||
(LONG)FirstEntry);
|
||||
FirstEntry = InterlockedCompareExchangePointer((PVOID*)Head,
|
||||
(PVOID)Entry,
|
||||
(PVOID)FirstEntry);
|
||||
} while (FirstEntry != NextEntry);
|
||||
|
||||
return FirstEntry;
|
||||
@@ -56,9 +56,9 @@ InterlockedPopEntrySList(IN PSLIST_HEADER ListHead)
|
||||
if (!FirstEntry) return NULL;
|
||||
|
||||
NextEntry = FirstEntry;
|
||||
FirstEntry = (PVOID)_InterlockedCompareExchange((PLONG)Head,
|
||||
(LONG)FirstEntry->Next,
|
||||
(LONG)FirstEntry);
|
||||
FirstEntry = InterlockedCompareExchangePointer((PVOID*)Head,
|
||||
(PVOID)FirstEntry->Next,
|
||||
(PVOID)FirstEntry);
|
||||
} while (FirstEntry != NextEntry);
|
||||
|
||||
return FirstEntry;
|
||||
@@ -68,7 +68,7 @@ PSINGLE_LIST_ENTRY
|
||||
FASTCALL
|
||||
ExInterlockedFlushSList(IN PSLIST_HEADER ListHead)
|
||||
{
|
||||
return (PVOID)_InterlockedExchange((PLONG)&ListHead->Next.Next, (LONG)NULL);
|
||||
return InterlockedExchangePointer((PVOID*)&ListHead->Next.Next, NULL);
|
||||
}
|
||||
|
||||
PSLIST_ENTRY
|
||||
|
||||
@@ -245,6 +245,7 @@ NtQueryMutant(IN HANDLE MutantHandle,
|
||||
MutantInformation,
|
||||
MutantInformationLength,
|
||||
ResultLength,
|
||||
NULL,
|
||||
PreviousMode);
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
|
||||
@@ -237,6 +237,7 @@ NtQuerySemaphore(IN HANDLE SemaphoreHandle,
|
||||
SemaphoreInformation,
|
||||
SemaphoreInformationLength,
|
||||
ReturnLength,
|
||||
NULL,
|
||||
PreviousMode);
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
|
||||
@@ -1055,7 +1055,7 @@ QSI_DEF(SystemHandleInformation)
|
||||
|
||||
for (Count = 0; HandleCount > 0 ; HandleCount--)
|
||||
{
|
||||
Shi->Handles[i].UniqueProcessId = (USHORT)(ULONG)pr->UniqueProcessId;
|
||||
Shi->Handles[i].UniqueProcessId = (USHORT)(ULONG_PTR)pr->UniqueProcessId;
|
||||
Count++;
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -522,6 +522,7 @@ NtQueryTimer(IN HANDLE TimerHandle,
|
||||
TimerInformation,
|
||||
TimerInformationLength,
|
||||
ReturnLength,
|
||||
NULL,
|
||||
PreviousMode);
|
||||
if(!NT_SUCCESS(Status)) return Status;
|
||||
|
||||
|
||||
@@ -213,6 +213,7 @@ DefaultQueryInfoBufferCheck(ULONG Class,
|
||||
PVOID Buffer,
|
||||
ULONG BufferLength,
|
||||
PULONG ReturnLength,
|
||||
PULONG_PTR ReturnLengthLong,
|
||||
KPROCESSOR_MODE PreviousMode)
|
||||
{
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
@@ -249,6 +250,10 @@ DefaultQueryInfoBufferCheck(ULONG Class,
|
||||
{
|
||||
ProbeForWriteUlong(ReturnLength);
|
||||
}
|
||||
if (ReturnLengthLong != NULL)
|
||||
{
|
||||
ProbeForWrite(ReturnLengthLong, sizeof(ULONG_PTR), sizeof(ULONG_PTR));
|
||||
}
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
|
||||
@@ -404,6 +404,7 @@ NtQueryIoCompletion(IN HANDLE IoCompletionHandle,
|
||||
IoCompletionInformation,
|
||||
IoCompletionInformationLength,
|
||||
ResultLength,
|
||||
NULL,
|
||||
PreviousMode);
|
||||
if (!NT_SUCCESS(Status)) return Status;
|
||||
|
||||
@@ -506,11 +507,11 @@ NtRemoveIoCompletion(IN HANDLE IoCompletionHandle,
|
||||
ListEntry = KeRemoveQueue(Queue, PreviousMode, Timeout);
|
||||
|
||||
/* If we got a timeout or user_apc back, return the status */
|
||||
if (((NTSTATUS)ListEntry == STATUS_TIMEOUT) ||
|
||||
((NTSTATUS)ListEntry == STATUS_USER_APC))
|
||||
if (((NTSTATUS)(ULONG_PTR)ListEntry == STATUS_TIMEOUT) ||
|
||||
((NTSTATUS)(ULONG_PTR)ListEntry == STATUS_USER_APC))
|
||||
{
|
||||
/* Set this as the status */
|
||||
Status = (NTSTATUS)ListEntry;
|
||||
Status = (NTSTATUS)(ULONG_PTR)ListEntry;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1191,7 +1191,7 @@ IofCompleteRequest(IN PIRP Irp,
|
||||
if (LastStackPtr->Control & SL_ERROR_RETURNED)
|
||||
{
|
||||
/* Get the error code */
|
||||
ErrorCode = (NTSTATUS)LastStackPtr->Parameters.Others.Argument4;
|
||||
ErrorCode = PtrToUlong(LastStackPtr->Parameters.Others.Argument4);
|
||||
}
|
||||
|
||||
/* Get the Current Stack and skip it */
|
||||
@@ -1213,7 +1213,7 @@ IofCompleteRequest(IN PIRP Irp,
|
||||
/* Update the error for the current stack */
|
||||
ErrorCode = Irp->IoStatus.Status;
|
||||
StackPtr->Control |= SL_ERROR_RETURNED;
|
||||
LastStackPtr->Parameters.Others.Argument4 = (PVOID)ErrorCode;
|
||||
LastStackPtr->Parameters.Others.Argument4 = UlongToPtr(ErrorCode);
|
||||
LastStackPtr->Control |= SL_ERROR_RETURNED;
|
||||
}
|
||||
}
|
||||
@@ -1587,7 +1587,7 @@ NTAPI
|
||||
IoGetRequestorProcessId(IN PIRP Irp)
|
||||
{
|
||||
/* Return the requestor process' id */
|
||||
return (ULONG)(IoGetRequestorProcess(Irp)->UniqueProcessId);
|
||||
return PtrToUlong(IoGetRequestorProcess(Irp)->UniqueProcessId);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1759,5 +1759,5 @@ NTAPI
|
||||
IoSetTopLevelIrp(IN PIRP Irp)
|
||||
{
|
||||
/* Set the IRP */
|
||||
PsGetCurrentThread()->TopLevelIrp = (ULONG)Irp;
|
||||
PsGetCurrentThread()->TopLevelIrp = (ULONG_PTR)Irp;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ KdpServiceDispatcher(ULONG Service,
|
||||
#ifdef DBG
|
||||
case TAG('R', 'o', 's', ' '): /* ROS-INTERNAL */
|
||||
{
|
||||
switch ((ULONG)Buffer1)
|
||||
switch ((ULONG_PTR)Buffer1)
|
||||
{
|
||||
case DumpNonPagedPool:
|
||||
MiDebugDumpNonPagedPool(FALSE);
|
||||
|
||||
@@ -45,7 +45,7 @@ KdpBochsInit(PKD_DISPATCH_TABLE DispatchTable,
|
||||
if (BootPhase == 0)
|
||||
{
|
||||
Value = READ_PORT_UCHAR(BOCHS_LOGGER_PORT);
|
||||
if (Value != (ULONG)BOCHS_LOGGER_PORT)
|
||||
if (Value != (ULONG_PTR)BOCHS_LOGGER_PORT)
|
||||
{
|
||||
KdpDebugMode.Bochs = FALSE;
|
||||
return;
|
||||
|
||||
@@ -657,10 +657,10 @@ KdbSymProcessSymbols(IN PANSI_STRING AnsiFileName, IN PKD_SYMBOLS_INFO SymbolInf
|
||||
KdbpSymAddCachedFile(&LdrEntry->FullDllName, LdrEntry->PatchInformation);
|
||||
}
|
||||
|
||||
DPRINT("Installed symbols: %wZ@%08x-%08x %p\n",
|
||||
DPRINT("Installed symbols: %wZ@%p-%p %p\n",
|
||||
&LdrEntry->BaseDllName,
|
||||
LdrEntry->DllBase,
|
||||
LdrEntry->SizeOfImage + (ULONG)LdrEntry->DllBase,
|
||||
(PVOID)(LdrEntry->SizeOfImage + (ULONG_PTR)LdrEntry->DllBase),
|
||||
LdrEntry->PatchInformation);
|
||||
|
||||
}
|
||||
|
||||
@@ -4242,6 +4242,7 @@ NtQuerySection(IN HANDLE SectionHandle,
|
||||
sizeof(ExSectionInfoClass) / sizeof(ExSectionInfoClass[0]),
|
||||
SectionInformation,
|
||||
SectionInformationLength,
|
||||
NULL,
|
||||
ResultLength,
|
||||
PreviousMode);
|
||||
|
||||
|
||||
@@ -871,6 +871,7 @@ NtQueryInformationToken(IN HANDLE TokenHandle,
|
||||
TokenInformation,
|
||||
TokenInformationLength,
|
||||
ReturnLength,
|
||||
NULL,
|
||||
PreviousMode);
|
||||
|
||||
if(!NT_SUCCESS(Status))
|
||||
|
||||
Reference in New Issue
Block a user