PUNICODE_STRING ImageName;
ULONG Cookie, ExecuteOptions = 0;
ULONG_PTR Wow64 = 0;
+ PROCESS_VALUES ProcessValues;
PAGED_CODE();
/* Check for user-mode caller */
NULL);
if (!NT_SUCCESS(Status)) break;
+ /* Query IO counters from the process */
+ KeQueryValuesProcess(&Process->Pcb, &ProcessValues);
+
_SEH2_TRY
{
- /* FIXME: Call KeQueryValuesProcess */
- IoCounters->ReadOperationCount = Process->ReadOperationCount.QuadPart;
- IoCounters->ReadTransferCount = Process->ReadTransferCount.QuadPart;
- IoCounters->WriteOperationCount = Process->WriteOperationCount.QuadPart;
- IoCounters->WriteTransferCount = Process->WriteTransferCount.QuadPart;
- IoCounters->OtherOperationCount = Process->OtherOperationCount.QuadPart;
- IoCounters->OtherTransferCount = Process->OtherTransferCount.QuadPart;
+ RtlCopyMemory(IoCounters, &ProcessValues.IoInfo, sizeof(IO_COUNTERS));
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
}
break;
+ case ThreadHideFromDebugger:
+
+ /* Check buffer length */
+ if (ThreadInformationLength != 0)
+ {
+ Status = STATUS_INFO_LENGTH_MISMATCH;
+ break;
+ }
+
+ /* Set the flag */
+ PspSetCrossThreadFlag(Thread, CT_HIDE_FROM_DEBUGGER_BIT);
+ break;
+
default:
/* We don't implement it yet */
DPRINT1("Not implemented: %d\n", ThreadInformationClass);