ホーム › NetworkManagement.Ndis › NDIS_802_11_STATISTICS
NDIS_802_11_STATISTICS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Length | DWORD | 4 | +0 | +0 | 本構造体の長さ(バイト)。 |
| TransmittedFragmentCount | LONGLONG | 8 | +8 | +8 | 送信に成功したMPDUおよびフラグメントの累計数。 |
| MulticastTransmittedFrameCount | LONGLONG | 8 | +16 | +16 | 送信したマルチキャストMSDUの累計数。 |
| FailedCount | LONGLONG | 8 | +24 | +24 | 再送上限超過などで送信に失敗したMSDUの累計数。 |
| RetryCount | LONGLONG | 8 | +32 | +32 | 1回以上の再送を要したMSDUの累計数。 |
| MultipleRetryCount | LONGLONG | 8 | +40 | +40 | 複数回の再送を要したMSDUの累計数。 |
| RTSSuccessCount | LONGLONG | 8 | +48 | +48 | RTSに対しCTSを受信できた回数。 |
| RTSFailureCount | LONGLONG | 8 | +56 | +56 | RTSに対しCTSを受信できなかった回数。 |
| ACKFailureCount | LONGLONG | 8 | +64 | +64 | 送信に対しACKを受信できなかった回数。 |
| FrameDuplicateCount | LONGLONG | 8 | +72 | +72 | 重複受信と判定されたフレーム数。 |
| ReceivedFragmentCount | LONGLONG | 8 | +80 | +80 | 正常に受信したMPDUおよびフラグメントの累計数。 |
| MulticastReceivedFrameCount | LONGLONG | 8 | +88 | +88 | 受信したマルチキャストMSDUの累計数。 |
| FCSErrorCount | LONGLONG | 8 | +96 | +96 | FCS(誤り検査)エラーが検出されたフレーム数。 |
| TKIPLocalMICFailures | LONGLONG | 8 | +104 | +104 | ローカルで検出したTKIPのMIC検証失敗回数。 |
| TKIPICVErrorCount | LONGLONG | 8 | +112 | +112 | TKIPのICV(完全性チェック値)エラー数。 |
| TKIPCounterMeasuresInvoked | LONGLONG | 8 | +120 | +120 | TKIPの対抗措置(カウンターメジャー)発動回数。 |
| TKIPReplays | LONGLONG | 8 | +128 | +128 | TKIPでリプレイ攻撃と判定されたフレーム数。 |
| CCMPFormatErrors | LONGLONG | 8 | +136 | +136 | CCMP形式エラーが検出されたフレーム数。 |
| CCMPReplays | LONGLONG | 8 | +144 | +144 | CCMPでリプレイ攻撃と判定されたフレーム数。 |
| CCMPDecryptErrors | LONGLONG | 8 | +152 | +152 | CCMP復号エラー数。 |
| FourWayHandshakeFailures | LONGLONG | 8 | +160 | +160 | 4ウェイハンドシェイクの失敗回数。 |
| WEPUndecryptableCount | LONGLONG | 8 | +168 | +168 | 適切なキーが無く復号できなかったWEPフレーム数。 |
| WEPICVErrorCount | LONGLONG | 8 | +176 | +176 | WEPのICVエラー数。 |
| DecryptSuccessCount | LONGLONG | 8 | +184 | +184 | 復号に成功したフレーム数。 |
| DecryptFailureCount | LONGLONG | 8 | +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 Structureimport 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: int64struct 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