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+4クライアント 1 つあたりに許可される仮想回線の最大数です。
sv502_opensearchDWORD4+8+8同時に実行できる検索操作の数です。
sv502_sizreqbufDWORD4+12+12各サーバーバッファーのサイズ (バイト単位) です。
sv502_initworkitemsDWORD4+16+16サーバーが使用する受信バッファー (ワークアイテム) の初期数です。
sv502_maxworkitemsDWORD4+20+20サーバーが割り当てることができる受信バッファー (ワークアイテム) の最大数です。この上限に達した場合、トランスポートはフロー制御を開始する必要があり、パフォーマンスが大幅に低下します。
sv502_rawworkitemsDWORD4+24+24サーバーが raw モードの I/O に使用する特別なワークアイテムの数です。このメンバーに大きな値を指定するとパフォーマンスが向上する場合がありますが、より多くのメモリが必要になります。
sv502_irpstacksizeDWORD4+28+28サーバーが I/O 要求パケット (IRP) 内に割り当てたスタックロケーションの数です。
sv502_maxrawbuflenDWORD4+32+32raw モードのバッファーの最大サイズ (バイト単位) です。
sv502_sessusersDWORD4+36+36単一の仮想回線を使用してサーバーにログオンできるユーザーの最大数です。
sv502_sessconnsDWORD4+40+40単一の仮想回線を使用してサーバー上で確立できるツリー接続の最大数です。
sv502_maxpagedmemoryusageDWORD4+44+44サーバーが一度に割り当てることができるページング可能メモリの最大サイズ (バイト単位) です。
sv502_maxnonpagedmemoryusageDWORD4+48+48サーバーが一度に割り当てることができる非ページメモリの最大サイズ (バイト単位) です。
sv502_enablesoftcompatBOOL4+52+52読み取りアクセスを伴う互換オープン要求をサーバーが受信したときに、その要求を共有読み取りアクセスの通常のオープン要求にマップするかどうかを示す値です。このような要求をマップすると、複数の MS-DOS コンピューターが 1 つのファイルを読み取りアクセスで開くことができます。
sv502_enableforcedlogoffBOOL4+56+56クライアントのログオン時間が経過したときに、クライアントがファイルを開いたままであっても、サーバーがそのクライアントを強制的に切断するかどうかを示す値です。
sv502_timesourceBOOL4+60+60サーバーが信頼できる時刻ソースであるかどうかを示す値です。
sv502_acceptdownlevelapisBOOL4+64+64旧世代の LAN Manager クライアントからの関数呼び出しをサーバーが受け付けるかどうかを示す値です。
sv502_lmannounceBOOL4+68+68サーバーが LAN Manager 2.x クライアントから参照可能かどうかを示す値です。

公式ドキュメント

            <b>SERVER_INFO_502</b> 構造体は廃止されています。この構造体は、指定されたサーバーに関する情報を格納します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#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