Win32 API 日本語リファレンス
ホームStorage.EnhancedStorage › ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION

ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION

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

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

フィールド

フィールドサイズx64x86説明
CurrentAdminFailuresBYTE1+0+0現在の管理者認証連続失敗回数。
CurrentUserFailuresBYTE1+1+1現在のユーザー認証連続失敗回数。
TotalUserAuthenticationCountDWORD4+4+4ユーザー認証の累計試行回数。
TotalAdminAuthenticationCountDWORD4+8+8管理者認証の累計試行回数。
FipsCompliantBOOL4+12+12FIPS準拠かを示すブール値。TRUEで準拠。
SecurityIDAvailableBOOL4+16+16セキュリティID(SID)が利用可能かを示すブール値。
InitializeInProgressBOOL4+20+20初期化処理が進行中かを示すブール値。
ITMSArmedBOOL4+24+24ITMS(改竄防止機構)が有効化されているかを示すブール値。
ITMSArmableBOOL4+28+28ITMSを有効化可能かを示すブール値。
UserCreatedBOOL4+32+32ユーザー資格情報が作成済みかを示すブール値。
ResetOnPORDefaultBOOL4+36+36電源投入リセット時の既定の初期化動作を示すブール値。
ResetOnPORCurrentBOOL4+40+40電源投入リセット時の現在の初期化動作を示すブール値。
MaxAdminFailuresBYTE1+44+44管理者認証で許容される最大連続失敗回数。
MaxUserFailuresBYTE1+45+45ユーザー認証で許容される最大連続失敗回数。
TimeToCompleteInitializationDWORD4+48+48初期化完了に要する総時間。秒単位。
TimeRemainingToCompleteInitializationDWORD4+52+52初期化完了までの残り時間。秒単位。
MinTimeToAuthenticateDWORD4+56+56認証に最低限要する時間。秒単位。
MaxAdminPasswordSizeBYTE1+60+60管理者パスワードの最大文字数。
MinAdminPasswordSizeBYTE1+61+61管理者パスワードの最小文字数。
MaxAdminHintSizeBYTE1+62+62管理者パスワードヒントの最大文字数。
MaxUserPasswordSizeBYTE1+63+63ユーザーパスワードの最大文字数。
MinUserPasswordSizeBYTE1+64+64ユーザーパスワードの最小文字数。
MaxUserHintSizeBYTE1+65+65ユーザーパスワードヒントの最大文字数。
MaxUserNameSizeBYTE1+66+66ユーザー名の最大文字数。
MaxSiloNameSizeBYTE1+67+67サイロ名の最大文字数。
MaxChallengeSizeWORD2+68+68チャレンジデータの最大サイズ。バイト数。

各言語での定義

#include <windows.h>

// ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION  (x64 72 / x86 72 バイト)
typedef struct ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION {
    BYTE CurrentAdminFailures;
    BYTE CurrentUserFailures;
    DWORD TotalUserAuthenticationCount;
    DWORD TotalAdminAuthenticationCount;
    BOOL FipsCompliant;
    BOOL SecurityIDAvailable;
    BOOL InitializeInProgress;
    BOOL ITMSArmed;
    BOOL ITMSArmable;
    BOOL UserCreated;
    BOOL ResetOnPORDefault;
    BOOL ResetOnPORCurrent;
    BYTE MaxAdminFailures;
    BYTE MaxUserFailures;
    DWORD TimeToCompleteInitialization;
    DWORD TimeRemainingToCompleteInitialization;
    DWORD MinTimeToAuthenticate;
    BYTE MaxAdminPasswordSize;
    BYTE MinAdminPasswordSize;
    BYTE MaxAdminHintSize;
    BYTE MaxUserPasswordSize;
    BYTE MinUserPasswordSize;
    BYTE MaxUserHintSize;
    BYTE MaxUserNameSize;
    BYTE MaxSiloNameSize;
    WORD MaxChallengeSize;
} ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION
{
    public byte CurrentAdminFailures;
    public byte CurrentUserFailures;
    public uint TotalUserAuthenticationCount;
    public uint TotalAdminAuthenticationCount;
    [MarshalAs(UnmanagedType.Bool)] public bool FipsCompliant;
    [MarshalAs(UnmanagedType.Bool)] public bool SecurityIDAvailable;
    [MarshalAs(UnmanagedType.Bool)] public bool InitializeInProgress;
    [MarshalAs(UnmanagedType.Bool)] public bool ITMSArmed;
    [MarshalAs(UnmanagedType.Bool)] public bool ITMSArmable;
    [MarshalAs(UnmanagedType.Bool)] public bool UserCreated;
    [MarshalAs(UnmanagedType.Bool)] public bool ResetOnPORDefault;
    [MarshalAs(UnmanagedType.Bool)] public bool ResetOnPORCurrent;
    public byte MaxAdminFailures;
    public byte MaxUserFailures;
    public uint TimeToCompleteInitialization;
    public uint TimeRemainingToCompleteInitialization;
    public uint MinTimeToAuthenticate;
    public byte MaxAdminPasswordSize;
    public byte MinAdminPasswordSize;
    public byte MaxAdminHintSize;
    public byte MaxUserPasswordSize;
    public byte MinUserPasswordSize;
    public byte MaxUserHintSize;
    public byte MaxUserNameSize;
    public byte MaxSiloNameSize;
    public ushort MaxChallengeSize;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION
    Public CurrentAdminFailures As Byte
    Public CurrentUserFailures As Byte
    Public TotalUserAuthenticationCount As UInteger
    Public TotalAdminAuthenticationCount As UInteger
    <MarshalAs(UnmanagedType.Bool)> Public FipsCompliant As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public SecurityIDAvailable As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public InitializeInProgress As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public ITMSArmed As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public ITMSArmable As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public UserCreated As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public ResetOnPORDefault As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public ResetOnPORCurrent As Boolean
    Public MaxAdminFailures As Byte
    Public MaxUserFailures As Byte
    Public TimeToCompleteInitialization As UInteger
    Public TimeRemainingToCompleteInitialization As UInteger
    Public MinTimeToAuthenticate As UInteger
    Public MaxAdminPasswordSize As Byte
    Public MinAdminPasswordSize As Byte
    Public MaxAdminHintSize As Byte
    Public MaxUserPasswordSize As Byte
    Public MinUserPasswordSize As Byte
    Public MaxUserHintSize As Byte
    Public MaxUserNameSize As Byte
    Public MaxSiloNameSize As Byte
    Public MaxChallengeSize As UShort
End Structure
import ctypes
from ctypes import wintypes

class ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION(ctypes.Structure):
    _fields_ = [
        ("CurrentAdminFailures", ctypes.c_ubyte),
        ("CurrentUserFailures", ctypes.c_ubyte),
        ("TotalUserAuthenticationCount", wintypes.DWORD),
        ("TotalAdminAuthenticationCount", wintypes.DWORD),
        ("FipsCompliant", wintypes.BOOL),
        ("SecurityIDAvailable", wintypes.BOOL),
        ("InitializeInProgress", wintypes.BOOL),
        ("ITMSArmed", wintypes.BOOL),
        ("ITMSArmable", wintypes.BOOL),
        ("UserCreated", wintypes.BOOL),
        ("ResetOnPORDefault", wintypes.BOOL),
        ("ResetOnPORCurrent", wintypes.BOOL),
        ("MaxAdminFailures", ctypes.c_ubyte),
        ("MaxUserFailures", ctypes.c_ubyte),
        ("TimeToCompleteInitialization", wintypes.DWORD),
        ("TimeRemainingToCompleteInitialization", wintypes.DWORD),
        ("MinTimeToAuthenticate", wintypes.DWORD),
        ("MaxAdminPasswordSize", ctypes.c_ubyte),
        ("MinAdminPasswordSize", ctypes.c_ubyte),
        ("MaxAdminHintSize", ctypes.c_ubyte),
        ("MaxUserPasswordSize", ctypes.c_ubyte),
        ("MinUserPasswordSize", ctypes.c_ubyte),
        ("MaxUserHintSize", ctypes.c_ubyte),
        ("MaxUserNameSize", ctypes.c_ubyte),
        ("MaxSiloNameSize", ctypes.c_ubyte),
        ("MaxChallengeSize", ctypes.c_ushort),
    ]
#[repr(C)]
pub struct ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION {
    pub CurrentAdminFailures: u8,
    pub CurrentUserFailures: u8,
    pub TotalUserAuthenticationCount: u32,
    pub TotalAdminAuthenticationCount: u32,
    pub FipsCompliant: i32,
    pub SecurityIDAvailable: i32,
    pub InitializeInProgress: i32,
    pub ITMSArmed: i32,
    pub ITMSArmable: i32,
    pub UserCreated: i32,
    pub ResetOnPORDefault: i32,
    pub ResetOnPORCurrent: i32,
    pub MaxAdminFailures: u8,
    pub MaxUserFailures: u8,
    pub TimeToCompleteInitialization: u32,
    pub TimeRemainingToCompleteInitialization: u32,
    pub MinTimeToAuthenticate: u32,
    pub MaxAdminPasswordSize: u8,
    pub MinAdminPasswordSize: u8,
    pub MaxAdminHintSize: u8,
    pub MaxUserPasswordSize: u8,
    pub MinUserPasswordSize: u8,
    pub MaxUserHintSize: u8,
    pub MaxUserNameSize: u8,
    pub MaxSiloNameSize: u8,
    pub MaxChallengeSize: u16,
}
import "golang.org/x/sys/windows"

type ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION struct {
	CurrentAdminFailures byte
	CurrentUserFailures byte
	TotalUserAuthenticationCount uint32
	TotalAdminAuthenticationCount uint32
	FipsCompliant int32
	SecurityIDAvailable int32
	InitializeInProgress int32
	ITMSArmed int32
	ITMSArmable int32
	UserCreated int32
	ResetOnPORDefault int32
	ResetOnPORCurrent int32
	MaxAdminFailures byte
	MaxUserFailures byte
	TimeToCompleteInitialization uint32
	TimeRemainingToCompleteInitialization uint32
	MinTimeToAuthenticate uint32
	MaxAdminPasswordSize byte
	MinAdminPasswordSize byte
	MaxAdminHintSize byte
	MaxUserPasswordSize byte
	MinUserPasswordSize byte
	MaxUserHintSize byte
	MaxUserNameSize byte
	MaxSiloNameSize byte
	MaxChallengeSize uint16
}
type
  ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION = record
    CurrentAdminFailures: Byte;
    CurrentUserFailures: Byte;
    TotalUserAuthenticationCount: DWORD;
    TotalAdminAuthenticationCount: DWORD;
    FipsCompliant: BOOL;
    SecurityIDAvailable: BOOL;
    InitializeInProgress: BOOL;
    ITMSArmed: BOOL;
    ITMSArmable: BOOL;
    UserCreated: BOOL;
    ResetOnPORDefault: BOOL;
    ResetOnPORCurrent: BOOL;
    MaxAdminFailures: Byte;
    MaxUserFailures: Byte;
    TimeToCompleteInitialization: DWORD;
    TimeRemainingToCompleteInitialization: DWORD;
    MinTimeToAuthenticate: DWORD;
    MaxAdminPasswordSize: Byte;
    MinAdminPasswordSize: Byte;
    MaxAdminHintSize: Byte;
    MaxUserPasswordSize: Byte;
    MinUserPasswordSize: Byte;
    MaxUserHintSize: Byte;
    MaxUserNameSize: Byte;
    MaxSiloNameSize: Byte;
    MaxChallengeSize: Word;
  end;
const ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION = extern struct {
    CurrentAdminFailures: u8,
    CurrentUserFailures: u8,
    TotalUserAuthenticationCount: u32,
    TotalAdminAuthenticationCount: u32,
    FipsCompliant: i32,
    SecurityIDAvailable: i32,
    InitializeInProgress: i32,
    ITMSArmed: i32,
    ITMSArmable: i32,
    UserCreated: i32,
    ResetOnPORDefault: i32,
    ResetOnPORCurrent: i32,
    MaxAdminFailures: u8,
    MaxUserFailures: u8,
    TimeToCompleteInitialization: u32,
    TimeRemainingToCompleteInitialization: u32,
    MinTimeToAuthenticate: u32,
    MaxAdminPasswordSize: u8,
    MinAdminPasswordSize: u8,
    MaxAdminHintSize: u8,
    MaxUserPasswordSize: u8,
    MinUserPasswordSize: u8,
    MaxUserHintSize: u8,
    MaxUserNameSize: u8,
    MaxSiloNameSize: u8,
    MaxChallengeSize: u16,
};
type
  ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION {.bycopy.} = object
    CurrentAdminFailures: uint8
    CurrentUserFailures: uint8
    TotalUserAuthenticationCount: uint32
    TotalAdminAuthenticationCount: uint32
    FipsCompliant: int32
    SecurityIDAvailable: int32
    InitializeInProgress: int32
    ITMSArmed: int32
    ITMSArmable: int32
    UserCreated: int32
    ResetOnPORDefault: int32
    ResetOnPORCurrent: int32
    MaxAdminFailures: uint8
    MaxUserFailures: uint8
    TimeToCompleteInitialization: uint32
    TimeRemainingToCompleteInitialization: uint32
    MinTimeToAuthenticate: uint32
    MaxAdminPasswordSize: uint8
    MinAdminPasswordSize: uint8
    MaxAdminHintSize: uint8
    MaxUserPasswordSize: uint8
    MinUserPasswordSize: uint8
    MaxUserHintSize: uint8
    MaxUserNameSize: uint8
    MaxSiloNameSize: uint8
    MaxChallengeSize: uint16
struct ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION
{
    ubyte CurrentAdminFailures;
    ubyte CurrentUserFailures;
    uint TotalUserAuthenticationCount;
    uint TotalAdminAuthenticationCount;
    int FipsCompliant;
    int SecurityIDAvailable;
    int InitializeInProgress;
    int ITMSArmed;
    int ITMSArmable;
    int UserCreated;
    int ResetOnPORDefault;
    int ResetOnPORCurrent;
    ubyte MaxAdminFailures;
    ubyte MaxUserFailures;
    uint TimeToCompleteInitialization;
    uint TimeRemainingToCompleteInitialization;
    uint MinTimeToAuthenticate;
    ubyte MaxAdminPasswordSize;
    ubyte MinAdminPasswordSize;
    ubyte MaxAdminHintSize;
    ubyte MaxUserPasswordSize;
    ubyte MinUserPasswordSize;
    ubyte MaxUserHintSize;
    ubyte MaxUserNameSize;
    ubyte MaxSiloNameSize;
    ushort MaxChallengeSize;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION サイズ: 72 バイト(x64)
dim st, 18    ; 4byte整数×18(構造体サイズ 72 / 4 切り上げ)
; CurrentAdminFailures : BYTE (+0, 1byte)  poke st,0,値  /  値 = peek(st,0)
; CurrentUserFailures : BYTE (+1, 1byte)  poke st,1,値  /  値 = peek(st,1)
; TotalUserAuthenticationCount : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; TotalAdminAuthenticationCount : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; FipsCompliant : BOOL (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; SecurityIDAvailable : BOOL (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; InitializeInProgress : BOOL (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; ITMSArmed : BOOL (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; ITMSArmable : BOOL (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; UserCreated : BOOL (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; ResetOnPORDefault : BOOL (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; ResetOnPORCurrent : BOOL (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; MaxAdminFailures : BYTE (+44, 1byte)  poke st,44,値  /  値 = peek(st,44)
; MaxUserFailures : BYTE (+45, 1byte)  poke st,45,値  /  値 = peek(st,45)
; TimeToCompleteInitialization : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; TimeRemainingToCompleteInitialization : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; MinTimeToAuthenticate : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; MaxAdminPasswordSize : BYTE (+60, 1byte)  poke st,60,値  /  値 = peek(st,60)
; MinAdminPasswordSize : BYTE (+61, 1byte)  poke st,61,値  /  値 = peek(st,61)
; MaxAdminHintSize : BYTE (+62, 1byte)  poke st,62,値  /  値 = peek(st,62)
; MaxUserPasswordSize : BYTE (+63, 1byte)  poke st,63,値  /  値 = peek(st,63)
; MinUserPasswordSize : BYTE (+64, 1byte)  poke st,64,値  /  値 = peek(st,64)
; MaxUserHintSize : BYTE (+65, 1byte)  poke st,65,値  /  値 = peek(st,65)
; MaxUserNameSize : BYTE (+66, 1byte)  poke st,66,値  /  値 = peek(st,66)
; MaxSiloNameSize : BYTE (+67, 1byte)  poke st,67,値  /  値 = peek(st,67)
; MaxChallengeSize : WORD (+68, 2byte)  wpoke st,68,値  /  値 = wpeek(st,68)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION
    #field byte CurrentAdminFailures
    #field byte CurrentUserFailures
    #field int TotalUserAuthenticationCount
    #field int TotalAdminAuthenticationCount
    #field bool FipsCompliant
    #field bool SecurityIDAvailable
    #field bool InitializeInProgress
    #field bool ITMSArmed
    #field bool ITMSArmable
    #field bool UserCreated
    #field bool ResetOnPORDefault
    #field bool ResetOnPORCurrent
    #field byte MaxAdminFailures
    #field byte MaxUserFailures
    #field int TimeToCompleteInitialization
    #field int TimeRemainingToCompleteInitialization
    #field int MinTimeToAuthenticate
    #field byte MaxAdminPasswordSize
    #field byte MinAdminPasswordSize
    #field byte MaxAdminHintSize
    #field byte MaxUserPasswordSize
    #field byte MinUserPasswordSize
    #field byte MaxUserHintSize
    #field byte MaxUserNameSize
    #field byte MaxSiloNameSize
    #field short MaxChallengeSize
#endstruct

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