Win32 API 日本語リファレンス
ホームNetworking.HttpServer › HTTP_QUIC_CONNECTION_API_TIMINGS

HTTP_QUIC_CONNECTION_API_TIMINGS

構造体
サイズx64: 240 バイト / x86: 240 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
OpenTimeULONGLONG8+0+0QUIC接続のOpen操作に要した時間。
CloseTimeULONGLONG8+8+8QUIC接続のClose操作に要した時間。
StartTimeULONGLONG8+16+16QUIC接続のStart操作に要した時間。
ShutdownTimeULONGLONG8+24+24QUIC接続のShutdown操作に要した時間。
SecConfigCreateTimeULONGLONG8+32+32セキュリティ構成の生成に要した時間。
SecConfigDeleteTimeULONGLONG8+40+40セキュリティ構成の削除に要した時間。
GetParamCountULONGLONG8+48+48接続パラメータ取得操作の呼び出し回数。
GetParamSumULONGLONG8+56+56接続パラメータ取得操作に要した累計時間。
SetParamCountULONGLONG8+64+64接続パラメータ設定操作の呼び出し回数。
SetParamSumULONGLONG8+72+72接続パラメータ設定操作に要した累計時間。
SetCallbackHandlerCountULONGLONG8+80+80接続のコールバックハンドラ設定操作の呼び出し回数。
SetCallbackHandlerSumULONGLONG8+88+88接続のコールバックハンドラ設定操作に要した累計時間。
ControlStreamTimingsHTTP_QUIC_STREAM_API_TIMINGS144+96+96制御ストリームに関するAPI計時情報。

各言語での定義

#include <windows.h>

// HTTP_QUIC_STREAM_API_TIMINGS  (x64 144 / x86 144 バイト)
typedef struct HTTP_QUIC_STREAM_API_TIMINGS {
    ULONGLONG OpenCount;
    ULONGLONG OpenSum;
    ULONGLONG CloseCount;
    ULONGLONG CloseSum;
    ULONGLONG StartCount;
    ULONGLONG StartSum;
    ULONGLONG ShutdownCount;
    ULONGLONG ShutdownSum;
    ULONGLONG SendCount;
    ULONGLONG SendSum;
    ULONGLONG ReceiveSetEnabledCount;
    ULONGLONG ReceiveSetEnabledSum;
    ULONGLONG GetParamCount;
    ULONGLONG GetParamSum;
    ULONGLONG SetParamCount;
    ULONGLONG SetParamSum;
    ULONGLONG SetCallbackHandlerCount;
    ULONGLONG SetCallbackHandlerSum;
} HTTP_QUIC_STREAM_API_TIMINGS;

