Win32 API 日本語リファレンス
ホームNetworkManagement.Dhcp › DHCP_SERVER_CONFIG_INFO_V4

DHCP_SERVER_CONFIG_INFO_V4

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

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

フィールド

フィールドサイズx64x86説明
APIProtocolSupportDWORD4+0+0

DHCP サーバーがサポートする RPC プロトコルを含むビット フラグのセットを指定します。

意味
DHCP_SERVER_USE_RPC_OVER_TCPIP
0x00000001
DHCP API の RPC 呼び出しに TCP/IP を使用できます。
DHCP_SERVER_USE_RPC_OVER_NP
0x00000002
DHCP API の RPC 呼び出しに名前付きパイプを使用できます。
DHCP_SERVER_USE_RPC_OVER_LPC
0x00000004
ローカルの DHCP API の RPC 呼び出しにローカル プロシージャ コール (LPC) を使用できます。
DatabaseNameLPWSTR8/4+8+4クライアント リース JET データベースのファイル名を指定する Unicode 文字列です。
DatabasePathLPWSTR8/4+16+8DatabaseName への絶対パスを指定する Unicode 文字列です。
BackupPathLPWSTR8/4+24+12バックアップ用のクライアント リース JET データベースの絶対パスとファイル名を指定する Unicode 文字列です。
BackupIntervalDWORD4+32+16クライアント リース データベースのバックアップ間隔を分単位で指定します。
DatabaseLoggingFlagDWORD4+36+20

データベースの操作をログに記録するかどうかを示すビット フラグを指定します。

意味
0x00000001
すべてのデータベース操作がログに記録されます。
RestoreFlagDWORD4+40+24

データベースの復元操作を実行するかどうかを示すビット フラグを指定します。

意味
0x00000001
クライアント リース データベースは、BackupPath で指定されたパスとファイルから復元されます。
DatabaseCleanupIntervalDWORD4+44+28クライアント リース データベースに対して実行されるクリーンアップ操作の間隔を分単位で指定します。
DebugFlagDWORD4+48+32予約済みです。このフィールドは 0x00000000 に設定してください。
dwPingRetriesDWORD4+52+36応答しないクライアントを使用不可と判断するまでに ping を送信する回数を示す、0 以上 6 未満の値を指定します。
cbBootTableStringDWORD4+56+40wszBootTableString のサイズをバイト単位で指定します。
wszBootTableStringLPWSTR8/4+64+44DHCP サーバーのブート テーブル文字列を格納する Unicode 文字列です。?? 詳細情報が必要です。 ??
fAuditLogBOOL4+72+48DHCP サーバーで監査ログを有効にするかどうかを指定します。値が TRUE の場合は監査ログが生成され、FALSE の場合は監査ログは記録されません。

公式ドキュメント

