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

HTTP_QUIC_STREAM_API_TIMINGS

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

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

フィールド

フィールドサイズx64x86説明
OpenCountULONGLONG8+0+0QUICストリームのOpen操作の呼び出し回数。
OpenSumULONGLONG8+8+8QUICストリームのOpen操作に要した累計時間。
CloseCountULONGLONG8+16+16QUICストリームのClose操作の呼び出し回数。
CloseSumULONGLONG8+24+24QUICストリームのClose操作に要した累計時間。
StartCountULONGLONG8+32+32QUICストリームのStart操作の呼び出し回数。
StartSumULONGLONG8+40+40QUICストリームのStart操作に要した累計時間。
ShutdownCountULONGLONG8+48+48QUICストリームのShutdown操作の呼び出し回数。
ShutdownSumULONGLONG8+56+56QUICストリームのShutdown操作に要した累計時間。
SendCountULONGLONG8+64+64QUICストリームのSend操作の呼び出し回数。
SendSumULONGLONG8+72+72QUICストリームのSend操作に要した累計時間。
ReceiveSetEnabledCountULONGLONG8+80+80受信有効化設定操作の呼び出し回数。
ReceiveSetEnabledSumULONGLONG8+88+88受信有効化設定操作に要した累計時間。
GetParamCountULONGLONG8+96+96パラメータ取得操作の呼び出し回数。
GetParamSumULONGLONG8+104+104パラメータ取得操作に要した累計時間。
SetParamCountULONGLONG8+112+112パラメータ設定操作の呼び出し回数。
SetParamSumULONGLONG8+120+120パラメータ設定操作に要した累計時間。
SetCallbackHandlerCountULONGLONG8+128+128コールバックハンドラ設定操作の呼び出し回数。
SetCallbackHandlerSumULONGLONG8+136+136コールバックハンドラ設定操作に要した累計時間。

各言語での定義

#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;
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;
}
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
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),
    ]
#[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,
}
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_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;
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,
};
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
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;
}

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_STREAM_API_TIMINGS サイズ: 144 バイト(x64)
dim st, 36    ; 4byte整数×36(構造体サイズ 144 / 4 切り上げ)
; OpenCount : ULONGLONG (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; OpenSum : ULONGLONG (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; CloseCount : ULONGLONG (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; CloseSum : ULONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; StartCount : ULONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; StartSum : ULONGLONG (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ShutdownCount : ULONGLONG (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; ShutdownSum : ULONGLONG (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; SendCount : ULONGLONG (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; SendSum : ULONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; ReceiveSetEnabledCount : ULONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; ReceiveSetEnabledSum : ULONGLONG (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; GetParamCount : ULONGLONG (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; GetParamSum : ULONGLONG (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; SetParamCount : ULONGLONG (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; SetParamSum : ULONGLONG (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; SetCallbackHandlerCount : ULONGLONG (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; SetCallbackHandlerSum : ULONGLONG (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#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

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