SRV_OPEN_ECP_CONTEXT structure (ntifs.h)

La structure SRV_OPEN_ECP_CONTEXT est utilisée par un serveur pour ouvrir des fichiers de manière conditionnelle en réponse aux demandes du client.

Syntaxe

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;

Membres

ShareName

Pointeur vers une structure UNICODE_STRING qui fournit le nom de partage pour le serveur qui contient les fichiers à ouvrir. Ce champ est facultatif et peut être NULL.

SocketAddress

Pointeur vers une structure SOCKADDR_STORAGE qui spécifie l’adresse de transport d’un ordinateur client. Ce client provient de la demande de fichier ouvert. Ce champ est facultatif et peut être null.

OplockBlockState

Valeur booléenne qui indique si le serveur SMB (Server Message Block) bloque le thread ouvert qui attend l’arrêt du blocage d’opération. TRUE indique que le thread ouvert est dans l’état de blocage et FALSE dans le cas contraire.

OplockAppState

Valeur booléenne qui indique si le serveur SMB demande un oplock avec le thread ouvert actuel. Définissez sur TRUE pour demander l’oplock et FALSE dans le cas contraire.

OplockFinalState

Valeur booléenne qui indique si une opération d’ouverture de fichier est l’opération d’ouverture de fichier finale pour demander l’oplock. TRUE indique l’opération d’ouverture de fichier finale pour obtenir le verrou d’opération et FALSE indique le contraire.

Version

Version de cette structure. Ce membre a été ajouté dans Windows 10 version 1703. Avant d’essayer d’y accéder, vous devez d’abord case activée pour voir s’il existe. Si la taille de structure est >= RTL_SIZEOF_THROUGH_FIELD(SRV_OPEN_ECP_CONTEXT, Version), vous pouvez accéder à ce champ. Ce membre peut actuellement être défini sur SRV_OPEN_ECP_CONTEXT_VERSION_2.

InstanceType

Le SRV_INSTANCE_TYPE d’où vient l’ouverture. Les minifiltres de système de fichiers qui s’attachent à NTFS ou ReFS utilisés par CSVFS peuvent utiliser ce champ pour détecter si cette ouverture contourne CSVFS. Si l’ouverture passe par CSVFS, cet ECP est absent ou le type instance est SrvInstanceTypeCsv. Si l’ouverture contourne CSVFS et accède directement au volume masqué, InstanceType est SrvInstanceTypePrimary. Le champ InstanceType est présent uniquement si Version est >= SRV_OPEN_ECP_CONTEXT_VERSION_2.

Remarques

La pile du système de fichiers peut déterminer si SRV_OPEN_ECP_CONTEXT est attaché à la demande de création de fichier. La pile du système de fichiers peut ensuite utiliser les informations de SRV_OPEN_ECP_CONTEXT pour déterminer le client qui a demandé l’ouverture du fichier et pourquoi il l’a demandé. Pour plus d’informations sur la façon de récupérer le SRV_OPEN_ECP_CONTEXT d’informations supplémentaires attachées à une demande de création de fichier, consultez Récupération d’ecps.

La structure SRV_OPEN_ECP_CONTEXT est en lecture seule. Vous devez l’utiliser pour récupérer des informations sur un serveur ouvert ECP uniquement. Pour plus d’informations sur ce problème, consultez EcPs définis par le système.

Les valeurs d’état oplock (OplockBlockState, OplockAppState et OplockFinalState) sont utilisées avec la logique de rupture d’oplock pour la gestion du système pour SMB et SMB2.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Cette structure est disponible à partir de Windows 7.
En-tête ntifs.h (include Ntifs.h)

Voir aussi

SOCKADDR_STORAGE

SRV_INSTANCE_TYPE

UNICODE_STRING