SRV_OPEN_ECP_CONTEXT構造体 (ntifs.h)
SRV_OPEN_ECP_CONTEXT構造体は、クライアント要求に応じてファイルを条件付きで開くためにサーバーによって使用されます。
構文
typedef struct _SRV_OPEN_ECP_CONTEXT {
PUNICODE_STRING ShareName;
PSOCKADDR_STORAGE_NFS SocketAddress;
BOOLEAN OplockBlockState;
BOOLEAN OplockAppState;
BOOLEAN OplockFinalState;
USHORT Version;
SRV_INSTANCE_TYPE InstanceType;
} SRV_OPEN_ECP_CONTEXT, *PSRV_OPEN_ECP_CONTEXT;
メンバーズ
ShareName
開くファイルを含むサーバーの共有名を指定する UNICODE_STRING 構造体へのポインター。 このフィールドは省略可能で、NULL にすることができます。
SocketAddress
クライアント コンピューターのトランスポート アドレスを指定する SOCKADDR_STORAGE 構造体へのポインター。 このクライアントは、開いているファイル要求を生成します。 このフィールドは省略可能で、NULL にすることができます。
OplockBlockState
サーバー メッセージ ブロック (SMB) サーバーが、oplock の中断を待機している開いているスレッドをブロックするかどうかを示すブール値。
OplockAppState
SMB サーバーが現在開いているスレッドで oplock を要求するかどうかを示すブール値。 操作ロック
OplockFinalState
ファイルを開く操作が、oplock を要求する最終的なファイルを開く操作であるかどうかを示すブール値。
Version
この構造体のバージョン。 このメンバーは Windows 10 バージョン 1703 で追加されたため、アクセスを試みる前に、まずメンバーが存在するかどうかを確認する必要があります。 構造体のサイズが >= RTL_SIZEOF_THROUGH_FIELD(SRV_OPEN_ECP_CONTEXT、バージョン) の場合は、このフィールドにアクセスできます。 このメンバーは現在、SRV_OPEN_ECP_CONTEXT_VERSION_2に設定できます。
InstanceType
オープン元の SRV_INSTANCE_TYPE。 CSVFS で使用される NTFS または ReFS にアタッチするファイル システム ミニフィルターは、このフィールドを使用して、このオープンが CSVFS をバイパスしているかどうかを検出できます。 開いているファイルが CSVFS を通過する場合、この ECP は存在しないか、インスタンスの種類が SrvInstanceTypeCsv です。 開いているファイルが CSVFS をバイパスしていて、非表示のボリュームに直接アクセスする場合、InstanceType は SrvInstanceTypePrimary になります。
備考
ファイル システム スタックは、SRV_OPEN_ECP_CONTEXTがファイル作成要求にアタッチされているかどうかを判断できます。 その後、ファイル システム スタックは、SRV_OPEN_ECP_CONTEXTの情報を使用して、ファイルを開くことを要求したクライアントと、ファイルを要求した理由を判断できます。 ファイル作成要求に関連付けられているSRV_OPEN_ECP_CONTEXT追加情報を取得する方法については、「ECPの取得」を参照してください。
SRV_OPEN_ECP_CONTEXT構造体は読み取り専用です。 これを使用して、ECP を開いているサーバーに関する情報のみを取得する必要があります。 この問題の詳細については、「System-Defined ECP」を参照してください。
oplock 状態値 (oplockBlockState、OplockAppState、および OplockFinalState) は、SMB および SMB2 のシステム管理に対する oplock 破壊的ロジックと共に使用されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | この構造は、Windows 7 以降で使用できます。 |
ヘッダー | ntifs.h (Ntifs.h を含む) |