estrutura SRV_OPEN_ECP_CONTEXT (ntifs.h)

A estrutura SRV_OPEN_ECP_CONTEXT é usada por um servidor para abrir condicionalmente arquivos em resposta a solicitações de cliente.

Sintaxe

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;

Membros

ShareName

Ponteiro para uma estrutura UNICODE_STRING que fornece o nome do compartilhamento para o servidor que contém os arquivos a serem abertos. Esse campo é opcional e pode ser NULL.

SocketAddress

Ponteiro para uma estrutura SOCKADDR_STORAGE que especifica o endereço de transporte de um computador cliente. Esse cliente origina a solicitação de arquivo aberta. Esse campo é opcional e pode ser nulo.

OplockBlockState

Um valor booliano que indica se o servidor SMB (Bloco de Mensagens do Servidor) bloqueia o thread aberto que está aguardando a quebra do oplock. TRUE indica que o thread aberto está no estado de bloqueio e FALSE caso contrário.

OplockAppState

Um valor booliano que indica se o servidor SMB solicita um oplock com o thread aberto atual. Defina como TRUE para solicitar o oplock e FALSE caso contrário.

OplockFinalState

Um valor booliano que indica se uma operação de abertura de arquivo é a operação final de abertura de arquivo para solicitar o oplock. TRUE indica a operação final de abertura de arquivo para obter o oplock e FALSE indica o contrário.

Version

Versão dessa estrutura. Esse membro foi adicionado no Windows 10 versão 1703, portanto, antes de tentar acessá-lo, você deve primeiro marcar para ver se ele existe. Se o tamanho da estrutura for >= RTL_SIZEOF_THROUGH_FIELD(SRV_OPEN_ECP_CONTEXT, Versão), você poderá acessar esse campo. No momento, esse membro pode ser definido como SRV_OPEN_ECP_CONTEXT_VERSION_2.

InstanceType

O SRV_INSTANCE_TYPE do qual o aberto está vindo. Os minifiltros do sistema de arquivos que são anexados ao NTFS ou ao ReFS usados pelo CSVFS podem usar esse campo para detectar se essa abertura está ignorando o CSVFS. Se o open passar por CSVFS, esse ECP estará ausente ou o tipo de instância será SrvInstanceTypeCsv. Se o open estiver ignorando CSVFS e for diretamente para o volume oculto, InstanceType será SrvInstanceTypePrimary. O campo InstanceType estará presente somente se Version for >= SRV_OPEN_ECP_CONTEXT_VERSION_2.

Comentários

A pilha do sistema de arquivos pode determinar se SRV_OPEN_ECP_CONTEXT está anexado à solicitação de criação de arquivo. Em seguida, a pilha do sistema de arquivos pode usar as informações em SRV_OPEN_ECP_CONTEXT para determinar qual cliente solicitou que o arquivo fosse aberto e por que ele o solicitou. Para obter informações sobre como recuperar o SRV_OPEN_ECP_CONTEXT informações extras anexadas a uma solicitação de criação de arquivo, consulte Recuperando ECPs.

A estrutura SRV_OPEN_ECP_CONTEXT é somente leitura. Você deve usá-lo para recuperar informações sobre um servidor aberto somente ECP. Para obter mais informações sobre esse problema, consulte ECPs definidos pelo sistema.

Os valores de estado oplock (OplockBlockState, OplockAppState e OplockFinalState) são usados com lógica de quebra de oplock para gerenciamento de sistema para SMB e SMB2.

Requisitos

Requisito Valor
Cliente mínimo com suporte Essa estrutura está disponível a partir do Windows 7.
Cabeçalho ntifs.h (inclua Ntifs.h)

Confira também

SOCKADDR_STORAGE

SRV_INSTANCE_TYPE

UNICODE_STRING