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

DHCP_SERVER_CONFIG_INFO_VQ

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

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

フィールド

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

DHCP サーバーが RPC に登録する際に使用する RPC プロトコルの種類を定義する整数値です。サポートされる種類は次のとおりで、ビット単位の OR で組み合わせて有効な値を作成できます。

意味
DHCP_SERVER_USE_RPC_OVER_TCPIP
0x00000001
DHCP サーバーは登録に TCP 上の RPC プロトコルを使用します。
DHCP_SERVER_USE_RPC_OVER_NP
0x00000002
DHCP サーバーは登録に名前付きパイプ上の RPC プロトコルを使用します。<8>
DHCP_SERVER_USE_RPC_OVER_LPC
0x00000004
DHCP サーバーは登録に LPC 上の RPC プロトコルを使用します。<9>
DHCP_SERVER_USE_RPC_OVER_ALL
0x00000007
DHCP サーバーは上記のすべてのプロトコルをサポートします。
DatabaseNameLPWSTR8/4+8+4DHCP サーバーが永続的な記憶域として使用する DHCP サーバーデータベース名を表す、NULL 終端の Unicode 文字列へのポインターです。
DatabasePathLPWSTR8/4+16+8DHCP サーバーデータベースが格納される絶対パスを含む、NULL 終端の Unicode 文字列へのポインターです。
BackupPathLPWSTR8/4+24+12DHCP サーバーがバックアップに使用するバックアップ記憶域の絶対パスを含む、NULL 終端の Unicode 文字列へのポインターです。
BackupIntervalDWORD4+32+16DHCP サーバーデータベースのバックアップ間隔を分単位で指定する整数値です。
DatabaseLoggingFlagDWORD4+36+20DHCP サーバーのトランザクションログモードを示す整数値です。値 1 は DHCP サーバーでトランザクションログが有効であることを示し、0 は DHCP サーバーでトランザクションログが無効であることを示します。
RestoreFlagDWORD4+40+24BOOL フラグとして使用される整数値です。この設定が TRUE (1) の場合、DHCP サービスは起動時にバックアップデータベースから DHCP データベースを読み込みます。このフラグの既定値は FALSE (0) です。
DatabaseCleanupIntervalDWORD4+44+28DOOMED 状態の IPv4 DHCP クライアントレコードが DHCP サーバーデータベース内に保持されることを許容される最大の時間間隔を指定する整数値です。
DebugFlagDWORD4+48+32

DHCP サーバーが行うログ記録のレベルを指定する整数のフラグ値です。次の表に、使用できる値のセットを示します。'0xFFFFFFFF' を指定すると、すべての種類のログ記録が有効になります。

低頻度のデバッグ出力用の LOW WORD ビットマスク (0x0000FFFF) です。

意味
DEBUG_ADDRESS
0x00000001
IP アドレス関連のログ記録を有効にします。
DEBUG_CLIENT
0x00000002
DHCP クライアント API 関連のログ記録を有効にします。
DEBUG_PARAMETERS
0x00000004
DHCP サーバーパラメーター関連のログ記録を有効にします。
DEBUG_OPTIONS
0x00000008
DHCP オプション関連のログ記録を有効にします。
DEBUG_ERRORS
0x00000010
DHCP エラー関連のログ記録を有効にします。
DEBUG_STOC
0x00000020
DHCPv4 および DHCPv6 のプロトコルエラー関連のログ記録を有効にします。
DEBUG_INIT
0x00000040
DHCP サーバーの初期化関連のログ記録を有効にします。
DEBUG_SCAVENGER
0x00000080
スカベンジャーのエラー関連のログ記録を有効にします。
DEBUG_TIMESTAMP
0x00000100
タイミングエラー関連のログ記録を有効にします。
DEBUG_APIS
0x00000200
DHCP API 関連のログ記録を有効にします。
DEBUG_REGISTRY
0x00000400
レジストリ設定操作に起因するエラーのログ記録を有効にします。
DEBUG_JET
0x00000800
DHCP サーバーデータベースのエラーのログ記録を有効にします。
DEBUG_THREADPOOL
0x00001000
スレッドプール操作の実行に関連するログ記録を有効にします。
DEBUG_AUDITLOG
0x00002000
監査ログ操作に起因するエラーに関連するログ記録を有効にします。
DEBUG_QUARANTINE
0x00004000
検疫エラーに起因するエラーのログ記録を有効にします。
DEBUG_MISC
0x00008000
その他のエラーに起因するログ記録を有効にします。

高頻度のデバッグ出力 (より詳細な出力) 用の HIGH WORD ビットマスク (0xFFFF0000) です。