DHCP_SERVER_CONFIG_INFO_V4 構造体は、DHCP サーバーの構成に使用されるデータを定義します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// DHCP_SERVER_CONFIG_INFO_V4  (x64 80 / x86 52 バイト)
typedef struct DHCP_SERVER_CONFIG_INFO_V4 {
    DWORD APIProtocolSupport;
    LPWSTR DatabaseName;
    LPWSTR DatabasePath;
    LPWSTR BackupPath;
    DWORD BackupInterval;
    DWORD DatabaseLoggingFlag;
    DWORD RestoreFlag;
    DWORD DatabaseCleanupInterval;
    DWORD DebugFlag;
    DWORD dwPingRetries;
    DWORD cbBootTableString;
    LPWSTR wszBootTableString;
    BOOL fAuditLog;
} DHCP_SERVER_CONFIG_INFO_V4;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DHCP_SERVER_CONFIG_INFO_V4
{
    public uint APIProtocolSupport;
    public IntPtr DatabaseName;
    public IntPtr DatabasePath;
    public IntPtr BackupPath;
    public uint BackupInterval;
    public uint DatabaseLoggingFlag;
    public uint RestoreFlag;
    public uint DatabaseCleanupInterval;
    public uint DebugFlag;
    public uint dwPingRetries;
    public uint cbBootTableString;
    public IntPtr wszBootTableString;
    [MarshalAs(UnmanagedType.Bool)] public bool fAuditLog;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DHCP_SERVER_CONFIG_INFO_V4
    Public APIProtocolSupport As UInteger
    Public DatabaseName As IntPtr
    Public DatabasePath As IntPtr
    Public BackupPath As IntPtr
    Public BackupInterval As UInteger
    Public DatabaseLoggingFlag As UInteger
    Public RestoreFlag As UInteger
    Public DatabaseCleanupInterval As UInteger
    Public DebugFlag As UInteger
    Public dwPingRetries As UInteger
    Public cbBootTableString As UInteger
    Public wszBootTableString As IntPtr
    <MarshalAs(UnmanagedType.Bool)> Public fAuditLog As Boolean
End Structure
import ctypes
from ctypes import wintypes

class DHCP_SERVER_CONFIG_INFO_V4(ctypes.Structure):
    _fields_ = [
        ("APIProtocolSupport", wintypes.DWORD),
        ("DatabaseName", ctypes.c_void_p),
        ("DatabasePath", ctypes.c_void_p),
        ("BackupPath", ctypes.c_void_p),
        ("BackupInterval", wintypes.DWORD),
        ("DatabaseLoggingFlag", wintypes.DWORD),
        ("RestoreFlag", wintypes.DWORD),
        ("DatabaseCleanupInterval", wintypes.DWORD),
        ("DebugFlag", wintypes.DWORD),
        ("dwPingRetries", wintypes.DWORD),
        ("cbBootTableString", wintypes.DWORD),
        ("wszBootTableString", ctypes.c_void_p),
        ("fAuditLog", wintypes.BOOL),
    ]
#[repr(C)]
pub struct DHCP_SERVER_CONFIG_INFO_V4 {
    pub APIProtocolSupport: u32,
    pub DatabaseName: *mut core::ffi::c_void,
    pub DatabasePath: *mut core::ffi::c_void,
    pub BackupPath: *mut core::ffi::c_void,
    pub BackupInterval: u32,
    pub DatabaseLoggingFlag: u32,
    pub RestoreFlag: u32,
    pub DatabaseCleanupInterval: u32,
    pub DebugFlag: u32,
    pub dwPingRetries: u32,
    pub cbBootTableString: u32,
    pub wszBootTableString: *mut core::ffi::c_void,
    pub fAuditLog: i32,
}
import "golang.org/x/sys/windows"

type DHCP_SERVER_CONFIG_INFO_V4 struct {
	APIProtocolSupport uint32
	DatabaseName uintptr
	DatabasePath uintptr
	BackupPath uintptr
	BackupInterval uint32
	DatabaseLoggingFlag uint32
	RestoreFlag uint32
	DatabaseCleanupInterval uint32
	DebugFlag uint32
	dwPingRetries uint32
	cbBootTableString uint32
	wszBootTableString uintptr
	fAuditLog int32
}
type
  DHCP_SERVER_CONFIG_INFO_V4 = record
    APIProtocolSupport: DWORD;
    DatabaseName: Pointer;
    DatabasePath: Pointer;
    BackupPath: Pointer;
    BackupInterval: DWORD;
    DatabaseLoggingFlag: DWORD;
    RestoreFlag: DWORD;
    DatabaseCleanupInterval: DWORD;
    DebugFlag: DWORD;
    dwPingRetries: DWORD;
    cbBootTableString: DWORD;
    wszBootTableString: Pointer;
    fAuditLog: BOOL;
  end;
const DHCP_SERVER_CONFIG_INFO_V4 = extern struct {
    APIProtocolSupport: u32,
    DatabaseName: ?*anyopaque,
    DatabasePath: ?*anyopaque,
    BackupPath: ?*anyopaque,
    BackupInterval: u32,
    DatabaseLoggingFlag: u32,
    RestoreFlag: u32,
    DatabaseCleanupInterval: u32,
    DebugFlag: u32,
    dwPingRetries: u32,
    cbBootTableString: u32,
    wszBootTableString: ?*anyopaque,
    fAuditLog: i32,
};
type
  DHCP_SERVER_CONFIG_INFO_V4 {.bycopy.} = object
    APIProtocolSupport: uint32
    DatabaseName: pointer
    DatabasePath: pointer
    BackupPath: pointer
    BackupInterval: uint32
    DatabaseLoggingFlag: uint32
    RestoreFlag: uint32
    DatabaseCleanupInterval: uint32
    DebugFlag: uint32
    dwPingRetries: uint32
    cbBootTableString: uint32
    wszBootTableString: pointer
    fAuditLog: int32
struct DHCP_SERVER_CONFIG_INFO_V4
{
    uint APIProtocolSupport;
    void* DatabaseName;
    void* DatabasePath;
    void* BackupPath;
    uint BackupInterval;
    uint DatabaseLoggingFlag;
    uint RestoreFlag;
    uint DatabaseCleanupInterval;
    uint DebugFlag;
    uint dwPingRetries;
    uint cbBootTableString;
    void* wszBootTableString;
    int fAuditLog;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DHCP_SERVER_CONFIG_INFO_V4 サイズ: 52 バイト(x86)
dim st, 13    ; 4byte整数×13(構造体サイズ 52 / 4 切り上げ)
; APIProtocolSupport : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; DatabaseName : LPWSTR (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; DatabasePath : LPWSTR (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; BackupPath : LPWSTR (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; BackupInterval : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; DatabaseLoggingFlag : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; RestoreFlag : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; DatabaseCleanupInterval : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; DebugFlag : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; dwPingRetries : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; cbBootTableString : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; wszBootTableString : LPWSTR (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; fAuditLog : BOOL (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DHCP_SERVER_CONFIG_INFO_V4 サイズ: 80 バイト(x64)
dim st, 20    ; 4byte整数×20(構造体サイズ 80 / 4 切り上げ)
; APIProtocolSupport : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; DatabaseName : LPWSTR (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; DatabasePath : LPWSTR (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; BackupPath : LPWSTR (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; BackupInterval : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; DatabaseLoggingFlag : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; RestoreFlag : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; DatabaseCleanupInterval : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; DebugFlag : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; dwPingRetries : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; cbBootTableString : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; wszBootTableString : LPWSTR (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; fAuditLog : BOOL (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DHCP_SERVER_CONFIG_INFO_V4
    #field int APIProtocolSupport
    #field intptr DatabaseName
    #field intptr DatabasePath
    #field intptr BackupPath
    #field int BackupInterval
    #field int DatabaseLoggingFlag
    #field int RestoreFlag
    #field int DatabaseCleanupInterval
    #field int DebugFlag
    #field int dwPingRetries
    #field int cbBootTableString
    #field intptr wszBootTableString
    #field bool fAuditLog
#endstruct

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