ホーム › System.ComponentServices › ComponentStatistics
ComponentStatistics
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| NumInstances | DWORD | 4 | +0 | +0 | 現在のインスタンス数。 |
| NumBoundReferences | DWORD | 4 | +4 | +4 | バインド済み参照の数。 |
| NumPooledObjects | DWORD | 4 | +8 | +8 | プール内のオブジェクト数。 |
| NumObjectsInCall | DWORD | 4 | +12 | +12 | 呼び出し処理中のオブジェクト数。 |
| AvgResponseTimeInMs | DWORD | 4 | +16 | +16 | 平均応答時間(ミリ秒)。 |
| NumCallsCompletedRecent | DWORD | 4 | +20 | +20 | 直近で完了した呼び出し回数。 |
| NumCallsFailedRecent | DWORD | 4 | +24 | +24 | 直近で失敗した呼び出し回数。 |
| NumCallsCompletedTotal | DWORD | 4 | +28 | +28 | 完了した呼び出しの累計回数。 |
| NumCallsFailedTotal | DWORD | 4 | +32 | +32 | 失敗した呼び出しの累計回数。 |
| Reserved1 | DWORD | 4 | +36 | +36 | 予約フィールド1。将来の使用のため確保される。 |
| Reserved2 | DWORD | 4 | +40 | +40 | 予約フィールド2。将来の使用のため確保される。 |
| Reserved3 | DWORD | 4 | +44 | +44 | 予約フィールド3。将来の使用のため確保される。 |
| Reserved4 | DWORD | 4 | +48 | +48 | 予約フィールド4。将来の使用のため確保される。 |
各言語での定義
#include <windows.h>
// ComponentStatistics (x64 52 / x86 52 バイト)
typedef struct ComponentStatistics {
DWORD NumInstances;
DWORD NumBoundReferences;
DWORD NumPooledObjects;
DWORD NumObjectsInCall;
DWORD AvgResponseTimeInMs;
DWORD NumCallsCompletedRecent;
DWORD NumCallsFailedRecent;
DWORD NumCallsCompletedTotal;
DWORD NumCallsFailedTotal;
DWORD Reserved1;
DWORD Reserved2;
DWORD Reserved3;
DWORD Reserved4;
} ComponentStatistics;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct ComponentStatistics
{
public uint NumInstances;
public uint NumBoundReferences;
public uint NumPooledObjects;
public uint NumObjectsInCall;
public uint AvgResponseTimeInMs;
public uint NumCallsCompletedRecent;
public uint NumCallsFailedRecent;
public uint NumCallsCompletedTotal;
public uint NumCallsFailedTotal;
public uint Reserved1;
public uint Reserved2;
public uint Reserved3;
public uint Reserved4;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure ComponentStatistics
Public NumInstances As UInteger
Public NumBoundReferences As UInteger
Public NumPooledObjects As UInteger
Public NumObjectsInCall As UInteger
Public AvgResponseTimeInMs As UInteger
Public NumCallsCompletedRecent As UInteger
Public NumCallsFailedRecent As UInteger
Public NumCallsCompletedTotal As UInteger
Public NumCallsFailedTotal As UInteger
Public Reserved1 As UInteger
Public Reserved2 As UInteger
Public Reserved3 As UInteger
Public Reserved4 As UInteger
End Structureimport ctypes
from ctypes import wintypes
class ComponentStatistics(ctypes.Structure):
_fields_ = [
("NumInstances", wintypes.DWORD),
("NumBoundReferences", wintypes.DWORD),
("NumPooledObjects", wintypes.DWORD),
("NumObjectsInCall", wintypes.DWORD),
("AvgResponseTimeInMs", wintypes.DWORD),
("NumCallsCompletedRecent", wintypes.DWORD),
("NumCallsFailedRecent", wintypes.DWORD),
("NumCallsCompletedTotal", wintypes.DWORD),
("NumCallsFailedTotal", wintypes.DWORD),
("Reserved1", wintypes.DWORD),
("Reserved2", wintypes.DWORD),
("Reserved3", wintypes.DWORD),
("Reserved4", wintypes.DWORD),
]#[repr(C)]
pub struct ComponentStatistics {
pub NumInstances: u32,
pub NumBoundReferences: u32,
pub NumPooledObjects: u32,
pub NumObjectsInCall: u32,
pub AvgResponseTimeInMs: u32,
pub NumCallsCompletedRecent: u32,
pub NumCallsFailedRecent: u32,
pub NumCallsCompletedTotal: u32,
pub NumCallsFailedTotal: u32,
pub Reserved1: u32,
pub Reserved2: u32,
pub Reserved3: u32,
pub Reserved4: u32,
}import "golang.org/x/sys/windows"
type ComponentStatistics struct {
NumInstances uint32
NumBoundReferences uint32
NumPooledObjects uint32
NumObjectsInCall uint32
AvgResponseTimeInMs uint32
NumCallsCompletedRecent uint32
NumCallsFailedRecent uint32
NumCallsCompletedTotal uint32
NumCallsFailedTotal uint32
Reserved1 uint32
Reserved2 uint32
Reserved3 uint32
Reserved4 uint32
}type
ComponentStatistics = record
NumInstances: DWORD;
NumBoundReferences: DWORD;
NumPooledObjects: DWORD;
NumObjectsInCall: DWORD;
AvgResponseTimeInMs: DWORD;
NumCallsCompletedRecent: DWORD;
NumCallsFailedRecent: DWORD;
NumCallsCompletedTotal: DWORD;
NumCallsFailedTotal: DWORD;
Reserved1: DWORD;
Reserved2: DWORD;
Reserved3: DWORD;
Reserved4: DWORD;
end;const ComponentStatistics = extern struct {
NumInstances: u32,
NumBoundReferences: u32,
NumPooledObjects: u32,
NumObjectsInCall: u32,
AvgResponseTimeInMs: u32,
NumCallsCompletedRecent: u32,
NumCallsFailedRecent: u32,
NumCallsCompletedTotal: u32,
NumCallsFailedTotal: u32,
Reserved1: u32,
Reserved2: u32,
Reserved3: u32,
Reserved4: u32,
};type
ComponentStatistics {.bycopy.} = object
NumInstances: uint32
NumBoundReferences: uint32
NumPooledObjects: uint32
NumObjectsInCall: uint32
AvgResponseTimeInMs: uint32
NumCallsCompletedRecent: uint32
NumCallsFailedRecent: uint32
NumCallsCompletedTotal: uint32
NumCallsFailedTotal: uint32
Reserved1: uint32
Reserved2: uint32
Reserved3: uint32
Reserved4: uint32struct ComponentStatistics
{
uint NumInstances;
uint NumBoundReferences;
uint NumPooledObjects;
uint NumObjectsInCall;
uint AvgResponseTimeInMs;
uint NumCallsCompletedRecent;
uint NumCallsFailedRecent;
uint NumCallsCompletedTotal;
uint NumCallsFailedTotal;
uint Reserved1;
uint Reserved2;
uint Reserved3;
uint Reserved4;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; ComponentStatistics サイズ: 52 バイト(x64)
dim st, 13 ; 4byte整数×13(構造体サイズ 52 / 4 切り上げ)
; NumInstances : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; NumBoundReferences : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; NumPooledObjects : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; NumObjectsInCall : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; AvgResponseTimeInMs : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; NumCallsCompletedRecent : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; NumCallsFailedRecent : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; NumCallsCompletedTotal : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; NumCallsFailedTotal : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; Reserved1 : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; Reserved2 : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; Reserved3 : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; Reserved4 : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global ComponentStatistics
#field int NumInstances
#field int NumBoundReferences
#field int NumPooledObjects
#field int NumObjectsInCall
#field int AvgResponseTimeInMs
#field int NumCallsCompletedRecent
#field int NumCallsFailedRecent
#field int NumCallsCompletedTotal
#field int NumCallsFailedTotal
#field int Reserved1
#field int Reserved2
#field int Reserved3
#field int Reserved4
#endstruct
stdim st, ComponentStatistics ; NSTRUCT 変数を確保
st->NumInstances = 100
mes "NumInstances=" + st->NumInstances