意味
DEBUG_MESSAGE
0x00010000
デバッグメッセージに関連するログ記録を有効にします。
DEBUG_API_VERBOSE
0x00020000
DHCP API の詳細なエラーに関連するログ記録を有効にします。
DEBUG_DNS
0x00040000
DNS メッセージに関連するログ記録を有効にします。
DEBUG_MSTOC
0x00080000
マルチキャストプロトコル層のエラーに関連するログ記録を有効にします。
DEBUG_TRACK
0x00100000
特定の問題を追跡するログ記録を有効にします。
DEBUG_ROGUE
0x00200000
不正な (ROGUE) DHCP サーバーに関連するログ記録を有効にします。
DEBUG_PNP
0x00400000
PNP インターフェイスのエラーに関連するログ記録を有効にします。
DEBUG_PERF
0x01000000
パフォーマンス関連のメッセージのログ記録を有効にします。
DEBUG_ALLOC
0x02000000
メモリの割り当ておよび解放に関連するメッセージのログ記録を有効にします。
DEBUG_PING
0x04000000
同期 ping 関連のメッセージのログ記録を有効にします。
DEBUG_THREAD
0x08000000
スレッド関連のメッセージのログ記録を有効にします。
DEBUG_TRACE
0x10000000
コードをトレースするメッセージのログ記録を有効にします。
DEBUG_TRACE_CALLS
0x20000000
大量のコードをトレースするためのログ記録を有効にします。
DEBUG_STARTUP_BRK
0x40000000
セットアップ時のデバッガーブレークに関するメッセージのログ記録を有効にします。
DEBUG_LOG_IN_FILE
0x80000000
デバッグ出力のファイルへのログ記録を有効にします。
dwPingRetriesDWORD4+52+36DHCP クライアントにアドレスを発行する前に、そのアドレスが既にいずれかのクライアントによって使用されていないかを ping を発行して確認するために、DHCP サーバーが実行できる再試行回数を指定する整数値です (有効範囲: 0–5、両端を含む)。
cbBootTableStringDWORD4+56+40DHCP クライアントに渡される BOOT TABLE のサイズを含む整数値です。
wszBootTableStringLPWSTR8/4+64+44BOOTP クライアントに渡される BOOTP TABLE の絶対パスを含む、NULL 終端の Unicode 文字列へのポインターです。
fAuditLogBOOL4+72+48TRUE の場合、DHCP サーバーは監査ログを書き込みます。FALSE の場合は書き込みません。
QuarantineOnBOOL4+76+52TRUE の場合、DHCP サーバーで検疫が有効になっています。FALSE の場合は無効になっています。
QuarDefFailDWORD4+80+56NPS サーバーに到達できない場合の DHCP NAP サーバーの既定のポリシーを決定する整数値です。選択肢には、検疫 (Quarantine)、無制限 (unrestricted)、要求の破棄 (Drop Request) があります。
QuarRuntimeStatusBOOL4+84+60TRUE の場合、DHCP サーバーで NAP が有効になっています。FALSE の場合は無効になっています。

公式ドキュメント

DHCP_SERVER_CONFIG_INFO_VQ 構造体は、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_VQ  (x64 88 / x86 64 バイト)
typedef struct DHCP_SERVER_CONFIG_INFO_VQ {
    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;
    BOOL QuarantineOn;
    DWORD QuarDefFail;
    BOOL QuarRuntimeStatus;
} DHCP_SERVER_CONFIG_INFO_VQ;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DHCP_SERVER_CONFIG_INFO_VQ
{
    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;
    [MarshalAs(UnmanagedType.Bool)] public bool QuarantineOn;
    public uint QuarDefFail;
    [MarshalAs(UnmanagedType.Bool)] public bool QuarRuntimeStatus;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DHCP_SERVER_CONFIG_INFO_VQ
    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
    <MarshalAs(UnmanagedType.Bool)> Public QuarantineOn As Boolean
    Public QuarDefFail As UInteger
    <MarshalAs(UnmanagedType.Bool)> Public QuarRuntimeStatus As Boolean
End Structure
import ctypes
from ctypes import wintypes

class DHCP_SERVER_CONFIG_INFO_VQ(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),
        ("QuarantineOn", wintypes.BOOL),
        ("QuarDefFail", wintypes.DWORD),
        ("QuarRuntimeStatus", wintypes.BOOL),
    ]
#[repr(C)]
pub struct DHCP_SERVER_CONFIG_INFO_VQ {
    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,
    pub QuarantineOn: i32,
    pub QuarDefFail: u32,
    pub QuarRuntimeStatus: i32,
}
import "golang.org/x/sys/windows"

type DHCP_SERVER_CONFIG_INFO_VQ 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
	QuarantineOn int32
	QuarDefFail uint32
	QuarRuntimeStatus int32
}
type
  DHCP_SERVER_CONFIG_INFO_VQ = 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;
    QuarantineOn: BOOL;
    QuarDefFail: DWORD;
    QuarRuntimeStatus: BOOL;
  end;
const DHCP_SERVER_CONFIG_INFO_VQ = 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,
    QuarantineOn: i32,
    QuarDefFail: u32,
    QuarRuntimeStatus: i32,
};
type
  DHCP_SERVER_CONFIG_INFO_VQ {.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
    QuarantineOn: int32
    QuarDefFail: uint32
    QuarRuntimeStatus: int32
struct DHCP_SERVER_CONFIG_INFO_VQ
{
    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;
    int QuarantineOn;
    uint QuarDefFail;
    int QuarRuntimeStatus;
}

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_VQ サイズ: 64 バイト(x86)
dim st, 16    ; 4byte整数×16(構造体サイズ 64 / 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 も可)
; QuarantineOn : BOOL (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; QuarDefFail : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; QuarRuntimeStatus : BOOL (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DHCP_SERVER_CONFIG_INFO_VQ サイズ: 88 バイト(x64)
dim st, 22    ; 4byte整数×22(構造体サイズ 88 / 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 も可)
; QuarantineOn : BOOL (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; QuarDefFail : DWORD (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; QuarRuntimeStatus : BOOL (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DHCP_SERVER_CONFIG_INFO_VQ
    #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
    #field bool QuarantineOn
    #field int QuarDefFail
    #field bool QuarRuntimeStatus
#endstruct

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