NetServerEnum

NetServerEnum 関数は、ドメイン内で可視の指定した種類のすべてのサーバーを一覧表示する。

NetServerEnum servername, level, bufptr, prefmaxlen, entriesread, totalentries, servertype, domain, resume_handle

servername : [wstr] 予約済み。NULL でなければならない。
level : [int] 
bufptr : [var] データを受け取るバッファへのポインタ。このデータの形式は level パラメータの値に依存する。このバッファはシステムによって割り当てられ、NetApiBufferFree 関数で解放しなければならない。関数が ERROR_MORE_DATA で失敗した場合でもバッファを解放する必要がある点に注意。
prefmaxlen : [int] 返されるデータの望ましい最大長 (バイト単位)。MAX_PREFERRED_LENGTH を指定すると、関数は必要な量のメモリを割り当てる。別の値を指定すると、関数が返すバイト数を制限できる。バッファサイズがすべてのエントリを保持するのに不十分な場合、関数は ERROR_MORE_DATA を返す。詳細は Network Management Function Buffers および Network Management Function Buffer Lengths を参照。
entriesread : [var] 実際に列挙された要素数を受け取る値へのポインタ。
totalentries : [var] ネットワーク上で可視のサーバーおよびワークステーションの総数を受け取る値へのポインタ。アプリケーションはこの値を目安としてのみ扱うべきである点に注意。
servertype : [int] 
domain : [wstr] サーバー一覧を返すドメインの名前を指定する定数文字列へのポインタ。ドメイン名は NetBIOS ドメイン名 (例: microsoft) でなければならない。NetServerEnum 関数は DNS 形式の名前 (例: microsoft.com) をサポートしない。このパラメータが NULL の場合、プライマリドメインが暗黙的に使われる。
resume_handle : [var] 予約済み。0 に設定する必要がある。

(プラグイン / モジュール : netapi32.dll)

解説

NetServerEnum 関数は、ドメイン内で可視の指定した種類のすべてのサーバーを一覧表示する。

[戻り値]
関数が成功した場合、戻り値は NERR_Success となる。失敗した場合、戻り値は次のいずれかのエラーコードになる可能性がある。
(以下省略)

[備考]
NetServerEnum
関数は、ドメイン内で可視の指定した種類のすべてのサーバーを列挙するために使う。たとえばアプリケーションは、NetServerEnum
を呼び出してドメインコントローラーのみ、あるいは SQL Server
のインスタンスを実行するサーバーのみを一覧表示できる。アプリケーションは servertype
パラメータでさまざまなサーバー種別のビットマスクを組み合わせて複数の種類を列挙できる。たとえば SV_TYPE_WORKSTATION |
SVTYPE_SERVER (0x00000003) は SV_TYPE_WORKSTATION (0x00000001) と
SV_TYPE_SERVER (0x00000002)
のビットマスクを組み合わせる。特定のサーバーの詳細情報が必要な場合は、WNetEnumResource
関数を呼び出す。NetServerEnum
関数を正常に実行するために特別なグループメンバーシップは必要ない。SV_TYPE_LOCAL_LIST_ONLY
を指定した場合、NetServerEnum 関数はブラウザが内部で保持するサーバー一覧を返す。これはマスターブラウザ
(または過去にマスターブラウザだったコンピューター)
上でのみ意味を持つ。マスターブラウザはネットワーク上でどのコンピューターがサーバーまたはワークステーションになれるかを決定する権限を現在持つコンピューターである。servertype
パラメータで指定した種類に一致するサーバーが見つからない場合、NetServerEnum 関数は bufptr パラメータを NULL
として返し、entriesread と totalentries パラメータが指す DWORD 値は 0
になる。NetServerEnum
関数はブラウザサービスがインストールされ実行されていることに依存する。ブラウザサーバーが見つからない場合、NetServerEnum は
ERROR_NO_BROWSER_SERVERS_FOUND で失敗する。Active Directory
向けのプログラミングを行っている場合、特定の Active Directory Service Interface (ADSI)
メソッドを呼び出すことで、ネットワーク管理サーバー関数を呼ぶのと同じ機能を実現できる場合がある。詳細は IADsComputer を参照。

情報

プラグイン / モジュールnetapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の netapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_netapi32_gen2.hs