ホーム › Media.KernelStreaming › KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S
KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Property | KSIDENTIFIER | 8 | +0 | +0 | 対象とするKSプロパティ識別子である。 |
| Statistics | VBICODECFILTERING_STATISTICS_NABTS | 84 | +8 | +8 | NABTS統計情報を保持するVBICODECFILTERING_STATISTICS_NABTSである。 |
各言語での定義
#include <windows.h>
// KSIDENTIFIER (x64 8 / x86 8 バイト)
typedef struct KSIDENTIFIER {
_Anonymous_e__Union Anonymous;
} KSIDENTIFIER;
// VBICODECFILTERING_STATISTICS_COMMON (x64 56 / x86 56 バイト)
typedef struct VBICODECFILTERING_STATISTICS_COMMON {
DWORD InputSRBsProcessed;
DWORD OutputSRBsProcessed;
DWORD SRBsIgnored;
DWORD InputSRBsMissing;
DWORD OutputSRBsMissing;
DWORD OutputFailures;
DWORD InternalErrors;
DWORD ExternalErrors;
DWORD InputDiscontinuities;
DWORD DSPFailures;
DWORD TvTunerChanges;
DWORD VBIHeaderChanges;
DWORD LineConfidenceAvg;
DWORD BytesOutput;
} VBICODECFILTERING_STATISTICS_COMMON;
// VBICODECFILTERING_STATISTICS_NABTS (x64 84 / x86 84 バイト)
typedef struct VBICODECFILTERING_STATISTICS_NABTS {
VBICODECFILTERING_STATISTICS_COMMON Common;
DWORD FECBundleBadLines;
DWORD FECQueueOverflows;
DWORD FECCorrectedLines;
DWORD FECUncorrectableLines;
DWORD BundlesProcessed;
DWORD BundlesSent2IP;
DWORD FilteredLines;
} VBICODECFILTERING_STATISTICS_NABTS;
// KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S (x64 96 / x86 96 バイト)
typedef struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {
KSIDENTIFIER Property;
VBICODECFILTERING_STATISTICS_NABTS Statistics;
} KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct KSIDENTIFIER
{
public _Anonymous_e__Union Anonymous;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct VBICODECFILTERING_STATISTICS_COMMON
{
public uint InputSRBsProcessed;
public uint OutputSRBsProcessed;
public uint SRBsIgnored;
public uint InputSRBsMissing;
public uint OutputSRBsMissing;
public uint OutputFailures;
public uint InternalErrors;
public uint ExternalErrors;
public uint InputDiscontinuities;
public uint DSPFailures;
public uint TvTunerChanges;
public uint VBIHeaderChanges;
public uint LineConfidenceAvg;
public uint BytesOutput;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct VBICODECFILTERING_STATISTICS_NABTS
{
public VBICODECFILTERING_STATISTICS_COMMON Common;
public uint FECBundleBadLines;
public uint FECQueueOverflows;
public uint FECCorrectedLines;
public uint FECUncorrectableLines;
public uint BundlesProcessed;
public uint BundlesSent2IP;
public uint FilteredLines;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S
{
public KSIDENTIFIER Property;
public VBICODECFILTERING_STATISTICS_NABTS Statistics;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure KSIDENTIFIER
Public Anonymous As _Anonymous_e__Union
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure VBICODECFILTERING_STATISTICS_COMMON
Public InputSRBsProcessed As UInteger
Public OutputSRBsProcessed As UInteger
Public SRBsIgnored As UInteger
Public InputSRBsMissing As UInteger
Public OutputSRBsMissing As UInteger
Public OutputFailures As UInteger
Public InternalErrors As UInteger
Public ExternalErrors As UInteger
Public InputDiscontinuities As UInteger
Public DSPFailures As UInteger
Public TvTunerChanges As UInteger
Public VBIHeaderChanges As UInteger
Public LineConfidenceAvg As UInteger
Public BytesOutput As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure VBICODECFILTERING_STATISTICS_NABTS
Public Common As VBICODECFILTERING_STATISTICS_COMMON
Public FECBundleBadLines As UInteger
Public FECQueueOverflows As UInteger
Public FECCorrectedLines As UInteger
Public FECUncorrectableLines As UInteger
Public BundlesProcessed As UInteger
Public BundlesSent2IP As UInteger
Public FilteredLines As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S
Public Property As KSIDENTIFIER
Public Statistics As VBICODECFILTERING_STATISTICS_NABTS
End Structureimport ctypes
from ctypes import wintypes
class KSIDENTIFIER(ctypes.Structure):
_fields_ = [
("Anonymous", _Anonymous_e__Union),
]
class VBICODECFILTERING_STATISTICS_COMMON(ctypes.Structure):
_fields_ = [
("InputSRBsProcessed", wintypes.DWORD),
("OutputSRBsProcessed", wintypes.DWORD),
("SRBsIgnored", wintypes.DWORD),
("InputSRBsMissing", wintypes.DWORD),
("OutputSRBsMissing", wintypes.DWORD),
("OutputFailures", wintypes.DWORD),
("InternalErrors", wintypes.DWORD),
("ExternalErrors", wintypes.DWORD),
("InputDiscontinuities", wintypes.DWORD),
("DSPFailures", wintypes.DWORD),
("TvTunerChanges", wintypes.DWORD),
("VBIHeaderChanges", wintypes.DWORD),
("LineConfidenceAvg", wintypes.DWORD),
("BytesOutput", wintypes.DWORD),
]
class VBICODECFILTERING_STATISTICS_NABTS(ctypes.Structure):
_fields_ = [
("Common", VBICODECFILTERING_STATISTICS_COMMON),
("FECBundleBadLines", wintypes.DWORD),
("FECQueueOverflows", wintypes.DWORD),
("FECCorrectedLines", wintypes.DWORD),
("FECUncorrectableLines", wintypes.DWORD),
("BundlesProcessed", wintypes.DWORD),
("BundlesSent2IP", wintypes.DWORD),
("FilteredLines", wintypes.DWORD),
]
class KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S(ctypes.Structure):
_fields_ = [
("Property", KSIDENTIFIER),
("Statistics", VBICODECFILTERING_STATISTICS_NABTS),
]#[repr(C)]
pub struct KSIDENTIFIER {
pub Anonymous: _Anonymous_e__Union,
}
#[repr(C)]
pub struct VBICODECFILTERING_STATISTICS_COMMON {
pub InputSRBsProcessed: u32,
pub OutputSRBsProcessed: u32,
pub SRBsIgnored: u32,
pub InputSRBsMissing: u32,
pub OutputSRBsMissing: u32,
pub OutputFailures: u32,
pub InternalErrors: u32,
pub ExternalErrors: u32,
pub InputDiscontinuities: u32,
pub DSPFailures: u32,
pub TvTunerChanges: u32,
pub VBIHeaderChanges: u32,
pub LineConfidenceAvg: u32,
pub BytesOutput: u32,
}
#[repr(C)]
pub struct VBICODECFILTERING_STATISTICS_NABTS {
pub Common: VBICODECFILTERING_STATISTICS_COMMON,
pub FECBundleBadLines: u32,
pub FECQueueOverflows: u32,
pub FECCorrectedLines: u32,
pub FECUncorrectableLines: u32,
pub BundlesProcessed: u32,
pub BundlesSent2IP: u32,
pub FilteredLines: u32,
}
#[repr(C)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_NABTS,
}import "golang.org/x/sys/windows"
type KSIDENTIFIER struct {
Anonymous _Anonymous_e__Union
}
type VBICODECFILTERING_STATISTICS_COMMON struct {
InputSRBsProcessed uint32
OutputSRBsProcessed uint32
SRBsIgnored uint32
InputSRBsMissing uint32
OutputSRBsMissing uint32
OutputFailures uint32
InternalErrors uint32
ExternalErrors uint32
InputDiscontinuities uint32
DSPFailures uint32
TvTunerChanges uint32
VBIHeaderChanges uint32
LineConfidenceAvg uint32
BytesOutput uint32
}
type VBICODECFILTERING_STATISTICS_NABTS struct {
Common VBICODECFILTERING_STATISTICS_COMMON
FECBundleBadLines uint32
FECQueueOverflows uint32
FECCorrectedLines uint32
FECUncorrectableLines uint32
BundlesProcessed uint32
BundlesSent2IP uint32
FilteredLines uint32
}
type KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S struct {
Property KSIDENTIFIER
Statistics VBICODECFILTERING_STATISTICS_NABTS
}type
KSIDENTIFIER = record
Anonymous: _Anonymous_e__Union;
end;
VBICODECFILTERING_STATISTICS_COMMON = record
InputSRBsProcessed: DWORD;
OutputSRBsProcessed: DWORD;
SRBsIgnored: DWORD;
InputSRBsMissing: DWORD;
OutputSRBsMissing: DWORD;
OutputFailures: DWORD;
InternalErrors: DWORD;
ExternalErrors: DWORD;
InputDiscontinuities: DWORD;
DSPFailures: DWORD;
TvTunerChanges: DWORD;
VBIHeaderChanges: DWORD;
LineConfidenceAvg: DWORD;
BytesOutput: DWORD;
end;
VBICODECFILTERING_STATISTICS_NABTS = record
Common: VBICODECFILTERING_STATISTICS_COMMON;
FECBundleBadLines: DWORD;
FECQueueOverflows: DWORD;
FECCorrectedLines: DWORD;
FECUncorrectableLines: DWORD;
BundlesProcessed: DWORD;
BundlesSent2IP: DWORD;
FilteredLines: DWORD;
end;
KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S = record
Property: KSIDENTIFIER;
Statistics: VBICODECFILTERING_STATISTICS_NABTS;
end;const KSIDENTIFIER = extern struct {
Anonymous: _Anonymous_e__Union,
};
const VBICODECFILTERING_STATISTICS_COMMON = extern struct {
InputSRBsProcessed: u32,
OutputSRBsProcessed: u32,
SRBsIgnored: u32,
InputSRBsMissing: u32,
OutputSRBsMissing: u32,
OutputFailures: u32,
InternalErrors: u32,
ExternalErrors: u32,
InputDiscontinuities: u32,
DSPFailures: u32,
TvTunerChanges: u32,
VBIHeaderChanges: u32,
LineConfidenceAvg: u32,
BytesOutput: u32,
};
const VBICODECFILTERING_STATISTICS_NABTS = extern struct {
Common: VBICODECFILTERING_STATISTICS_COMMON,
FECBundleBadLines: u32,
FECQueueOverflows: u32,
FECCorrectedLines: u32,
FECUncorrectableLines: u32,
BundlesProcessed: u32,
BundlesSent2IP: u32,
FilteredLines: u32,
};
const KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S = extern struct {
Property: KSIDENTIFIER,
Statistics: VBICODECFILTERING_STATISTICS_NABTS,
};type
KSIDENTIFIER {.bycopy.} = object
Anonymous: _Anonymous_e__Union
VBICODECFILTERING_STATISTICS_COMMON {.bycopy.} = object
InputSRBsProcessed: uint32
OutputSRBsProcessed: uint32
SRBsIgnored: uint32
InputSRBsMissing: uint32
OutputSRBsMissing: uint32
OutputFailures: uint32
InternalErrors: uint32
ExternalErrors: uint32
InputDiscontinuities: uint32
DSPFailures: uint32
TvTunerChanges: uint32
VBIHeaderChanges: uint32
LineConfidenceAvg: uint32
BytesOutput: uint32
VBICODECFILTERING_STATISTICS_NABTS {.bycopy.} = object
Common: VBICODECFILTERING_STATISTICS_COMMON
FECBundleBadLines: uint32
FECQueueOverflows: uint32
FECCorrectedLines: uint32
FECUncorrectableLines: uint32
BundlesProcessed: uint32
BundlesSent2IP: uint32
FilteredLines: uint32
KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {.bycopy.} = object
Property: KSIDENTIFIER
Statistics: VBICODECFILTERING_STATISTICS_NABTSstruct KSIDENTIFIER
{
_Anonymous_e__Union Anonymous;
}
struct VBICODECFILTERING_STATISTICS_COMMON
{
uint InputSRBsProcessed;
uint OutputSRBsProcessed;
uint SRBsIgnored;
uint InputSRBsMissing;
uint OutputSRBsMissing;
uint OutputFailures;
uint InternalErrors;
uint ExternalErrors;
uint InputDiscontinuities;
uint DSPFailures;
uint TvTunerChanges;
uint VBIHeaderChanges;
uint LineConfidenceAvg;
uint BytesOutput;
}
struct VBICODECFILTERING_STATISTICS_NABTS
{
VBICODECFILTERING_STATISTICS_COMMON Common;
uint FECBundleBadLines;
uint FECQueueOverflows;
uint FECCorrectedLines;
uint FECUncorrectableLines;
uint BundlesProcessed;
uint BundlesSent2IP;
uint FilteredLines;
}
struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S
{
KSIDENTIFIER Property;
VBICODECFILTERING_STATISTICS_NABTS Statistics;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S サイズ: 96 バイト(x64)
dim st, 24 ; 4byte整数×24(構造体サイズ 96 / 4 切り上げ)
; Property : KSIDENTIFIER (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; Statistics : VBICODECFILTERING_STATISTICS_NABTS (+8, 84byte) varptr(st)+8 を基点に操作(84byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global KSIDENTIFIER
#field byte Anonymous 8
#endstruct
#defstruct global VBICODECFILTERING_STATISTICS_COMMON
#field int InputSRBsProcessed
#field int OutputSRBsProcessed
#field int SRBsIgnored
#field int InputSRBsMissing
#field int OutputSRBsMissing
#field int OutputFailures
#field int InternalErrors
#field int ExternalErrors
#field int InputDiscontinuities
#field int DSPFailures
#field int TvTunerChanges
#field int VBIHeaderChanges
#field int LineConfidenceAvg
#field int BytesOutput
#endstruct
#defstruct global VBICODECFILTERING_STATISTICS_NABTS
#field VBICODECFILTERING_STATISTICS_COMMON Common
#field int FECBundleBadLines
#field int FECQueueOverflows
#field int FECCorrectedLines
#field int FECUncorrectableLines
#field int BundlesProcessed
#field int BundlesSent2IP
#field int FilteredLines
#endstruct
#defstruct global KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S
#field KSIDENTIFIER Property
#field VBICODECFILTERING_STATISTICS_NABTS Statistics
#endstruct
stdim st, KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S ; NSTRUCT 変数を確保