ホーム › NetworkManagement.NetManagement › SERVER_INFO_503
SERVER_INFO_503
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| sv503_sessopens | DWORD | 4 | +0 | +0 | 1 つのセッションで開くことができるファイルの数。 |
| sv503_sessvcs | DWORD | 4 | +4 | +4 | クライアントごとに許可されるセッションまたは仮想回線の最大数。 |
| sv503_opensearch | DWORD | 4 | +8 | +8 | 同時に実行できる検索操作の数。 |
| sv503_sizreqbuf | DWORD | 4 | +12 | +12 | 各サーバーバッファーのサイズ (バイト単位)。 |
| sv503_initworkitems | DWORD | 4 | +16 | +16 | サーバーが使用する受信バッファー (ワーク項目) の初期数。 |
| sv503_maxworkitems | DWORD | 4 | +20 | +20 | サーバーが割り当てることができる受信バッファー (ワーク項目) の最大数。この上限に達すると、トランスポートはフロー制御を開始しなければならず、パフォーマンスが大幅に低下します。 |
| sv503_rawworkitems | DWORD | 4 | +24 | +24 | サーバーが raw モードの I/O に使用する特別なワーク項目の数。このメンバーの値を大きくするとパフォーマンスが向上する可能性がありますが、より多くのメモリが必要になります。 |
| sv503_irpstacksize | DWORD | 4 | +28 | +28 | サーバーが I/O 要求パケット (IRP) 内に割り当てたスタック位置の数。 |
| sv503_maxrawbuflen | DWORD | 4 | +32 | +32 | raw モードバッファーの最大サイズ (バイト単位)。 |
| sv503_sessusers | DWORD | 4 | +36 | +36 | 単一のセッションまたは仮想回線を使用してサーバーにログオンできるユーザーの最大数。 |
| sv503_sessconns | DWORD | 4 | +40 | +40 | 単一のセッションまたは仮想回線を使用してサーバー上で確立できるツリー接続の最大数。 |
| sv503_maxpagedmemoryusage | DWORD | 4 | +44 | +44 | サーバーが一度に割り当てることができるページング可能メモリの最大サイズ (バイト単位)。 |
| sv503_maxnonpagedmemoryusage | DWORD | 4 | +48 | +48 | サーバーが使用できる非ページプールメモリの最大バイト数を示す。 |
| sv503_enablesoftcompat | BOOL | 4 | +52 | +52 | 読み取りアクセスを伴う互換性オープン要求をサーバーが受け取ったときに、その要求を共有読み取りアクセスの通常のオープン要求にマップするかどうかを示す値。このようにマップすることで、複数の MS-DOS コンピューターが 1 つのファイルを読み取りアクセスで開くことができます。このメンバーは使用されていません。 |
| sv503_enableforcedlogoff | BOOL | 4 | +56 | +56 | クライアントのログオン時間が経過した際に、クライアントがファイルを開いたままであってもサーバーが強制的に切断させるかどうかを示す値。 |
| sv503_timesource | BOOL | 4 | +60 | +60 | サーバーが信頼できる時刻ソースであるかどうかを示す値。 |
| sv503_acceptdownlevelapis | BOOL | 4 | +64 | +64 | サーバーが旧世代の LAN Manager クライアントからの関数呼び出しを受け入れるかどうかを示す値。 |
| sv503_lmannounce | BOOL | 4 | +68 | +68 | サーバーが LAN Manager 2.x クライアントから参照できるかどうかを示す値。 |
| sv503_domain | LPWSTR | 8/4 | +72 | +72 | サーバーのドメイン名を指定する Unicode 文字列へのポインター。 |
| sv503_maxcopyreadlen | DWORD | 4 | +80 | +76 | サーバー上のコピー読み取りの最大長 (バイト単位)。 このメンバーは使用されていません。 |
| sv503_maxcopywritelen | DWORD | 4 | +84 | +80 | サーバー上のコピー書き込みの最大長 (バイト単位)。 このメンバーは使用されていません。 |
| sv503_minkeepsearch | DWORD | 4 | +88 | +84 | 未完了の検索操作に関する情報をサーバーが保持する最小時間。このメンバーは使用されていません。 |
| sv503_maxkeepsearch | DWORD | 4 | +92 | +88 | 未完了の検索操作に関する情報をサーバーが保持する最大時間 (秒単位)。 |
| sv503_minkeepcomplsearch | DWORD | 4 | +96 | +92 | 完了した検索操作に関する情報をサーバーが保持する最小時間 (秒単位)。このメンバーは使用されていません。 |
| sv503_maxkeepcomplsearch | DWORD | 4 | +100 | +96 | 完了した検索操作に関する情報をサーバーが保持する最大時間 (秒単位)。このメンバーは使用されていません。 |
| sv503_threadcountadd | DWORD | 4 | +104 | +100 | サーバーが既に使用しているプロセッサーごとの 1 つのワーカースレッドに加えて、追加で使用するスレッドの数。このメンバーは使用されていません。 |
| sv503_numblockthreads | DWORD | 4 | +108 | +104 | スレッドを長時間ブロックする可能性のある要求を処理するために、サーバーが確保しておくスレッドの数。このメンバーは使用されていません。 |
| sv503_scavtimeout | DWORD | 4 | +112 | +108 | スカベンジャーが要求を処理するために起動するまでアイドル状態を維持する時間 (秒単位)。 |
| sv503_minrcvqueue | DWORD | 4 | +116 | +112 | サーバーが追加の割り当てを開始する前に必要とする、空き受信ワーク項目の最小数。 |
| sv503_minfreeworkitems | DWORD | 4 | +120 | +116 | サーバーがサーバーメッセージブロックの処理を開始するために必要とする、利用可能な受信ワーク項目の最小数。 |
| sv503_xactmemsize | DWORD | 4 | +124 | +120 | サーバー関数の処理に使用される共有メモリ領域のサイズ (バイト単位)。 |
| sv503_threadpriority | DWORD | 4 | +128 | +124 | プロセスの基本優先度を基準とした、すべてのサーバースレッドの優先度。 |
| sv503_maxmpxct | DWORD | 4 | +132 | +128 | 1 つのクライアントがサーバーに送信できる未処理の要求の最大数。たとえば 10 の場合、サーバーに対して応答待ちの要求を 10 個保持できます。1 つのクライアントがサーバー内に 10 個の要求をキューイングした場合、そのクライアントは次の要求を送信する前にサーバーの応答を待つ必要があります。 |
| sv503_oplockbreakwait | DWORD | 4 | +136 | +132 | 便宜的ロック (oplock) の解除要求がタイムアウトするまでの待機時間 (秒単位)。 |
| sv503_oplockbreakresponsewait | DWORD | 4 | +140 | +136 | サーバーからの oplock 解除要求に対してクライアントが応答するのをサーバーが待機する時間 (秒単位)。 |
| sv503_enableoplocks | BOOL | 4 | +144 | +140 | サーバーがクライアントによるファイルへの便宜的ロックの使用を許可するかどうかを示す値。便宜的ロックはパフォーマンスを大幅に向上させますが、一部のネットワーク、特にワイドエリアネットワークでは、キャッシュされたデータが失われる可能性があります。 |
| sv503_enableoplockforceclose | BOOL | 4 | +148 | +144 | クライアントが便宜的ロック (oplock) を保持していて oplock の解除に応答しない場合に、サーバーがどのように動作するかを示す値。このメンバーは、サーバーが 2 回目のオープンを失敗させる (値 0) か、oplock を保持しているクライアントのオープン インスタンスを強制的に閉じる (値 1) かを示します。このメンバーは使用されていません。 |
| sv503_enablefcbopens | BOOL | 4 | +152 | +148 | 複数の MS-DOS ファイル制御ブロック (FCB) を、サーバーからアクセスできる 1 つの場所に配置するかどうかを示す値。有効にすると、サーバーのリソースを節約できます。 |
| sv503_enableraw | BOOL | 4 | +156 | +152 | サーバーが raw サーバー メッセージ ブロック (SMB) を処理するかどうかを示す値。有効にすると、1 トランザクションあたりに転送できるデータ量が増え、パフォーマンスも向上します。ただし、特定のネットワークでは raw SMB の処理によってパフォーマンスが低下する可能性があります。このメンバーの値はサーバーが管理します。 |
| sv503_enablesharednetdrives | BOOL | 4 | +160 | +156 | リダイレクトされたサーバー ドライブの共有をサーバーが許可するかどうかを示す値。 |
| sv503_minfreeconnections | DWORD | 4 | +164 | +160 | エンドポイントごとに維持される空き接続ブロックの最小数。サーバーは、クライアントからの接続要求が集中した場合に対処するため、これらを確保しておきます。 |
| sv503_maxfreeconnections | DWORD | 4 | +168 | +164 | エンドポイントごとに維持される空き接続ブロックの最大数。サーバーは、クライアントからの接続要求が集中した場合に対処するため、これらを確保しておきます。 |
公式ドキュメント
<b>SERVER_INFO_503</b> 構造体は廃止されています。この構造体には、指定したサーバーに関する情報が格納されます。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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>
// SERVER_INFO_503 (x64 176 / x86 168 バイト)
typedef struct SERVER_INFO_503 {
DWORD sv503_sessopens;
DWORD sv503_sessvcs;
DWORD sv503_opensearch;
DWORD sv503_sizreqbuf;
DWORD sv503_initworkitems;
DWORD sv503_maxworkitems;
DWORD sv503_rawworkitems;
DWORD sv503_irpstacksize;
DWORD sv503_maxrawbuflen;
DWORD sv503_sessusers;
DWORD sv503_sessconns;
DWORD sv503_maxpagedmemoryusage;
DWORD sv503_maxnonpagedmemoryusage;
BOOL sv503_enablesoftcompat;
BOOL sv503_enableforcedlogoff;
BOOL sv503_timesource;
BOOL sv503_acceptdownlevelapis;
BOOL sv503_lmannounce;
LPWSTR sv503_domain;
DWORD sv503_maxcopyreadlen;
DWORD sv503_maxcopywritelen;
DWORD sv503_minkeepsearch;
DWORD sv503_maxkeepsearch;
DWORD sv503_minkeepcomplsearch;
DWORD sv503_maxkeepcomplsearch;
DWORD sv503_threadcountadd;
DWORD sv503_numblockthreads;
DWORD sv503_scavtimeout;
DWORD sv503_minrcvqueue;
DWORD sv503_minfreeworkitems;
DWORD sv503_xactmemsize;
DWORD sv503_threadpriority;
DWORD sv503_maxmpxct;
DWORD sv503_oplockbreakwait;
DWORD sv503_oplockbreakresponsewait;
BOOL sv503_enableoplocks;
BOOL sv503_enableoplockforceclose;
BOOL sv503_enablefcbopens;
BOOL sv503_enableraw;
BOOL sv503_enablesharednetdrives;
DWORD sv503_minfreeconnections;
DWORD sv503_maxfreeconnections;
} SERVER_INFO_503;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct SERVER_INFO_503
{
public uint sv503_sessopens;
public uint sv503_sessvcs;
public uint sv503_opensearch;
public uint sv503_sizreqbuf;
public uint sv503_initworkitems;
public uint sv503_maxworkitems;
public uint sv503_rawworkitems;
public uint sv503_irpstacksize;
public uint sv503_maxrawbuflen;
public uint sv503_sessusers;
public uint sv503_sessconns;
public uint sv503_maxpagedmemoryusage;
public uint sv503_maxnonpagedmemoryusage;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enablesoftcompat;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enableforcedlogoff;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_timesource;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_acceptdownlevelapis;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_lmannounce;
public IntPtr sv503_domain;
public uint sv503_maxcopyreadlen;
public uint sv503_maxcopywritelen;
public uint sv503_minkeepsearch;
public uint sv503_maxkeepsearch;
public uint sv503_minkeepcomplsearch;
public uint sv503_maxkeepcomplsearch;
public uint sv503_threadcountadd;
public uint sv503_numblockthreads;
public uint sv503_scavtimeout;
public uint sv503_minrcvqueue;
public uint sv503_minfreeworkitems;
public uint sv503_xactmemsize;
public uint sv503_threadpriority;
public uint sv503_maxmpxct;
public uint sv503_oplockbreakwait;
public uint sv503_oplockbreakresponsewait;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enableoplocks;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enableoplockforceclose;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enablefcbopens;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enableraw;
[MarshalAs(UnmanagedType.Bool)] public bool sv503_enablesharednetdrives;
public uint sv503_minfreeconnections;
public uint sv503_maxfreeconnections;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure SERVER_INFO_503
Public sv503_sessopens As UInteger
Public sv503_sessvcs As UInteger
Public sv503_opensearch As UInteger
Public sv503_sizreqbuf As UInteger
Public sv503_initworkitems As UInteger
Public sv503_maxworkitems As UInteger
Public sv503_rawworkitems As UInteger
Public sv503_irpstacksize As UInteger
Public sv503_maxrawbuflen As UInteger
Public sv503_sessusers As UInteger
Public sv503_sessconns As UInteger
Public sv503_maxpagedmemoryusage As UInteger
Public sv503_maxnonpagedmemoryusage As UInteger
<MarshalAs(UnmanagedType.Bool)> Public sv503_enablesoftcompat As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_enableforcedlogoff As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_timesource As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_acceptdownlevelapis As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_lmannounce As Boolean
Public sv503_domain As IntPtr
Public sv503_maxcopyreadlen As UInteger
Public sv503_maxcopywritelen As UInteger
Public sv503_minkeepsearch As UInteger
Public sv503_maxkeepsearch As UInteger
Public sv503_minkeepcomplsearch As UInteger
Public sv503_maxkeepcomplsearch As UInteger
Public sv503_threadcountadd As UInteger
Public sv503_numblockthreads As UInteger
Public sv503_scavtimeout As UInteger
Public sv503_minrcvqueue As UInteger
Public sv503_minfreeworkitems As UInteger
Public sv503_xactmemsize As UInteger
Public sv503_threadpriority As UInteger
Public sv503_maxmpxct As UInteger
Public sv503_oplockbreakwait As UInteger
Public sv503_oplockbreakresponsewait As UInteger
<MarshalAs(UnmanagedType.Bool)> Public sv503_enableoplocks As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_enableoplockforceclose As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_enablefcbopens As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_enableraw As Boolean
<MarshalAs(UnmanagedType.Bool)> Public sv503_enablesharednetdrives As Boolean
Public sv503_minfreeconnections As UInteger
Public sv503_maxfreeconnections As UInteger
End Structureimport ctypes
from ctypes import wintypes
class SERVER_INFO_503(ctypes.Structure):
_fields_ = [
("sv503_sessopens", wintypes.DWORD),
("sv503_sessvcs", wintypes.DWORD),
("sv503_opensearch", wintypes.DWORD),
("sv503_sizreqbuf", wintypes.DWORD),
("sv503_initworkitems", wintypes.DWORD),
("sv503_maxworkitems", wintypes.DWORD),
("sv503_rawworkitems", wintypes.DWORD),
("sv503_irpstacksize", wintypes.DWORD),
("sv503_maxrawbuflen", wintypes.DWORD),
("sv503_sessusers", wintypes.DWORD),
("sv503_sessconns", wintypes.DWORD),
("sv503_maxpagedmemoryusage", wintypes.DWORD),
("sv503_maxnonpagedmemoryusage", wintypes.DWORD),
("sv503_enablesoftcompat", wintypes.BOOL),
("sv503_enableforcedlogoff", wintypes.BOOL),
("sv503_timesource", wintypes.BOOL),
("sv503_acceptdownlevelapis", wintypes.BOOL),
("sv503_lmannounce", wintypes.BOOL),
("sv503_domain", ctypes.c_void_p),
("sv503_maxcopyreadlen", wintypes.DWORD),
("sv503_maxcopywritelen", wintypes.DWORD),
("sv503_minkeepsearch", wintypes.DWORD),
("sv503_maxkeepsearch", wintypes.DWORD),
("sv503_minkeepcomplsearch", wintypes.DWORD),
("sv503_maxkeepcomplsearch", wintypes.DWORD),
("sv503_threadcountadd", wintypes.DWORD),
("sv503_numblockthreads", wintypes.DWORD),
("sv503_scavtimeout", wintypes.DWORD),
("sv503_minrcvqueue", wintypes.DWORD),
("sv503_minfreeworkitems", wintypes.DWORD),
("sv503_xactmemsize", wintypes.DWORD),
("sv503_threadpriority", wintypes.DWORD),
("sv503_maxmpxct", wintypes.DWORD),
("sv503_oplockbreakwait", wintypes.DWORD),
("sv503_oplockbreakresponsewait", wintypes.DWORD),
("sv503_enableoplocks", wintypes.BOOL),
("sv503_enableoplockforceclose", wintypes.BOOL),
("sv503_enablefcbopens", wintypes.BOOL),
("sv503_enableraw", wintypes.BOOL),
("sv503_enablesharednetdrives", wintypes.BOOL),
("sv503_minfreeconnections", wintypes.DWORD),
("sv503_maxfreeconnections", wintypes.DWORD),
]#[repr(C)]
pub struct SERVER_INFO_503 {
pub sv503_sessopens: u32,
pub sv503_sessvcs: u32,
pub sv503_opensearch: u32,
pub sv503_sizreqbuf: u32,
pub sv503_initworkitems: u32,
pub sv503_maxworkitems: u32,
pub sv503_rawworkitems: u32,
pub sv503_irpstacksize: u32,
pub sv503_maxrawbuflen: u32,
pub sv503_sessusers: u32,
pub sv503_sessconns: u32,
pub sv503_maxpagedmemoryusage: u32,
pub sv503_maxnonpagedmemoryusage: u32,
pub sv503_enablesoftcompat: i32,
pub sv503_enableforcedlogoff: i32,
pub sv503_timesource: i32,
pub sv503_acceptdownlevelapis: i32,
pub sv503_lmannounce: i32,
pub sv503_domain: *mut core::ffi::c_void,
pub sv503_maxcopyreadlen: u32,
pub sv503_maxcopywritelen: u32,
pub sv503_minkeepsearch: u32,
pub sv503_maxkeepsearch: u32,
pub sv503_minkeepcomplsearch: u32,
pub sv503_maxkeepcomplsearch: u32,
pub sv503_threadcountadd: u32,
pub sv503_numblockthreads: u32,
pub sv503_scavtimeout: u32,
pub sv503_minrcvqueue: u32,
pub sv503_minfreeworkitems: u32,
pub sv503_xactmemsize: u32,
pub sv503_threadpriority: u32,
pub sv503_maxmpxct: u32,
pub sv503_oplockbreakwait: u32,
pub sv503_oplockbreakresponsewait: u32,
pub sv503_enableoplocks: i32,
pub sv503_enableoplockforceclose: i32,
pub sv503_enablefcbopens: i32,
pub sv503_enableraw: i32,
pub sv503_enablesharednetdrives: i32,
pub sv503_minfreeconnections: u32,
pub sv503_maxfreeconnections: u32,
}import "golang.org/x/sys/windows"
type SERVER_INFO_503 struct {
sv503_sessopens uint32
sv503_sessvcs uint32
sv503_opensearch uint32
sv503_sizreqbuf uint32
sv503_initworkitems uint32
sv503_maxworkitems uint32
sv503_rawworkitems uint32
sv503_irpstacksize uint32
sv503_maxrawbuflen uint32
sv503_sessusers uint32
sv503_sessconns uint32
sv503_maxpagedmemoryusage uint32
sv503_maxnonpagedmemoryusage uint32
sv503_enablesoftcompat int32
sv503_enableforcedlogoff int32
sv503_timesource int32
sv503_acceptdownlevelapis int32
sv503_lmannounce int32
sv503_domain uintptr
sv503_maxcopyreadlen uint32
sv503_maxcopywritelen uint32
sv503_minkeepsearch uint32
sv503_maxkeepsearch uint32
sv503_minkeepcomplsearch uint32
sv503_maxkeepcomplsearch uint32
sv503_threadcountadd uint32
sv503_numblockthreads uint32
sv503_scavtimeout uint32
sv503_minrcvqueue uint32
sv503_minfreeworkitems uint32
sv503_xactmemsize uint32
sv503_threadpriority uint32
sv503_maxmpxct uint32
sv503_oplockbreakwait uint32
sv503_oplockbreakresponsewait uint32
sv503_enableoplocks int32
sv503_enableoplockforceclose int32
sv503_enablefcbopens int32
sv503_enableraw int32
sv503_enablesharednetdrives int32
sv503_minfreeconnections uint32
sv503_maxfreeconnections uint32
}type
SERVER_INFO_503 = record
sv503_sessopens: DWORD;
sv503_sessvcs: DWORD;
sv503_opensearch: DWORD;
sv503_sizreqbuf: DWORD;
sv503_initworkitems: DWORD;
sv503_maxworkitems: DWORD;
sv503_rawworkitems: DWORD;
sv503_irpstacksize: DWORD;
sv503_maxrawbuflen: DWORD;
sv503_sessusers: DWORD;
sv503_sessconns: DWORD;
sv503_maxpagedmemoryusage: DWORD;
sv503_maxnonpagedmemoryusage: DWORD;
sv503_enablesoftcompat: BOOL;
sv503_enableforcedlogoff: BOOL;
sv503_timesource: BOOL;
sv503_acceptdownlevelapis: BOOL;
sv503_lmannounce: BOOL;
sv503_domain: Pointer;
sv503_maxcopyreadlen: DWORD;
sv503_maxcopywritelen: DWORD;
sv503_minkeepsearch: DWORD;
sv503_maxkeepsearch: DWORD;
sv503_minkeepcomplsearch: DWORD;
sv503_maxkeepcomplsearch: DWORD;
sv503_threadcountadd: DWORD;
sv503_numblockthreads: DWORD;
sv503_scavtimeout: DWORD;
sv503_minrcvqueue: DWORD;
sv503_minfreeworkitems: DWORD;
sv503_xactmemsize: DWORD;
sv503_threadpriority: DWORD;
sv503_maxmpxct: DWORD;
sv503_oplockbreakwait: DWORD;
sv503_oplockbreakresponsewait: DWORD;
sv503_enableoplocks: BOOL;
sv503_enableoplockforceclose: BOOL;
sv503_enablefcbopens: BOOL;
sv503_enableraw: BOOL;
sv503_enablesharednetdrives: BOOL;
sv503_minfreeconnections: DWORD;
sv503_maxfreeconnections: DWORD;
end;const SERVER_INFO_503 = extern struct {
sv503_sessopens: u32,
sv503_sessvcs: u32,
sv503_opensearch: u32,
sv503_sizreqbuf: u32,
sv503_initworkitems: u32,
sv503_maxworkitems: u32,
sv503_rawworkitems: u32,
sv503_irpstacksize: u32,
sv503_maxrawbuflen: u32,
sv503_sessusers: u32,
sv503_sessconns: u32,
sv503_maxpagedmemoryusage: u32,
sv503_maxnonpagedmemoryusage: u32,
sv503_enablesoftcompat: i32,
sv503_enableforcedlogoff: i32,
sv503_timesource: i32,
sv503_acceptdownlevelapis: i32,
sv503_lmannounce: i32,
sv503_domain: ?*anyopaque,
sv503_maxcopyreadlen: u32,
sv503_maxcopywritelen: u32,
sv503_minkeepsearch: u32,
sv503_maxkeepsearch: u32,
sv503_minkeepcomplsearch: u32,
sv503_maxkeepcomplsearch: u32,
sv503_threadcountadd: u32,
sv503_numblockthreads: u32,
sv503_scavtimeout: u32,
sv503_minrcvqueue: u32,
sv503_minfreeworkitems: u32,
sv503_xactmemsize: u32,
sv503_threadpriority: u32,
sv503_maxmpxct: u32,
sv503_oplockbreakwait: u32,
sv503_oplockbreakresponsewait: u32,
sv503_enableoplocks: i32,
sv503_enableoplockforceclose: i32,
sv503_enablefcbopens: i32,
sv503_enableraw: i32,
sv503_enablesharednetdrives: i32,
sv503_minfreeconnections: u32,
sv503_maxfreeconnections: u32,
};type
SERVER_INFO_503 {.bycopy.} = object
sv503_sessopens: uint32
sv503_sessvcs: uint32
sv503_opensearch: uint32
sv503_sizreqbuf: uint32
sv503_initworkitems: uint32
sv503_maxworkitems: uint32
sv503_rawworkitems: uint32
sv503_irpstacksize: uint32
sv503_maxrawbuflen: uint32
sv503_sessusers: uint32
sv503_sessconns: uint32
sv503_maxpagedmemoryusage: uint32
sv503_maxnonpagedmemoryusage: uint32
sv503_enablesoftcompat: int32
sv503_enableforcedlogoff: int32
sv503_timesource: int32
sv503_acceptdownlevelapis: int32
sv503_lmannounce: int32
sv503_domain: pointer
sv503_maxcopyreadlen: uint32
sv503_maxcopywritelen: uint32
sv503_minkeepsearch: uint32
sv503_maxkeepsearch: uint32
sv503_minkeepcomplsearch: uint32
sv503_maxkeepcomplsearch: uint32
sv503_threadcountadd: uint32
sv503_numblockthreads: uint32
sv503_scavtimeout: uint32
sv503_minrcvqueue: uint32
sv503_minfreeworkitems: uint32
sv503_xactmemsize: uint32
sv503_threadpriority: uint32
sv503_maxmpxct: uint32
sv503_oplockbreakwait: uint32
sv503_oplockbreakresponsewait: uint32
sv503_enableoplocks: int32
sv503_enableoplockforceclose: int32
sv503_enablefcbopens: int32
sv503_enableraw: int32
sv503_enablesharednetdrives: int32
sv503_minfreeconnections: uint32
sv503_maxfreeconnections: uint32struct SERVER_INFO_503
{
uint sv503_sessopens;
uint sv503_sessvcs;
uint sv503_opensearch;
uint sv503_sizreqbuf;
uint sv503_initworkitems;
uint sv503_maxworkitems;
uint sv503_rawworkitems;
uint sv503_irpstacksize;
uint sv503_maxrawbuflen;
uint sv503_sessusers;
uint sv503_sessconns;
uint sv503_maxpagedmemoryusage;
uint sv503_maxnonpagedmemoryusage;
int sv503_enablesoftcompat;
int sv503_enableforcedlogoff;
int sv503_timesource;
int sv503_acceptdownlevelapis;
int sv503_lmannounce;
void* sv503_domain;
uint sv503_maxcopyreadlen;
uint sv503_maxcopywritelen;
uint sv503_minkeepsearch;
uint sv503_maxkeepsearch;
uint sv503_minkeepcomplsearch;
uint sv503_maxkeepcomplsearch;
uint sv503_threadcountadd;
uint sv503_numblockthreads;
uint sv503_scavtimeout;
uint sv503_minrcvqueue;
uint sv503_minfreeworkitems;
uint sv503_xactmemsize;
uint sv503_threadpriority;
uint sv503_maxmpxct;
uint sv503_oplockbreakwait;
uint sv503_oplockbreakresponsewait;
int sv503_enableoplocks;
int sv503_enableoplockforceclose;
int sv503_enablefcbopens;
int sv503_enableraw;
int sv503_enablesharednetdrives;
uint sv503_minfreeconnections;
uint sv503_maxfreeconnections;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; SERVER_INFO_503 サイズ: 168 バイト(x86)
dim st, 42 ; 4byte整数×42(構造体サイズ 168 / 4 切り上げ)
; sv503_sessopens : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; sv503_sessvcs : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; sv503_opensearch : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; sv503_sizreqbuf : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; sv503_initworkitems : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; sv503_maxworkitems : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; sv503_rawworkitems : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; sv503_irpstacksize : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; sv503_maxrawbuflen : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; sv503_sessusers : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; sv503_sessconns : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; sv503_maxpagedmemoryusage : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; sv503_maxnonpagedmemoryusage : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; sv503_enablesoftcompat : BOOL (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; sv503_enableforcedlogoff : BOOL (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; sv503_timesource : BOOL (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; sv503_acceptdownlevelapis : BOOL (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; sv503_lmannounce : BOOL (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; sv503_domain : LPWSTR (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; sv503_maxcopyreadlen : DWORD (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; sv503_maxcopywritelen : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; sv503_minkeepsearch : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; sv503_maxkeepsearch : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; sv503_minkeepcomplsearch : DWORD (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; sv503_maxkeepcomplsearch : DWORD (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; sv503_threadcountadd : DWORD (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; sv503_numblockthreads : DWORD (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; sv503_scavtimeout : DWORD (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; sv503_minrcvqueue : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; sv503_minfreeworkitems : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; sv503_xactmemsize : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; sv503_threadpriority : DWORD (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; sv503_maxmpxct : DWORD (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; sv503_oplockbreakwait : DWORD (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; sv503_oplockbreakresponsewait : DWORD (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; sv503_enableoplocks : BOOL (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; sv503_enableoplockforceclose : BOOL (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; sv503_enablefcbopens : BOOL (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; sv503_enableraw : BOOL (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; sv503_enablesharednetdrives : BOOL (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; sv503_minfreeconnections : DWORD (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; sv503_maxfreeconnections : DWORD (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; SERVER_INFO_503 サイズ: 176 バイト(x64)
dim st, 44 ; 4byte整数×44(構造体サイズ 176 / 4 切り上げ)
; sv503_sessopens : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; sv503_sessvcs : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; sv503_opensearch : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; sv503_sizreqbuf : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; sv503_initworkitems : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; sv503_maxworkitems : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; sv503_rawworkitems : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; sv503_irpstacksize : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; sv503_maxrawbuflen : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; sv503_sessusers : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; sv503_sessconns : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; sv503_maxpagedmemoryusage : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; sv503_maxnonpagedmemoryusage : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; sv503_enablesoftcompat : BOOL (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; sv503_enableforcedlogoff : BOOL (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; sv503_timesource : BOOL (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; sv503_acceptdownlevelapis : BOOL (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; sv503_lmannounce : BOOL (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; sv503_domain : LPWSTR (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; sv503_maxcopyreadlen : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; sv503_maxcopywritelen : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; sv503_minkeepsearch : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; sv503_maxkeepsearch : DWORD (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; sv503_minkeepcomplsearch : DWORD (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; sv503_maxkeepcomplsearch : DWORD (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; sv503_threadcountadd : DWORD (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; sv503_numblockthreads : DWORD (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; sv503_scavtimeout : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; sv503_minrcvqueue : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; sv503_minfreeworkitems : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; sv503_xactmemsize : DWORD (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; sv503_threadpriority : DWORD (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; sv503_maxmpxct : DWORD (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; sv503_oplockbreakwait : DWORD (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; sv503_oplockbreakresponsewait : DWORD (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; sv503_enableoplocks : BOOL (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; sv503_enableoplockforceclose : BOOL (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; sv503_enablefcbopens : BOOL (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; sv503_enableraw : BOOL (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; sv503_enablesharednetdrives : BOOL (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; sv503_minfreeconnections : DWORD (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; sv503_maxfreeconnections : DWORD (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global SERVER_INFO_503
#field int sv503_sessopens
#field int sv503_sessvcs
#field int sv503_opensearch
#field int sv503_sizreqbuf
#field int sv503_initworkitems
#field int sv503_maxworkitems
#field int sv503_rawworkitems
#field int sv503_irpstacksize
#field int sv503_maxrawbuflen
#field int sv503_sessusers
#field int sv503_sessconns
#field int sv503_maxpagedmemoryusage
#field int sv503_maxnonpagedmemoryusage
#field bool sv503_enablesoftcompat
#field bool sv503_enableforcedlogoff
#field bool sv503_timesource
#field bool sv503_acceptdownlevelapis
#field bool sv503_lmannounce
#field intptr sv503_domain
#field int sv503_maxcopyreadlen
#field int sv503_maxcopywritelen
#field int sv503_minkeepsearch
#field int sv503_maxkeepsearch
#field int sv503_minkeepcomplsearch
#field int sv503_maxkeepcomplsearch
#field int sv503_threadcountadd
#field int sv503_numblockthreads
#field int sv503_scavtimeout
#field int sv503_minrcvqueue
#field int sv503_minfreeworkitems
#field int sv503_xactmemsize
#field int sv503_threadpriority
#field int sv503_maxmpxct
#field int sv503_oplockbreakwait
#field int sv503_oplockbreakresponsewait
#field bool sv503_enableoplocks
#field bool sv503_enableoplockforceclose
#field bool sv503_enablefcbopens
#field bool sv503_enableraw
#field bool sv503_enablesharednetdrives
#field int sv503_minfreeconnections
#field int sv503_maxfreeconnections
#endstruct
stdim st, SERVER_INFO_503 ; NSTRUCT 変数を確保
st->sv503_sessopens = 100
mes "sv503_sessopens=" + st->sv503_sessopens