ホーム › Storage.EnhancedStorage › ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION
ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| CurrentAdminFailures | BYTE | 1 | +0 | +0 | 現在の管理者認証連続失敗回数。 |
| CurrentUserFailures | BYTE | 1 | +1 | +1 | 現在のユーザー認証連続失敗回数。 |
| TotalUserAuthenticationCount | DWORD | 4 | +4 | +4 | ユーザー認証の累計試行回数。 |
| TotalAdminAuthenticationCount | DWORD | 4 | +8 | +8 | 管理者認証の累計試行回数。 |
| FipsCompliant | BOOL | 4 | +12 | +12 | FIPS準拠かを示すブール値。TRUEで準拠。 |
| SecurityIDAvailable | BOOL | 4 | +16 | +16 | セキュリティID(SID)が利用可能かを示すブール値。 |
| InitializeInProgress | BOOL | 4 | +20 | +20 | 初期化処理が進行中かを示すブール値。 |
| ITMSArmed | BOOL | 4 | +24 | +24 | ITMS(改竄防止機構)が有効化されているかを示すブール値。 |
| ITMSArmable | BOOL | 4 | +28 | +28 | ITMSを有効化可能かを示すブール値。 |
| UserCreated | BOOL | 4 | +32 | +32 | ユーザー資格情報が作成済みかを示すブール値。 |
| ResetOnPORDefault | BOOL | 4 | +36 | +36 | 電源投入リセット時の既定の初期化動作を示すブール値。 |
| ResetOnPORCurrent | BOOL | 4 | +40 | +40 | 電源投入リセット時の現在の初期化動作を示すブール値。 |
| MaxAdminFailures | BYTE | 1 | +44 | +44 | 管理者認証で許容される最大連続失敗回数。 |
| MaxUserFailures | BYTE | 1 | +45 | +45 | ユーザー認証で許容される最大連続失敗回数。 |
| TimeToCompleteInitialization | DWORD | 4 | +48 | +48 | 初期化完了に要する総時間。秒単位。 |
| TimeRemainingToCompleteInitialization | DWORD | 4 | +52 | +52 | 初期化完了までの残り時間。秒単位。 |
| MinTimeToAuthenticate | DWORD | 4 | +56 | +56 | 認証に最低限要する時間。秒単位。 |
| MaxAdminPasswordSize | BYTE | 1 | +60 | +60 | 管理者パスワードの最大文字数。 |
| MinAdminPasswordSize | BYTE | 1 | +61 | +61 | 管理者パスワードの最小文字数。 |
| MaxAdminHintSize | BYTE | 1 | +62 | +62 | 管理者パスワードヒントの最大文字数。 |
| MaxUserPasswordSize | BYTE | 1 | +63 | +63 | ユーザーパスワードの最大文字数。 |
| MinUserPasswordSize | BYTE | 1 | +64 | +64 | ユーザーパスワードの最小文字数。 |
| MaxUserHintSize | BYTE | 1 | +65 | +65 | ユーザーパスワードヒントの最大文字数。 |
| MaxUserNameSize | BYTE | 1 | +66 | +66 | ユーザー名の最大文字数。 |
| MaxSiloNameSize | BYTE | 1 | +67 | +67 | サイロ名の最大文字数。 |
| MaxChallengeSize | WORD | 2 | +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 Structureimport 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: uint16struct 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