ホーム › 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 | 管理者パスワードを使用した認証が連続して失敗している現在の回数です。認証に成功すると、この値は 0 にリセットされます。 |
| CurrentUserFailures | BYTE | 1 | +1 | +1 | ユーザーパスワードを使用した認証が連続して失敗している現在の回数です。認証に成功すると、この値は 0 にリセットされます。 |
| TotalUserAuthenticationCount | DWORD | 4 | +4 | +4 | このサイロに対してユーザーパスワードを使用して試行された認証の総回数です。 |
| TotalAdminAuthenticationCount | DWORD | 4 | +8 | +8 | このサイロに対して管理者パスワードを使用して試行された認証の総回数です。 |
| FipsCompliant | BOOL | 4 | +12 | +12 | サイロが連邦情報処理標準 (FIPS) への準拠を表明している場合は TRUE、それ以外の場合は FALSE です。 |
| SecurityIDAvailable | BOOL | 4 | +16 | +16 | 製造元が提供するデバイス固有のセキュリティ識別子が利用可能な場合は TRUE、それ以外の場合は FALSE です。 |
| InitializeInProgress | BOOL | 4 | +20 | +20 | 初期化が進行中の場合は TRUE、それ以外の場合は FALSE です。 |
| ITMSArmed | BOOL | 4 | +24 | +24 | サイロが製造元によって設定された既定の状態への初期化に備えるよう設定されている場合は TRUE、それ以外の場合は FALSE です。 |
| ITMSArmable | BOOL | 4 | +28 | +28 | サイロが製造元によって設定された既定の状態に初期化できる場合は TRUE、それ以外の場合は FALSE です。 |
| UserCreated | BOOL | 4 | +32 | +32 | パスワードサイロ内にユーザーアカウントが作成されている場合は TRUE、それ以外の場合は FALSE です。 |
| ResetOnPORDefault | BOOL | 4 | +36 | +36 | サイロが電源の再投入時に管理者の認証失敗回数を 0 にリセットする場合は TRUE です。これはサイロの既定の動作です。 FALSE の場合、サイロは電源の再投入時に管理者の認証失敗回数を 0 にリセットしません。 |
| ResetOnPORCurrent | BOOL | 4 | +40 | +40 | サイロが現在、電源の再投入時に管理者の認証失敗回数を 0 にリセットするよう設定されている場合は TRUE、それ以外の場合は FALSE です。 この構成は、ホストによる変更や工場出荷時の既定設定の適用によって影響を受けます。 |
| MaxAdminFailures | BYTE | 1 | +44 | +44 | サイロが管理者をブロックするまでに許容する、管理者パスワードを使用した連続した認証失敗の最大回数です。 |
| MaxUserFailures | BYTE | 1 | +45 | +45 | サイロがユーザーをブロックするまでに許容する、ユーザーパスワードを使用した連続した認証失敗の最大回数です。 |
| TimeToCompleteInitialization | DWORD | 4 | +48 | +48 | デバイスが製造時状態への初期化機能を完了するまでの推定時間 (ミリ秒単位) です。 |
| TimeRemainingToCompleteInitialization | DWORD | 4 | +52 | +52 | サイロが製造時状態への初期化機能を完了するまでの残り時間 (ミリ秒単位) です。サイロが現在初期化処理中でない場合、このフィールドの値は 0 です。 |
| 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 | デバイスがチャレンジとしてサポートする最大バイト数です。 |
公式ドキュメント
ENHANCED_STORAGE_PASSWORD_SILO_INFORMATION 構造体は、パスワードサイロの機能と要件を定義するデータを格納します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#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