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

NDIS_802_11_STATISTICS

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

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

フィールド

フィールドサイズx64x86説明
LengthDWORD4+0+0本構造体の長さ(バイト)。
TransmittedFragmentCountLONGLONG8+8+8送信に成功したMPDUおよびフラグメントの累計数。
MulticastTransmittedFrameCountLONGLONG8+16+16送信したマルチキャストMSDUの累計数。
FailedCountLONGLONG8+24+24再送上限超過などで送信に失敗したMSDUの累計数。
RetryCountLONGLONG8+32+321回以上の再送を要したMSDUの累計数。
MultipleRetryCountLONGLONG8+40+40複数回の再送を要したMSDUの累計数。
RTSSuccessCountLONGLONG8+48+48RTSに対しCTSを受信できた回数。
RTSFailureCountLONGLONG8+56+56RTSに対しCTSを受信できなかった回数。
ACKFailureCountLONGLONG8+64+64送信に対しACKを受信できなかった回数。
FrameDuplicateCountLONGLONG8+72+72重複受信と判定されたフレーム数。
ReceivedFragmentCountLONGLONG8+80+80正常に受信したMPDUおよびフラグメントの累計数。
MulticastReceivedFrameCountLONGLONG8+88+88受信したマルチキャストMSDUの累計数。
FCSErrorCountLONGLONG8+96+96FCS(誤り検査)エラーが検出されたフレーム数。
TKIPLocalMICFailuresLONGLONG8+104+104ローカルで検出したTKIPのMIC検証失敗回数。
TKIPICVErrorCountLONGLONG8+112+112TKIPのICV(完全性チェック値)エラー数。
TKIPCounterMeasuresInvokedLONGLONG8+120+120TKIPの対抗措置(カウンターメジャー)発動回数。
TKIPReplaysLONGLONG8+128+128TKIPでリプレイ攻撃と判定されたフレーム数。
CCMPFormatErrorsLONGLONG8+136+136CCMP形式エラーが検出されたフレーム数。
CCMPReplaysLONGLONG8+144+144CCMPでリプレイ攻撃と判定されたフレーム数。
CCMPDecryptErrorsLONGLONG8+152+152CCMP復号エラー数。
FourWayHandshakeFailuresLONGLONG8+160+1604ウェイハンドシェイクの失敗回数。
WEPUndecryptableCountLONGLONG8+168+168適切なキーが無く復号できなかったWEPフレーム数。
WEPICVErrorCountLONGLONG8+176+176WEPのICVエラー数。
DecryptSuccessCountLONGLONG8+184+184復号に成功したフレーム数。
DecryptFailureCountLONGLONG8+192+192復号に失敗したフレーム数。

各言語での定義

#include <windows.h>

