estructura SRV_OPEN_ECP_CONTEXT (ntifs.h)

Un servidor usa la estructura SRV_OPEN_ECP_CONTEXT para abrir archivos condicionalmente en respuesta a las solicitudes de cliente.

Sintaxis

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;

Miembros

ShareName

Puntero a una estructura de UNICODE_STRING que proporciona el nombre del recurso compartido para el servidor que contiene los archivos que se van a abrir. Este campo es opcional y puede ser NULL.

SocketAddress

Puntero a una estructura de SOCKADDR_STORAGE que especifica la dirección de transporte de un equipo cliente. Este cliente origina la solicitud de archivo abierto. Este campo es opcional y puede ser NULL.

OplockBlockState

Valor booleano que indica si el servidor bloque de mensajes del servidor (SMB) bloquea el subproceso abierto que está esperando la interrupción de oplock. TRUE indica que el subproceso abierto está en estado de bloqueo y FALSE en caso contrario.

OplockAppState

Valor booleano que indica si el servidor SMB solicita un oplock con el subproceso abierto actual. Establezca en TRUE para solicitar el oplock y FALSE de lo contrario.

OplockFinalState

Valor booleano que indica si una operación de apertura de archivos es la operación de apertura de archivos final para solicitar el oplock. TRUE indica la operación final de apertura de archivo para obtener el oplock y FALSE indica lo contrario.

Version

Versión de esta estructura. Este miembro se agregó en Windows 10 versión 1703, por lo que antes de intentar acceder a él primero debe comprobar si existe. Si el tamaño de la estructura es >= RTL_SIZEOF_THROUGH_FIELD(SRV_OPEN_ECP_CONTEXT, Versión), puede acceder a este campo. Este miembro se puede establecer actualmente en SRV_OPEN_ECP_CONTEXT_VERSION_2.

InstanceType

La SRV_INSTANCE_TYPE de la que procede la apertura. Los minifiltros del sistema de archivos que se adjuntan a NTFS o ReFS usados por CSVFS pueden usar este campo para detectar si esta apertura está pasando CSVFS. Si la apertura pasa por CSVFS, este ECP está ausente o el tipo de instancia es SrvInstanceTypeCsv. Si la apertura pasa CSVFS y va directamente al volumen oculto, InstanceType es SrvInstanceTypePrimary. El campo InstanceType solo está presente si Version es >= SRV_OPEN_ECP_CONTEXT_VERSION_2.

Comentarios

La pila del sistema de archivos puede determinar si SRV_OPEN_ECP_CONTEXT está asociado a la solicitud de creación de archivos. Después, la pila del sistema de archivos puede usar la información de SRV_OPEN_ECP_CONTEXT para determinar qué cliente solicitó que se abra el archivo y por qué lo solicitó. Para obtener información sobre cómo recuperar la SRV_OPEN_ECP_CONTEXT información adicional adjunta a una solicitud de creación de archivos, consulte Recuperación de ECP.

La estructura SRV_OPEN_ECP_CONTEXT es de solo lectura. Debe usarlo para recuperar información sobre un servidor abierto solo ECP. Para obtener más información sobre este problema, consulte ECP definidas por el sistema.

Los valores de estado de oplock (OplockBlockState, OplockAppState y OplockFinalState) se usan con lógica de interrupción de interbloqueo para la administración del sistema para SMB y SMB2.

Requisitos

Requisito Value
Cliente mínimo compatible Esta estructura está disponible a partir de Windows 7.
Encabezado ntifs.h (incluya Ntifs.h)

Consulte también

SOCKADDR_STORAGE

SRV_INSTANCE_TYPE

UNICODE_STRING