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

SERVER_INFO_502

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

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

フィールド

フィールドサイズx64x86説明
sv502_sessopensDWORD4+0+01セッションあたりに開けるファイル/デバイスの最大数を示す。
sv502_sessvcsDWORD4+4+41クライアントからの仮想回線(セッション)の最大数を示す。
sv502_opensearchDWORD4+8+8同時に開ける検索(ディレクトリ列挙)の最大数を示す。
sv502_sizreqbufDWORD4+12+12各リクエストバッファのサイズをバイトで示す。
sv502_initworkitemsDWORD4+16+16起動時に確保する受信ワークアイテムの初期数を示す。
sv502_maxworkitemsDWORD4+20+20確保可能な受信ワークアイテムの最大数を示す。
sv502_rawworkitemsDWORD4+24+24RAWモード用に確保するワークアイテムの数を示す。
sv502_irpstacksizeDWORD4+28+28サーバーが割り当てるIRPスタックの段数を示す。
sv502_maxrawbuflenDWORD4+32+32RAW I/Oで使用する最大バッファ長をバイトで示す。
sv502_sessusersDWORD4+36+36サーバーに同時ログオンできるユーザーの最大数を示す。
sv502_sessconnsDWORD4+40+401セッションあたりの接続(ツリー)最大数を示す。
sv502_maxpagedmemoryusageDWORD4+44+44サーバーが使用できるページプールメモリの最大バイト数を示す。
sv502_maxnonpagedmemoryusageDWORD4+48+48サーバーが使用できる非ページプールメモリの最大バイト数を示す。
sv502_enablesoftcompatBOOL4+52+52ソフト互換(SHARE.EXE互換)モードを有効にするかを示すブール値。
sv502_enableforcedlogoffBOOL4+56+56時間外ユーザーの強制ログオフを有効にするかを示すブール値。
sv502_timesourceBOOL4+60+60このサーバーを信頼できる時刻源として通知するかを示すブール値。
sv502_acceptdownlevelapisBOOL4+64+64旧バージョンクライアントからのAPI要求を受け入れるかを示すブール値。
sv502_lmannounceBOOL4+68+68LAN Managerクライアント向けの存在通知を行うかを示すブール値。

各言語での定義

#include <windows.h>

