EqualPrefixSid

2 つのセキュリティ識別子 (SID) のプレフィックス値が等しいかどうかを検査する。SID プレフィックスとは、最後のサブ機関値を除く SID 全体のことである。

EqualPrefixSid pSid1, pSid2

pSid1 : [int] 比較する最初の SID 構造体へのポインタ。この構造体は有効であると仮定される。
pSid2 : [int] 比較する 2 番目の SID 構造体へのポインタ。この構造体は有効であると仮定される。

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

解説

2 つのセキュリティ識別子 (SID) のプレフィックス値が等しいかどうかを検査する。SID プレフィックスとは、最後のサブ機関値を除く
SID 全体のことである。

[戻り値]
SID プレフィックスが等しい場合、戻り値はゼロ以外となる。SID
プレフィックスが等しくない場合、戻り値はゼロとなる。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]
EqualPrefixSid
関数は、あるドメイン内のサーバアプリケーションが、ユーザーが別のドメインにログオンしようとする試みを検証できるようにする。たとえば、ユーザーが
LocalDomain 内のワークステーションから RemoteDomain にログオンしようとする場合、LocalDomain
のサーバは RemoteDomain にユーザーとユーザーのグループの SID を要求できる。RemoteDomain のドメイン
コントローラは該当する SID で応答する。指定したドメインのすべての SID は同じプレフィックスを持つ。サーバがユーザーの SID
を受け取ると、EqualPrefixSid 関数を各 SID に対して呼び出し、ユーザーまたはグループの SID を
RemoteDomain の SID と比較できる。SID
プレフィックスのいずれかが等しくない場合、サーバはログオン試行を拒否する。ドメインの SID をグループまたはユーザー SID
と比較する前に、ドメインの SID を変更することが推奨される。RemoteDomain の SID が S-1-1234-8
の場合、そのドメインの各グループまたはユーザー SID は S-1-1234-8 をプレフィックスとして持つ。EqualPrefixSid
関数を使用して SID を比較するために、アプリケーションはドメイン SID をコピーし、そのコピーに任意のサブ機関 (RID)
値を追加して S-1-1234-8-0 の形の SID を作成する。次にアプリケーションは、変更したドメイン SID
を、グループやユーザーの SID と比較するテンプレートとして使用する。

情報

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