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

HTTP_WSK_API_TIMINGS

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

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

フィールド

フィールドサイズx64x86説明
ConnectCountULONGLONG8+0+0WSK接続操作の呼び出し回数。
ConnectSumULONGLONG8+8+8WSK接続操作に要した累計時間。
DisconnectCountULONGLONG8+16+16WSK切断操作の呼び出し回数。
DisconnectSumULONGLONG8+24+24WSK切断操作に要した累計時間。
SendCountULONGLONG8+32+32WSK送信操作の呼び出し回数。
SendSumULONGLONG8+40+40WSK送信操作に要した累計時間。
ReceiveCountULONGLONG8+48+48WSK受信操作の呼び出し回数。
ReceiveSumULONGLONG8+56+56WSK受信操作に要した累計時間。
ReleaseCountULONGLONG8+64+64WSKバッファ解放操作の呼び出し回数。
ReleaseSumULONGLONG8+72+72WSKバッファ解放操作に要した累計時間。
ControlSocketCountULONGLONG8+80+80WSKソケット制御操作の呼び出し回数。
ControlSocketSumULONGLONG8+88+88WSKソケット制御操作に要した累計時間。

各言語での定義

#include <windows.h>

// HTTP_WSK_API_TIMINGS  (x64 96 / x86 96 バイト)
typedef struct HTTP_WSK_API_TIMINGS {
    ULONGLONG ConnectCount;
    ULONGLONG ConnectSum;
    ULONGLONG DisconnectCount;
    ULONGLONG DisconnectSum;
    ULONGLONG SendCount;
    ULONGLONG SendSum;
    ULONGLONG ReceiveCount;
    ULONGLONG ReceiveSum;
    ULONGLONG ReleaseCount;
    ULONGLONG ReleaseSum;
    ULONGLONG ControlSocketCount;
    ULONGLONG ControlSocketSum;
} HTTP_WSK_API_TIMINGS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct HTTP_WSK_API_TIMINGS
{
    public ulong ConnectCount;
    public ulong ConnectSum;
    public ulong DisconnectCount;
    public ulong DisconnectSum;
    public ulong SendCount;
    public ulong SendSum;
    public ulong ReceiveCount;
    public ulong ReceiveSum;
    public ulong ReleaseCount;
    public ulong ReleaseSum;
    public ulong ControlSocketCount;
    public ulong ControlSocketSum;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure HTTP_WSK_API_TIMINGS
    Public ConnectCount As ULong
    Public ConnectSum As ULong
    Public DisconnectCount As ULong
    Public DisconnectSum As ULong
    Public SendCount As ULong
    Public SendSum As ULong
    Public ReceiveCount As ULong
    Public ReceiveSum As ULong
    Public ReleaseCount As ULong
    Public ReleaseSum As ULong
    Public ControlSocketCount As ULong
    Public ControlSocketSum As ULong
End Structure
import ctypes
from ctypes import wintypes

class HTTP_WSK_API_TIMINGS(ctypes.Structure):
    _fields_ = [
        ("ConnectCount", ctypes.c_ulonglong),
        ("ConnectSum", ctypes.c_ulonglong),
        ("DisconnectCount", ctypes.c_ulonglong),
        ("DisconnectSum", ctypes.c_ulonglong),
        ("SendCount", ctypes.c_ulonglong),
        ("SendSum", ctypes.c_ulonglong),
        ("ReceiveCount", ctypes.c_ulonglong),
        ("ReceiveSum", ctypes.c_ulonglong),
        ("ReleaseCount", ctypes.c_ulonglong),
        ("ReleaseSum", ctypes.c_ulonglong),
        ("ControlSocketCount", ctypes.c_ulonglong),
        ("ControlSocketSum", ctypes.c_ulonglong),
    ]
#[repr(C)]
pub struct HTTP_WSK_API_TIMINGS {
    pub ConnectCount: u64,
    pub ConnectSum: u64,
    pub DisconnectCount: u64,
    pub DisconnectSum: u64,
    pub SendCount: u64,
    pub SendSum: u64,
    pub ReceiveCount: u64,
    pub ReceiveSum: u64,
    pub ReleaseCount: u64,
    pub ReleaseSum: u64,
    pub ControlSocketCount: u64,
    pub ControlSocketSum: u64,
}
import "golang.org/x/sys/windows"

type HTTP_WSK_API_TIMINGS struct {
	ConnectCount uint64
	ConnectSum uint64
	DisconnectCount uint64
	DisconnectSum uint64
	SendCount uint64
	SendSum uint64
	ReceiveCount uint64
	ReceiveSum uint64
	ReleaseCount uint64
	ReleaseSum uint64
	ControlSocketCount uint64
	ControlSocketSum uint64
}
type
  HTTP_WSK_API_TIMINGS = record
    ConnectCount: UInt64;
    ConnectSum: UInt64;
    DisconnectCount: UInt64;
    DisconnectSum: UInt64;
    SendCount: UInt64;
    SendSum: UInt64;
    ReceiveCount: UInt64;
    ReceiveSum: UInt64;
    ReleaseCount: UInt64;
    ReleaseSum: UInt64;
    ControlSocketCount: UInt64;
    ControlSocketSum: UInt64;
  end;
const HTTP_WSK_API_TIMINGS = extern struct {
    ConnectCount: u64,
    ConnectSum: u64,
    DisconnectCount: u64,
    DisconnectSum: u64,
    SendCount: u64,
    SendSum: u64,
    ReceiveCount: u64,
    ReceiveSum: u64,
    ReleaseCount: u64,
    ReleaseSum: u64,
    ControlSocketCount: u64,
    ControlSocketSum: u64,
};
type
  HTTP_WSK_API_TIMINGS {.bycopy.} = object
    ConnectCount: uint64
    ConnectSum: uint64
    DisconnectCount: uint64
    DisconnectSum: uint64
    SendCount: uint64
    SendSum: uint64
    ReceiveCount: uint64
    ReceiveSum: uint64
    ReleaseCount: uint64
    ReleaseSum: uint64
    ControlSocketCount: uint64
    ControlSocketSum: uint64
struct HTTP_WSK_API_TIMINGS
{
    ulong ConnectCount;
    ulong ConnectSum;
    ulong DisconnectCount;
    ulong DisconnectSum;
    ulong SendCount;
    ulong SendSum;
    ulong ReceiveCount;
    ulong ReceiveSum;
    ulong ReleaseCount;
    ulong ReleaseSum;
    ulong ControlSocketCount;
    ulong ControlSocketSum;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; HTTP_WSK_API_TIMINGS サイズ: 96 バイト(x64)
dim st, 24    ; 4byte整数×24(構造体サイズ 96 / 4 切り上げ)
; ConnectCount : ULONGLONG (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; ConnectSum : ULONGLONG (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; DisconnectCount : ULONGLONG (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; DisconnectSum : ULONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; SendCount : ULONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; SendSum : ULONGLONG (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ReceiveCount : ULONGLONG (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; ReceiveSum : ULONGLONG (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; ReleaseCount : ULONGLONG (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; ReleaseSum : ULONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; ControlSocketCount : ULONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; ControlSocketSum : ULONGLONG (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global HTTP_WSK_API_TIMINGS
    #field int64 ConnectCount
    #field int64 ConnectSum
    #field int64 DisconnectCount
    #field int64 DisconnectSum
    #field int64 SendCount
    #field int64 SendSum
    #field int64 ReceiveCount
    #field int64 ReceiveSum
    #field int64 ReleaseCount
    #field int64 ReleaseSum
    #field int64 ControlSocketCount
    #field int64 ControlSocketSum
#endstruct

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