60 lines
1.1 KiB
C
60 lines
1.1 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1989 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
psquery.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module implements the set and query functions for
|
||
|
process and thread objects.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include "psp.h"
|
||
|
|
||
|
extern OBJECT_HANDLE_TABLE ObpObjectHandleTable;
|
||
|
|
||
|
NTSTATUS
|
||
|
PsQueryStatistics(
|
||
|
IN OUT PPS_STATISTICS ProcessStatistics
|
||
|
)
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
This routine returns various statistics about the state of the process
|
||
|
subsystem.
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
ProcessStatistics - Supplies the buffer to fill with the process manager's
|
||
|
statistics.
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
Status of operation.
|
||
|
|
||
|
--*/
|
||
|
{
|
||
|
NTSTATUS status;
|
||
|
PKPROCESS Process;
|
||
|
|
||
|
if (ProcessStatistics->Length == sizeof(PS_STATISTICS)) {
|
||
|
|
||
|
Process = PsGetCurrentProcess();
|
||
|
|
||
|
ProcessStatistics->ThreadCount = Process->StackCount;
|
||
|
ProcessStatistics->HandleCount = ObpObjectHandleTable.HandleCount;
|
||
|
|
||
|
status = STATUS_SUCCESS;
|
||
|
|
||
|
} else {
|
||
|
status = STATUS_INVALID_PARAMETER;
|
||
|
}
|
||
|
|
||
|
return status;
|
||
|
}
|