Compartilhar via


Função RxIndicateChangeOfBufferingStateForSrvOpen (rxprocs.h)

RxIndicateChangeOfBufferingStateForSrvOpen é chamado para registrar uma solicitação de estado de buffer de alteração (uma indicação de interrupção de oplock, por exemplo) para processamento posterior. Se as pré-condições necessárias forem atendidas, o oplock será processado ainda mais.

Sintaxe

void RxIndicateChangeOfBufferingStateForSrvOpen(
  PMRX_SRV_CALL SrvCall,
  PMRX_SRV_OPEN SrvOpen,
  PVOID         SrvOpenKey,
  PVOID         Context
);

Parâmetros

SrvCall

Um ponteiro para a estrutura SRV_CALL.

SrvOpen

Um ponteiro para a estrutura SRV_OPEN.

SrvOpenKey

Um ponteiro para a chave para a estrutura de chave SRV_OPEN.

Context

Um ponteiro para o contexto a ser passado de volta para o minidiretório de rede durante retornos de chamada para processar a solicitação.

Retornar valor

Nenhum

Comentários

Essa rotina registra a solicitação de estado de buffer de alteração inserindo-a na lista de registro (processamento de nível de DPC ) ou na lista de dispatcher/manipulador apropriada.

Essa é uma instância em que, no estado de buffer, as indicações de alteração do servidor usam a chave gerada pelo cliente (o endereço SRV_OPEN em si é a melhor chave que pode ser usada). Isso implica que nenhuma pesquisa adicional é necessária.

No entanto, se essa rotina for chamada no nível de DPC, a indicação será processada como se a pesquisa precisasse ser feita.

Se o recurso para o FCB já tiver sido adquirido por esse thread, a indicação de alteração de estado de buffer será processada imediatamente sem mais atrasos. RxIndicateChangeOfBufferingStateForSrvOpen chama RxChangeBufferingState imediatamente nesse caso.

As rotinas internas chamadas por essa rotina podem falhar devido à falta de memória disponível (não é possível alocar memória de pool não paginado, por exemplo), mas como essa é uma rotina VOID, nenhum erro é retornado quando essa condição ocorre.

Se uma solicitação de estado de buffer puder ser processada imediatamente em vez de ser enfileirada para processamento posterior, RxChangeBufferingState poderá ser chamado.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho rxprocs.h (inclua Rxprocs.h, Struchdr.h, Fcb.h)
IRQL <= APC_LEVEL

Confira também

RX_CONTEXT

RxChangeBufferingState

RxIndicateChangeOfBufferingState