Compartilhar via


SRV_OPEN_ECP_CONTEXT estrutura (ntifs.h)

A estrutura SRV_OPEN_ECP_CONTEXT é usada por um servidor para abrir condicionalmente arquivos em resposta às solicitações do 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 de 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 interrupção 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 ao Windows 10 versão 1703, portanto, antes de tentar acessá-lo, primeiro verifique 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

A SRV_INSTANCE_TYPE da qual a abertura 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 a abertura passar por CSVFS, esse ECP estará ausente ou o tipo de instância será SrvInstanceTypeCsv. Se a abertura estiver ignorando o CSVFS e for diretamente para o volume oculto, InstanceType será SrvInstanceTypePrimary. O campo InstanceType só estará presente se de versão estiver = SRV_OPEN_ECP_CONTEXT_VERSION_2.

Observações

A pilha do sistema de arquivos pode determinar se SRV_OPEN_ECP_CONTEXT está anexado à solicitação de criação de arquivo. 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 a 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 System-Defined ECPs.

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

Requisitos

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

Consulte também

SOCKADDR_STORAGE

SRV_INSTANCE_TYPE

UNICODE_STRING