// HTTP_QUIC_CONNECTION_API_TIMINGS  (x64 240 / x86 240 バイト)
typedef struct HTTP_QUIC_CONNECTION_API_TIMINGS {
    ULONGLONG OpenTime;
    ULONGLONG CloseTime;
    ULONGLONG StartTime;
    ULONGLONG ShutdownTime;
    ULONGLONG SecConfigCreateTime;
    ULONGLONG SecConfigDeleteTime;
    ULONGLONG GetParamCount;
    ULONGLONG GetParamSum;
    ULONGLONG SetParamCount;
    ULONGLONG SetParamSum;
    ULONGLONG SetCallbackHandlerCount;
    ULONGLONG SetCallbackHandlerSum;
    HTTP_QUIC_STREAM_API_TIMINGS ControlStreamTimings;
} HTTP_QUIC_CONNECTION_API_TIMINGS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct HTTP_QUIC_STREAM_API_TIMINGS
{
    public ulong OpenCount;
    public ulong OpenSum;
    public ulong CloseCount;
    public ulong CloseSum;
    public ulong StartCount;
    public ulong StartSum;
    public ulong ShutdownCount;
    public ulong ShutdownSum;
    public ulong SendCount;
    public ulong SendSum;
    public ulong ReceiveSetEnabledCount;
    public ulong ReceiveSetEnabledSum;
    public ulong GetParamCount;
    public ulong GetParamSum;
    public ulong SetParamCount;
    public ulong SetParamSum;
    public ulong SetCallbackHandlerCount;
    public ulong SetCallbackHandlerSum;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct HTTP_QUIC_CONNECTION_API_TIMINGS
{
    public ulong OpenTime;
    public ulong CloseTime;
    public ulong StartTime;
    public ulong ShutdownTime;
    public ulong SecConfigCreateTime;
    public ulong SecConfigDeleteTime;
    public ulong GetParamCount;
    public ulong GetParamSum;
    public ulong SetParamCount;
    public ulong SetParamSum;
    public ulong SetCallbackHandlerCount;
    public ulong SetCallbackHandlerSum;
    public HTTP_QUIC_STREAM_API_TIMINGS ControlStreamTimings;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure HTTP_QUIC_STREAM_API_TIMINGS
    Public OpenCount As ULong
    Public OpenSum As ULong
    Public CloseCount As ULong
    Public CloseSum As ULong
    Public StartCount As ULong
    Public StartSum As ULong
    Public ShutdownCount As ULong
    Public ShutdownSum As ULong
    Public SendCount As ULong
    Public SendSum As ULong
    Public ReceiveSetEnabledCount As ULong
    Public ReceiveSetEnabledSum As ULong
    Public GetParamCount As ULong
    Public GetParamSum As ULong
    Public SetParamCount As ULong
    Public SetParamSum As ULong
    Public SetCallbackHandlerCount As ULong
    Public SetCallbackHandlerSum As ULong
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure HTTP_QUIC_CONNECTION_API_TIMINGS
    Public OpenTime As ULong
    Public CloseTime As ULong
    Public StartTime As ULong
    Public ShutdownTime As ULong
    Public SecConfigCreateTime As ULong
    Public SecConfigDeleteTime As ULong
    Public GetParamCount As ULong
    Public GetParamSum As ULong
    Public SetParamCount As ULong
    Public SetParamSum As ULong
    Public SetCallbackHandlerCount As ULong
    Public SetCallbackHandlerSum As ULong
    Public ControlStreamTimings As HTTP_QUIC_STREAM_API_TIMINGS
End Structure
import ctypes
from ctypes import wintypes

class HTTP_QUIC_STREAM_API_TIMINGS(ctypes.Structure):
    _fields_ = [
        ("OpenCount", ctypes.c_ulonglong),
        ("OpenSum", ctypes.c_ulonglong),
        ("CloseCount", ctypes.c_ulonglong),
        ("CloseSum", ctypes.c_ulonglong),
        ("StartCount", ctypes.c_ulonglong),
        ("StartSum", ctypes.c_ulonglong),
        ("ShutdownCount", ctypes.c_ulonglong),
        ("ShutdownSum", ctypes.c_ulonglong),
        ("SendCount", ctypes.c_ulonglong),
        ("SendSum", ctypes.c_ulonglong),
        ("ReceiveSetEnabledCount", ctypes.c_ulonglong),
        ("ReceiveSetEnabledSum", ctypes.c_ulonglong),
        ("GetParamCount", ctypes.c_ulonglong),
        ("GetParamSum", ctypes.c_ulonglong),
        ("SetParamCount", ctypes.c_ulonglong),
        ("SetParamSum", ctypes.c_ulonglong),
        ("SetCallbackHandlerCount", ctypes.c_ulonglong),
        ("SetCallbackHandlerSum", ctypes.c_ulonglong),
    ]

class HTTP_QUIC_CONNECTION_API_TIMINGS(ctypes.Structure):
    _fields_ = [
        ("OpenTime", ctypes.c_ulonglong),
        ("CloseTime", ctypes.c_ulonglong),
        ("StartTime", ctypes.c_ulonglong),
        ("ShutdownTime", ctypes.c_ulonglong),
        ("SecConfigCreateTime", ctypes.c_ulonglong),
        ("SecConfigDeleteTime", ctypes.c_ulonglong),
        ("GetParamCount", ctypes.c_ulonglong),
        ("GetParamSum", ctypes.c_ulonglong),
        ("SetParamCount", ctypes.c_ulonglong),
        ("SetParamSum", ctypes.c_ulonglong),
        ("SetCallbackHandlerCount", ctypes.c_ulonglong),
        ("SetCallbackHandlerSum", ctypes.c_ulonglong),
        ("ControlStreamTimings", HTTP_QUIC_STREAM_API_TIMINGS),
    ]
#[repr(C)]
pub struct HTTP_QUIC_STREAM_API_TIMINGS {
    pub OpenCount: u64,
    pub OpenSum: u64,
    pub CloseCount: u64,
    pub CloseSum: u64,
    pub StartCount: u64,
    pub StartSum: u64,
    pub ShutdownCount: u64,
    pub ShutdownSum: u64,
    pub SendCount: u64,
    pub SendSum: u64,
    pub ReceiveSetEnabledCount: u64,
    pub ReceiveSetEnabledSum: u64,
    pub GetParamCount: u64,
    pub GetParamSum: u64,
    pub SetParamCount: u64,
    pub SetParamSum: u64,
    pub SetCallbackHandlerCount: u64,
    pub SetCallbackHandlerSum: u64,
}

#[repr(C)]
pub struct HTTP_QUIC_CONNECTION_API_TIMINGS {
    pub OpenTime: u64,
    pub CloseTime: u64,
    pub StartTime: u64,
    pub ShutdownTime: u64,
    pub SecConfigCreateTime: u64,
    pub SecConfigDeleteTime: u64,
    pub GetParamCount: u64,
    pub GetParamSum: u64,
    pub SetParamCount: u64,
    pub SetParamSum: u64,
    pub SetCallbackHandlerCount: u64,
    pub SetCallbackHandlerSum: u64,
    pub ControlStreamTimings: HTTP_QUIC_STREAM_API_TIMINGS,
}
import "golang.org/x/sys/windows"

type HTTP_QUIC_STREAM_API_TIMINGS struct {
	OpenCount uint64
	OpenSum uint64
	CloseCount uint64
	CloseSum uint64
	StartCount uint64
	StartSum uint64
	ShutdownCount uint64
	ShutdownSum uint64
	SendCount uint64
	SendSum uint64
	ReceiveSetEnabledCount uint64
	ReceiveSetEnabledSum uint64
	GetParamCount uint64
	GetParamSum uint64
	SetParamCount uint64
	SetParamSum uint64
	SetCallbackHandlerCount uint64
	SetCallbackHandlerSum uint64
}

type HTTP_QUIC_CONNECTION_API_TIMINGS struct {
	OpenTime uint64
	CloseTime uint64
	StartTime uint64
	ShutdownTime uint64
	SecConfigCreateTime uint64
	SecConfigDeleteTime uint64
	GetParamCount uint64
	GetParamSum uint64
	SetParamCount uint64
	SetParamSum uint64
	SetCallbackHandlerCount uint64
	SetCallbackHandlerSum uint64
	ControlStreamTimings HTTP_QUIC_STREAM_API_TIMINGS
}
type
  HTTP_QUIC_STREAM_API_TIMINGS = record
    OpenCount: UInt64;
    OpenSum: UInt64;
    CloseCount: UInt64;
    CloseSum: UInt64;
    StartCount: UInt64;
    StartSum: UInt64;
    ShutdownCount: UInt64;
    ShutdownSum: UInt64;
    SendCount: UInt64;
    SendSum: UInt64;
    ReceiveSetEnabledCount: UInt64;
    ReceiveSetEnabledSum: UInt64;
    GetParamCount: UInt64;
    GetParamSum: UInt64;
    SetParamCount: UInt64;
    SetParamSum: UInt64;
    SetCallbackHandlerCount: UInt64;
    SetCallbackHandlerSum: UInt64;
  end;

  HTTP_QUIC_CONNECTION_API_TIMINGS = record
    OpenTime: UInt64;
    CloseTime: UInt64;
    StartTime: UInt64;
    ShutdownTime: UInt64;
    SecConfigCreateTime: UInt64;
    SecConfigDeleteTime: UInt64;
    GetParamCount: UInt64;
    GetParamSum: UInt64;
    SetParamCount: UInt64;
    SetParamSum: UInt64;
    SetCallbackHandlerCount: UInt64;
    SetCallbackHandlerSum: UInt64;
    ControlStreamTimings: HTTP_QUIC_STREAM_API_TIMINGS;
  end;
const HTTP_QUIC_STREAM_API_TIMINGS = extern struct {
    OpenCount: u64,
    OpenSum: u64,
    CloseCount: u64,
    CloseSum: u64,
    StartCount: u64,
    StartSum: u64,
    ShutdownCount: u64,
    ShutdownSum: u64,
    SendCount: u64,
    SendSum: u64,
    ReceiveSetEnabledCount: u64,
    ReceiveSetEnabledSum: u64,
    GetParamCount: u64,
    GetParamSum: u64,
    SetParamCount: u64,
    SetParamSum: u64,
    SetCallbackHandlerCount: u64,
    SetCallbackHandlerSum: u64,
};

const HTTP_QUIC_CONNECTION_API_TIMINGS = extern struct {
    OpenTime: u64,
    CloseTime: u64,
    StartTime: u64,
    ShutdownTime: u64,
    SecConfigCreateTime: u64,
    SecConfigDeleteTime: u64,
    GetParamCount: u64,
    GetParamSum: u64,
    SetParamCount: u64,
    SetParamSum: u64,
    SetCallbackHandlerCount: u64,
    SetCallbackHandlerSum: u64,
    ControlStreamTimings: HTTP_QUIC_STREAM_API_TIMINGS,
};
type
  HTTP_QUIC_STREAM_API_TIMINGS {.bycopy.} = object
    OpenCount: uint64
    OpenSum: uint64
    CloseCount: uint64
    CloseSum: uint64
    StartCount: uint64
    StartSum: uint64
    ShutdownCount: uint64
    ShutdownSum: uint64
    SendCount: uint64
    SendSum: uint64
    ReceiveSetEnabledCount: uint64
    ReceiveSetEnabledSum: uint64
    GetParamCount: uint64
    GetParamSum: uint64
    SetParamCount: uint64
    SetParamSum: uint64
    SetCallbackHandlerCount: uint64
    SetCallbackHandlerSum: uint64

  HTTP_QUIC_CONNECTION_API_TIMINGS {.bycopy.} = object
    OpenTime: uint64
    CloseTime: uint64
    StartTime: uint64
    ShutdownTime: uint64
    SecConfigCreateTime: uint64
    SecConfigDeleteTime: uint64
    GetParamCount: uint64
    GetParamSum: uint64
    SetParamCount: uint64
    SetParamSum: uint64
    SetCallbackHandlerCount: uint64
    SetCallbackHandlerSum: uint64
    ControlStreamTimings: HTTP_QUIC_STREAM_API_TIMINGS
struct HTTP_QUIC_STREAM_API_TIMINGS
{
    ulong OpenCount;
    ulong OpenSum;
    ulong CloseCount;
    ulong CloseSum;
    ulong StartCount;
    ulong StartSum;
    ulong ShutdownCount;
    ulong ShutdownSum;
    ulong SendCount;
    ulong SendSum;
    ulong ReceiveSetEnabledCount;
    ulong ReceiveSetEnabledSum;
    ulong GetParamCount;
    ulong GetParamSum;
    ulong SetParamCount;
    ulong SetParamSum;
    ulong SetCallbackHandlerCount;
    ulong SetCallbackHandlerSum;
}

struct HTTP_QUIC_CONNECTION_API_TIMINGS
{
    ulong OpenTime;
    ulong CloseTime;
    ulong StartTime;
    ulong ShutdownTime;
    ulong SecConfigCreateTime;
    ulong SecConfigDeleteTime;
    ulong GetParamCount;
    ulong GetParamSum;
    ulong SetParamCount;
    ulong SetParamSum;
    ulong SetCallbackHandlerCount;
    ulong SetCallbackHandlerSum;
    HTTP_QUIC_STREAM_API_TIMINGS ControlStreamTimings;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; HTTP_QUIC_CONNECTION_API_TIMINGS サイズ: 240 バイト(x64)
dim st, 60    ; 4byte整数×60(構造体サイズ 240 / 4 切り上げ)
; OpenTime : ULONGLONG (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; CloseTime : ULONGLONG (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; StartTime : ULONGLONG (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; ShutdownTime : ULONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; SecConfigCreateTime : ULONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; SecConfigDeleteTime : ULONGLONG (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; GetParamCount : ULONGLONG (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; GetParamSum : ULONGLONG (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; SetParamCount : ULONGLONG (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; SetParamSum : ULONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; SetCallbackHandlerCount : ULONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; SetCallbackHandlerSum : ULONGLONG (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; ControlStreamTimings : HTTP_QUIC_STREAM_API_TIMINGS (+96, 144byte)  varptr(st)+96 を基点に操作(144byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global HTTP_QUIC_STREAM_API_TIMINGS
    #field int64 OpenCount
    #field int64 OpenSum
    #field int64 CloseCount
    #field int64 CloseSum
    #field int64 StartCount
    #field int64 StartSum
    #field int64 ShutdownCount
    #field int64 ShutdownSum
    #field int64 SendCount
    #field int64 SendSum
    #field int64 ReceiveSetEnabledCount
    #field int64 ReceiveSetEnabledSum
    #field int64 GetParamCount
    #field int64 GetParamSum
    #field int64 SetParamCount
    #field int64 SetParamSum
    #field int64 SetCallbackHandlerCount
    #field int64 SetCallbackHandlerSum
#endstruct

#defstruct global HTTP_QUIC_CONNECTION_API_TIMINGS
    #field int64 OpenTime
    #field int64 CloseTime
    #field int64 StartTime
    #field int64 ShutdownTime
    #field int64 SecConfigCreateTime
    #field int64 SecConfigDeleteTime
    #field int64 GetParamCount
    #field int64 GetParamSum
    #field int64 SetParamCount
    #field int64 SetParamSum
    #field int64 SetCallbackHandlerCount
    #field int64 SetCallbackHandlerSum
    #field HTTP_QUIC_STREAM_API_TIMINGS ControlStreamTimings
#endstruct

stdim st, HTTP_QUIC_CONNECTION_API_TIMINGS        ; NSTRUCT 変数を確保
st->OpenTime = 100
mes "OpenTime=" + st->OpenTime