Win32 API 日本語リファレンス
ホームNetworkManagement.WiFi › DOT11_PEER_STATISTICS

DOT11_PEER_STATISTICS

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

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

フィールド

フィールドサイズx64x86説明
ullDecryptSuccessCountULONGLONG8+0+0復号に成功したパケットの累積数。
ullDecryptFailureCountULONGLONG8+8+8復号に失敗したパケットの累積数。
ullTxPacketSuccessCountULONGLONG8+16+16送信に成功したパケットの累積数。
ullTxPacketFailureCountULONGLONG8+24+24送信に失敗したパケットの累積数。
ullRxPacketSuccessCountULONGLONG8+32+32受信に成功したパケットの累積数。
ullRxPacketFailureCountULONGLONG8+40+40受信に失敗したパケットの累積数。

各言語での定義

#include <windows.h>

// DOT11_PEER_STATISTICS  (x64 48 / x86 48 バイト)
typedef struct DOT11_PEER_STATISTICS {
    ULONGLONG ullDecryptSuccessCount;
    ULONGLONG ullDecryptFailureCount;
    ULONGLONG ullTxPacketSuccessCount;
    ULONGLONG ullTxPacketFailureCount;
    ULONGLONG ullRxPacketSuccessCount;
    ULONGLONG ullRxPacketFailureCount;
} DOT11_PEER_STATISTICS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DOT11_PEER_STATISTICS
{
    public ulong ullDecryptSuccessCount;
    public ulong ullDecryptFailureCount;
    public ulong ullTxPacketSuccessCount;
    public ulong ullTxPacketFailureCount;
    public ulong ullRxPacketSuccessCount;
    public ulong ullRxPacketFailureCount;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DOT11_PEER_STATISTICS
    Public ullDecryptSuccessCount As ULong
    Public ullDecryptFailureCount As ULong
    Public ullTxPacketSuccessCount As ULong
    Public ullTxPacketFailureCount As ULong
    Public ullRxPacketSuccessCount As ULong
    Public ullRxPacketFailureCount As ULong
End Structure
import ctypes
from ctypes import wintypes

class DOT11_PEER_STATISTICS(ctypes.Structure):
    _fields_ = [
        ("ullDecryptSuccessCount", ctypes.c_ulonglong),
        ("ullDecryptFailureCount", ctypes.c_ulonglong),
        ("ullTxPacketSuccessCount", ctypes.c_ulonglong),
        ("ullTxPacketFailureCount", ctypes.c_ulonglong),
        ("ullRxPacketSuccessCount", ctypes.c_ulonglong),
        ("ullRxPacketFailureCount", ctypes.c_ulonglong),
    ]
#[repr(C)]
pub struct DOT11_PEER_STATISTICS {
    pub ullDecryptSuccessCount: u64,
    pub ullDecryptFailureCount: u64,
    pub ullTxPacketSuccessCount: u64,
    pub ullTxPacketFailureCount: u64,
    pub ullRxPacketSuccessCount: u64,
    pub ullRxPacketFailureCount: u64,
}
import "golang.org/x/sys/windows"

type DOT11_PEER_STATISTICS struct {
	ullDecryptSuccessCount uint64
	ullDecryptFailureCount uint64
	ullTxPacketSuccessCount uint64
	ullTxPacketFailureCount uint64
	ullRxPacketSuccessCount uint64
	ullRxPacketFailureCount uint64
}
type
  DOT11_PEER_STATISTICS = record
    ullDecryptSuccessCount: UInt64;
    ullDecryptFailureCount: UInt64;
    ullTxPacketSuccessCount: UInt64;
    ullTxPacketFailureCount: UInt64;
    ullRxPacketSuccessCount: UInt64;
    ullRxPacketFailureCount: UInt64;
  end;
const DOT11_PEER_STATISTICS = extern struct {
    ullDecryptSuccessCount: u64,
    ullDecryptFailureCount: u64,
    ullTxPacketSuccessCount: u64,
    ullTxPacketFailureCount: u64,
    ullRxPacketSuccessCount: u64,
    ullRxPacketFailureCount: u64,
};
type
  DOT11_PEER_STATISTICS {.bycopy.} = object
    ullDecryptSuccessCount: uint64
    ullDecryptFailureCount: uint64
    ullTxPacketSuccessCount: uint64
    ullTxPacketFailureCount: uint64
    ullRxPacketSuccessCount: uint64
    ullRxPacketFailureCount: uint64
struct DOT11_PEER_STATISTICS
{
    ulong ullDecryptSuccessCount;
    ulong ullDecryptFailureCount;
    ulong ullTxPacketSuccessCount;
    ulong ullTxPacketFailureCount;
    ulong ullRxPacketSuccessCount;
    ulong ullRxPacketFailureCount;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DOT11_PEER_STATISTICS サイズ: 48 バイト(x64)
dim st, 12    ; 4byte整数×12(構造体サイズ 48 / 4 切り上げ)
; ullDecryptSuccessCount : ULONGLONG (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; ullDecryptFailureCount : ULONGLONG (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; ullTxPacketSuccessCount : ULONGLONG (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; ullTxPacketFailureCount : ULONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; ullRxPacketSuccessCount : ULONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; ullRxPacketFailureCount : ULONGLONG (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DOT11_PEER_STATISTICS
    #field int64 ullDecryptSuccessCount
    #field int64 ullDecryptFailureCount
    #field int64 ullTxPacketSuccessCount
    #field int64 ullTxPacketFailureCount
    #field int64 ullRxPacketSuccessCount
    #field int64 ullRxPacketFailureCount
#endstruct

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