// SERVER_INFO_502  (x64 72 / x86 72 バイト)
typedef struct SERVER_INFO_502 {
    DWORD sv502_sessopens;
    DWORD sv502_sessvcs;
    DWORD sv502_opensearch;
    DWORD sv502_sizreqbuf;
    DWORD sv502_initworkitems;
    DWORD sv502_maxworkitems;
    DWORD sv502_rawworkitems;
    DWORD sv502_irpstacksize;
    DWORD sv502_maxrawbuflen;
    DWORD sv502_sessusers;
    DWORD sv502_sessconns;
    DWORD sv502_maxpagedmemoryusage;
    DWORD sv502_maxnonpagedmemoryusage;
    BOOL sv502_enablesoftcompat;
    BOOL sv502_enableforcedlogoff;
    BOOL sv502_timesource;
    BOOL sv502_acceptdownlevelapis;
    BOOL sv502_lmannounce;
} SERVER_INFO_502;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct SERVER_INFO_502
{
    public uint sv502_sessopens;
    public uint sv502_sessvcs;
    public uint sv502_opensearch;
    public uint sv502_sizreqbuf;
    public uint sv502_initworkitems;
    public uint sv502_maxworkitems;
    public uint sv502_rawworkitems;
    public uint sv502_irpstacksize;
    public uint sv502_maxrawbuflen;
    public uint sv502_sessusers;
    public uint sv502_sessconns;
    public uint sv502_maxpagedmemoryusage;
    public uint sv502_maxnonpagedmemoryusage;
    [MarshalAs(UnmanagedType.Bool)] public bool sv502_enablesoftcompat;
    [MarshalAs(UnmanagedType.Bool)] public bool sv502_enableforcedlogoff;
    [MarshalAs(UnmanagedType.Bool)] public bool sv502_timesource;
    [MarshalAs(UnmanagedType.Bool)] public bool sv502_acceptdownlevelapis;
    [MarshalAs(UnmanagedType.Bool)] public bool sv502_lmannounce;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure SERVER_INFO_502
    Public sv502_sessopens As UInteger
    Public sv502_sessvcs As UInteger
    Public sv502_opensearch As UInteger
    Public sv502_sizreqbuf As UInteger
    Public sv502_initworkitems As UInteger
    Public sv502_maxworkitems As UInteger
    Public sv502_rawworkitems As UInteger
    Public sv502_irpstacksize As UInteger
    Public sv502_maxrawbuflen As UInteger
    Public sv502_sessusers As UInteger
    Public sv502_sessconns As UInteger
    Public sv502_maxpagedmemoryusage As UInteger
    Public sv502_maxnonpagedmemoryusage As UInteger
    <MarshalAs(UnmanagedType.Bool)> Public sv502_enablesoftcompat As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public sv502_enableforcedlogoff As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public sv502_timesource As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public sv502_acceptdownlevelapis As Boolean
    <MarshalAs(UnmanagedType.Bool)> Public sv502_lmannounce As Boolean
End Structure
import ctypes
from ctypes import wintypes

class SERVER_INFO_502(ctypes.Structure):
    _fields_ = [
        ("sv502_sessopens", wintypes.DWORD),
        ("sv502_sessvcs", wintypes.DWORD),
        ("sv502_opensearch", wintypes.DWORD),
        ("sv502_sizreqbuf", wintypes.DWORD),
        ("sv502_initworkitems", wintypes.DWORD),
        ("sv502_maxworkitems", wintypes.DWORD),
        ("sv502_rawworkitems", wintypes.DWORD),
        ("sv502_irpstacksize", wintypes.DWORD),
        ("sv502_maxrawbuflen", wintypes.DWORD),
        ("sv502_sessusers", wintypes.DWORD),
        ("sv502_sessconns", wintypes.DWORD),
        ("sv502_maxpagedmemoryusage", wintypes.DWORD),
        ("sv502_maxnonpagedmemoryusage", wintypes.DWORD),
        ("sv502_enablesoftcompat", wintypes.BOOL),
        ("sv502_enableforcedlogoff", wintypes.BOOL),
        ("sv502_timesource", wintypes.BOOL),
        ("sv502_acceptdownlevelapis", wintypes.BOOL),
        ("sv502_lmannounce", wintypes.BOOL),
    ]
#[repr(C)]
pub struct SERVER_INFO_502 {
    pub sv502_sessopens: u32,
    pub sv502_sessvcs: u32,
    pub sv502_opensearch: u32,
    pub sv502_sizreqbuf: u32,
    pub sv502_initworkitems: u32,
    pub sv502_maxworkitems: u32,
    pub sv502_rawworkitems: u32,
    pub sv502_irpstacksize: u32,
    pub sv502_maxrawbuflen: u32,
    pub sv502_sessusers: u32,
    pub sv502_sessconns: u32,
    pub sv502_maxpagedmemoryusage: u32,
    pub sv502_maxnonpagedmemoryusage: u32,
    pub sv502_enablesoftcompat: i32,
    pub sv502_enableforcedlogoff: i32,
    pub sv502_timesource: i32,
    pub sv502_acceptdownlevelapis: i32,
    pub sv502_lmannounce: i32,
}
import "golang.org/x/sys/windows"

type SERVER_INFO_502 struct {
	sv502_sessopens uint32
	sv502_sessvcs uint32
	sv502_opensearch uint32
	sv502_sizreqbuf uint32
	sv502_initworkitems uint32
	sv502_maxworkitems uint32
	sv502_rawworkitems uint32
	sv502_irpstacksize uint32
	sv502_maxrawbuflen uint32
	sv502_sessusers uint32
	sv502_sessconns uint32
	sv502_maxpagedmemoryusage uint32
	sv502_maxnonpagedmemoryusage uint32
	sv502_enablesoftcompat int32
	sv502_enableforcedlogoff int32
	sv502_timesource int32
	sv502_acceptdownlevelapis int32
	sv502_lmannounce int32
}
type
  SERVER_INFO_502 = record
    sv502_sessopens: DWORD;
    sv502_sessvcs: DWORD;
    sv502_opensearch: DWORD;
    sv502_sizreqbuf: DWORD;
    sv502_initworkitems: DWORD;
    sv502_maxworkitems: DWORD;
    sv502_rawworkitems: DWORD;
    sv502_irpstacksize: DWORD;
    sv502_maxrawbuflen: DWORD;
    sv502_sessusers: DWORD;
    sv502_sessconns: DWORD;
    sv502_maxpagedmemoryusage: DWORD;
    sv502_maxnonpagedmemoryusage: DWORD;
    sv502_enablesoftcompat: BOOL;
    sv502_enableforcedlogoff: BOOL;
    sv502_timesource: BOOL;
    sv502_acceptdownlevelapis: BOOL;
    sv502_lmannounce: BOOL;
  end;
const SERVER_INFO_502 = extern struct {
    sv502_sessopens: u32,
    sv502_sessvcs: u32,
    sv502_opensearch: u32,
    sv502_sizreqbuf: u32,
    sv502_initworkitems: u32,
    sv502_maxworkitems: u32,
    sv502_rawworkitems: u32,
    sv502_irpstacksize: u32,
    sv502_maxrawbuflen: u32,
    sv502_sessusers: u32,
    sv502_sessconns: u32,
    sv502_maxpagedmemoryusage: u32,
    sv502_maxnonpagedmemoryusage: u32,
    sv502_enablesoftcompat: i32,
    sv502_enableforcedlogoff: i32,
    sv502_timesource: i32,
    sv502_acceptdownlevelapis: i32,
    sv502_lmannounce: i32,
};
type
  SERVER_INFO_502 {.bycopy.} = object
    sv502_sessopens: uint32
    sv502_sessvcs: uint32
    sv502_opensearch: uint32
    sv502_sizreqbuf: uint32
    sv502_initworkitems: uint32
    sv502_maxworkitems: uint32
    sv502_rawworkitems: uint32
    sv502_irpstacksize: uint32
    sv502_maxrawbuflen: uint32
    sv502_sessusers: uint32
    sv502_sessconns: uint32
    sv502_maxpagedmemoryusage: uint32
    sv502_maxnonpagedmemoryusage: uint32
    sv502_enablesoftcompat: int32
    sv502_enableforcedlogoff: int32
    sv502_timesource: int32
    sv502_acceptdownlevelapis: int32
    sv502_lmannounce: int32
struct SERVER_INFO_502
{
    uint sv502_sessopens;
    uint sv502_sessvcs;
    uint sv502_opensearch;
    uint sv502_sizreqbuf;
    uint sv502_initworkitems;
    uint sv502_maxworkitems;
    uint sv502_rawworkitems;
    uint sv502_irpstacksize;
    uint sv502_maxrawbuflen;
    uint sv502_sessusers;
    uint sv502_sessconns;
    uint sv502_maxpagedmemoryusage;
    uint sv502_maxnonpagedmemoryusage;
    int sv502_enablesoftcompat;
    int sv502_enableforcedlogoff;
    int sv502_timesource;
    int sv502_acceptdownlevelapis;
    int sv502_lmannounce;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; SERVER_INFO_502 サイズ: 72 バイト(x64)
dim st, 18    ; 4byte整数×18(構造体サイズ 72 / 4 切り上げ)
; sv502_sessopens : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; sv502_sessvcs : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; sv502_opensearch : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; sv502_sizreqbuf : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; sv502_initworkitems : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; sv502_maxworkitems : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; sv502_rawworkitems : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; sv502_irpstacksize : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; sv502_maxrawbuflen : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; sv502_sessusers : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; sv502_sessconns : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; sv502_maxpagedmemoryusage : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; sv502_maxnonpagedmemoryusage : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; sv502_enablesoftcompat : BOOL (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; sv502_enableforcedlogoff : BOOL (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; sv502_timesource : BOOL (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; sv502_acceptdownlevelapis : BOOL (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; sv502_lmannounce : BOOL (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global SERVER_INFO_502
    #field int sv502_sessopens
    #field int sv502_sessvcs
    #field int sv502_opensearch
    #field int sv502_sizreqbuf
    #field int sv502_initworkitems
    #field int sv502_maxworkitems
    #field int sv502_rawworkitems
    #field int sv502_irpstacksize
    #field int sv502_maxrawbuflen
    #field int sv502_sessusers
    #field int sv502_sessconns
    #field int sv502_maxpagedmemoryusage
    #field int sv502_maxnonpagedmemoryusage
    #field bool sv502_enablesoftcompat
    #field bool sv502_enableforcedlogoff
    #field bool sv502_timesource
    #field bool sv502_acceptdownlevelapis
    #field bool sv502_lmannounce
#endstruct

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