// NDIS_802_11_STATISTICS  (x64 200 / x86 200 バイト)
typedef struct NDIS_802_11_STATISTICS {
    DWORD Length;
    LONGLONG TransmittedFragmentCount;
    LONGLONG MulticastTransmittedFrameCount;
    LONGLONG FailedCount;
    LONGLONG RetryCount;
    LONGLONG MultipleRetryCount;
    LONGLONG RTSSuccessCount;
    LONGLONG RTSFailureCount;
    LONGLONG ACKFailureCount;
    LONGLONG FrameDuplicateCount;
    LONGLONG ReceivedFragmentCount;
    LONGLONG MulticastReceivedFrameCount;
    LONGLONG FCSErrorCount;
    LONGLONG TKIPLocalMICFailures;
    LONGLONG TKIPICVErrorCount;
    LONGLONG TKIPCounterMeasuresInvoked;
    LONGLONG TKIPReplays;
    LONGLONG CCMPFormatErrors;
    LONGLONG CCMPReplays;
    LONGLONG CCMPDecryptErrors;
    LONGLONG FourWayHandshakeFailures;
    LONGLONG WEPUndecryptableCount;
    LONGLONG WEPICVErrorCount;
    LONGLONG DecryptSuccessCount;
    LONGLONG DecryptFailureCount;
} NDIS_802_11_STATISTICS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NDIS_802_11_STATISTICS
{
    public uint Length;
    public long TransmittedFragmentCount;
    public long MulticastTransmittedFrameCount;
    public long FailedCount;
    public long RetryCount;
    public long MultipleRetryCount;
    public long RTSSuccessCount;
    public long RTSFailureCount;
    public long ACKFailureCount;
    public long FrameDuplicateCount;
    public long ReceivedFragmentCount;
    public long MulticastReceivedFrameCount;
    public long FCSErrorCount;
    public long TKIPLocalMICFailures;
    public long TKIPICVErrorCount;
    public long TKIPCounterMeasuresInvoked;
    public long TKIPReplays;
    public long CCMPFormatErrors;
    public long CCMPReplays;
    public long CCMPDecryptErrors;
    public long FourWayHandshakeFailures;
    public long WEPUndecryptableCount;
    public long WEPICVErrorCount;
    public long DecryptSuccessCount;
    public long DecryptFailureCount;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NDIS_802_11_STATISTICS
    Public Length As UInteger
    Public TransmittedFragmentCount As Long
    Public MulticastTransmittedFrameCount As Long
    Public FailedCount As Long
    Public RetryCount As Long
    Public MultipleRetryCount As Long
    Public RTSSuccessCount As Long
    Public RTSFailureCount As Long
    Public ACKFailureCount As Long
    Public FrameDuplicateCount As Long
    Public ReceivedFragmentCount As Long
    Public MulticastReceivedFrameCount As Long
    Public FCSErrorCount As Long
    Public TKIPLocalMICFailures As Long
    Public TKIPICVErrorCount As Long
    Public TKIPCounterMeasuresInvoked As Long
    Public TKIPReplays As Long
    Public CCMPFormatErrors As Long
    Public CCMPReplays As Long
    Public CCMPDecryptErrors As Long
    Public FourWayHandshakeFailures As Long
    Public WEPUndecryptableCount As Long
    Public WEPICVErrorCount As Long
    Public DecryptSuccessCount As Long
    Public DecryptFailureCount As Long
End Structure
import ctypes
from ctypes import wintypes

class NDIS_802_11_STATISTICS(ctypes.Structure):
    _fields_ = [
        ("Length", wintypes.DWORD),
        ("TransmittedFragmentCount", ctypes.c_longlong),
        ("MulticastTransmittedFrameCount", ctypes.c_longlong),
        ("FailedCount", ctypes.c_longlong),
        ("RetryCount", ctypes.c_longlong),
        ("MultipleRetryCount", ctypes.c_longlong),
        ("RTSSuccessCount", ctypes.c_longlong),
        ("RTSFailureCount", ctypes.c_longlong),
        ("ACKFailureCount", ctypes.c_longlong),
        ("FrameDuplicateCount", ctypes.c_longlong),
        ("ReceivedFragmentCount", ctypes.c_longlong),
        ("MulticastReceivedFrameCount", ctypes.c_longlong),
        ("FCSErrorCount", ctypes.c_longlong),
        ("TKIPLocalMICFailures", ctypes.c_longlong),
        ("TKIPICVErrorCount", ctypes.c_longlong),
        ("TKIPCounterMeasuresInvoked", ctypes.c_longlong),
        ("TKIPReplays", ctypes.c_longlong),
        ("CCMPFormatErrors", ctypes.c_longlong),
        ("CCMPReplays", ctypes.c_longlong),
        ("CCMPDecryptErrors", ctypes.c_longlong),
        ("FourWayHandshakeFailures", ctypes.c_longlong),
        ("WEPUndecryptableCount", ctypes.c_longlong),
        ("WEPICVErrorCount", ctypes.c_longlong),
        ("DecryptSuccessCount", ctypes.c_longlong),
        ("DecryptFailureCount", ctypes.c_longlong),
    ]
#[repr(C)]
pub struct NDIS_802_11_STATISTICS {
    pub Length: u32,
    pub TransmittedFragmentCount: i64,
    pub MulticastTransmittedFrameCount: i64,
    pub FailedCount: i64,
    pub RetryCount: i64,
    pub MultipleRetryCount: i64,
    pub RTSSuccessCount: i64,
    pub RTSFailureCount: i64,
    pub ACKFailureCount: i64,
    pub FrameDuplicateCount: i64,
    pub ReceivedFragmentCount: i64,
    pub MulticastReceivedFrameCount: i64,
    pub FCSErrorCount: i64,
    pub TKIPLocalMICFailures: i64,
    pub TKIPICVErrorCount: i64,
    pub TKIPCounterMeasuresInvoked: i64,
    pub TKIPReplays: i64,
    pub CCMPFormatErrors: i64,
    pub CCMPReplays: i64,
    pub CCMPDecryptErrors: i64,
    pub FourWayHandshakeFailures: i64,
    pub WEPUndecryptableCount: i64,
    pub WEPICVErrorCount: i64,
    pub DecryptSuccessCount: i64,
    pub DecryptFailureCount: i64,
}
import "golang.org/x/sys/windows"

type NDIS_802_11_STATISTICS struct {
	Length uint32
	TransmittedFragmentCount int64
	MulticastTransmittedFrameCount int64
	FailedCount int64
	RetryCount int64
	MultipleRetryCount int64
	RTSSuccessCount int64
	RTSFailureCount int64
	ACKFailureCount int64
	FrameDuplicateCount int64
	ReceivedFragmentCount int64
	MulticastReceivedFrameCount int64
	FCSErrorCount int64
	TKIPLocalMICFailures int64
	TKIPICVErrorCount int64
	TKIPCounterMeasuresInvoked int64
	TKIPReplays int64
	CCMPFormatErrors int64
	CCMPReplays int64
	CCMPDecryptErrors int64
	FourWayHandshakeFailures int64
	WEPUndecryptableCount int64
	WEPICVErrorCount int64
	DecryptSuccessCount int64
	DecryptFailureCount int64
}
type
  NDIS_802_11_STATISTICS = record
    Length: DWORD;
    TransmittedFragmentCount: Int64;
    MulticastTransmittedFrameCount: Int64;
    FailedCount: Int64;
    RetryCount: Int64;
    MultipleRetryCount: Int64;
    RTSSuccessCount: Int64;
    RTSFailureCount: Int64;
    ACKFailureCount: Int64;
    FrameDuplicateCount: Int64;
    ReceivedFragmentCount: Int64;
    MulticastReceivedFrameCount: Int64;
    FCSErrorCount: Int64;
    TKIPLocalMICFailures: Int64;
    TKIPICVErrorCount: Int64;
    TKIPCounterMeasuresInvoked: Int64;
    TKIPReplays: Int64;
    CCMPFormatErrors: Int64;
    CCMPReplays: Int64;
    CCMPDecryptErrors: Int64;
    FourWayHandshakeFailures: Int64;
    WEPUndecryptableCount: Int64;
    WEPICVErrorCount: Int64;
    DecryptSuccessCount: Int64;
    DecryptFailureCount: Int64;
  end;
const NDIS_802_11_STATISTICS = extern struct {
    Length: u32,
    TransmittedFragmentCount: i64,
    MulticastTransmittedFrameCount: i64,
    FailedCount: i64,
    RetryCount: i64,
    MultipleRetryCount: i64,
    RTSSuccessCount: i64,
    RTSFailureCount: i64,
    ACKFailureCount: i64,
    FrameDuplicateCount: i64,
    ReceivedFragmentCount: i64,
    MulticastReceivedFrameCount: i64,
    FCSErrorCount: i64,
    TKIPLocalMICFailures: i64,
    TKIPICVErrorCount: i64,
    TKIPCounterMeasuresInvoked: i64,
    TKIPReplays: i64,
    CCMPFormatErrors: i64,
    CCMPReplays: i64,
    CCMPDecryptErrors: i64,
    FourWayHandshakeFailures: i64,
    WEPUndecryptableCount: i64,
    WEPICVErrorCount: i64,
    DecryptSuccessCount: i64,
    DecryptFailureCount: i64,
};
type
  NDIS_802_11_STATISTICS {.bycopy.} = object
    Length: uint32
    TransmittedFragmentCount: int64
    MulticastTransmittedFrameCount: int64
    FailedCount: int64
    RetryCount: int64
    MultipleRetryCount: int64
    RTSSuccessCount: int64
    RTSFailureCount: int64
    ACKFailureCount: int64
    FrameDuplicateCount: int64
    ReceivedFragmentCount: int64
    MulticastReceivedFrameCount: int64
    FCSErrorCount: int64
    TKIPLocalMICFailures: int64
    TKIPICVErrorCount: int64
    TKIPCounterMeasuresInvoked: int64
    TKIPReplays: int64
    CCMPFormatErrors: int64
    CCMPReplays: int64
    CCMPDecryptErrors: int64
    FourWayHandshakeFailures: int64
    WEPUndecryptableCount: int64
    WEPICVErrorCount: int64
    DecryptSuccessCount: int64
    DecryptFailureCount: int64
struct NDIS_802_11_STATISTICS
{
    uint Length;
    long TransmittedFragmentCount;
    long MulticastTransmittedFrameCount;
    long FailedCount;
    long RetryCount;
    long MultipleRetryCount;
    long RTSSuccessCount;
    long RTSFailureCount;
    long ACKFailureCount;
    long FrameDuplicateCount;
    long ReceivedFragmentCount;
    long MulticastReceivedFrameCount;
    long FCSErrorCount;
    long TKIPLocalMICFailures;
    long TKIPICVErrorCount;
    long TKIPCounterMeasuresInvoked;
    long TKIPReplays;
    long CCMPFormatErrors;
    long CCMPReplays;
    long CCMPDecryptErrors;
    long FourWayHandshakeFailures;
    long WEPUndecryptableCount;
    long WEPICVErrorCount;
    long DecryptSuccessCount;
    long DecryptFailureCount;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NDIS_802_11_STATISTICS サイズ: 200 バイト(x64)
dim st, 50    ; 4byte整数×50(構造体サイズ 200 / 4 切り上げ)
; Length : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; TransmittedFragmentCount : LONGLONG (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; MulticastTransmittedFrameCount : LONGLONG (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; FailedCount : LONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; RetryCount : LONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; MultipleRetryCount : LONGLONG (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; RTSSuccessCount : LONGLONG (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; RTSFailureCount : LONGLONG (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; ACKFailureCount : LONGLONG (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; FrameDuplicateCount : LONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; ReceivedFragmentCount : LONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; MulticastReceivedFrameCount : LONGLONG (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; FCSErrorCount : LONGLONG (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; TKIPLocalMICFailures : LONGLONG (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; TKIPICVErrorCount : LONGLONG (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; TKIPCounterMeasuresInvoked : LONGLONG (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; TKIPReplays : LONGLONG (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; CCMPFormatErrors : LONGLONG (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; CCMPReplays : LONGLONG (+144, 8byte)  qpoke st,144,値 / qpeek(st,144)  ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; CCMPDecryptErrors : LONGLONG (+152, 8byte)  qpoke st,152,値 / qpeek(st,152)  ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; FourWayHandshakeFailures : LONGLONG (+160, 8byte)  qpoke st,160,値 / qpeek(st,160)  ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; WEPUndecryptableCount : LONGLONG (+168, 8byte)  qpoke st,168,値 / qpeek(st,168)  ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; WEPICVErrorCount : LONGLONG (+176, 8byte)  qpoke st,176,値 / qpeek(st,176)  ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; DecryptSuccessCount : LONGLONG (+184, 8byte)  qpoke st,184,値 / qpeek(st,184)  ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; DecryptFailureCount : LONGLONG (+192, 8byte)  qpoke st,192,値 / qpeek(st,192)  ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global NDIS_802_11_STATISTICS
    #field int Length
    #field int64 TransmittedFragmentCount
    #field int64 MulticastTransmittedFrameCount
    #field int64 FailedCount
    #field int64 RetryCount
    #field int64 MultipleRetryCount
    #field int64 RTSSuccessCount
    #field int64 RTSFailureCount
    #field int64 ACKFailureCount
    #field int64 FrameDuplicateCount
    #field int64 ReceivedFragmentCount
    #field int64 MulticastReceivedFrameCount
    #field int64 FCSErrorCount
    #field int64 TKIPLocalMICFailures
    #field int64 TKIPICVErrorCount
    #field int64 TKIPCounterMeasuresInvoked
    #field int64 TKIPReplays
    #field int64 CCMPFormatErrors
    #field int64 CCMPReplays
    #field int64 CCMPDecryptErrors
    #field int64 FourWayHandshakeFailures
    #field int64 WEPUndecryptableCount
    #field int64 WEPICVErrorCount
    #field int64 DecryptSuccessCount
    #field int64 DecryptFailureCount
#endstruct

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