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;
|
|
}
|