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.

Valor de retorno

Nenhum

Observações

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 apropriada de dispatcher/manipulador.

Essa é uma instância em que, no estado de buffer, as indicações de alteração do estado 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 do DPC, a indicação será processada como se a pesquisa precisasse ser feita.

Se o recurso do 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 chamadas RxChangeBufferingState imediatamente neste 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 sem páginas, 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
da Plataforma de Destino Área de trabalho
cabeçalho rxprocs.h (include Rxprocs.h, Struchdr.h, Fcb.h)
IRQL <= APC_LEVEL

Consulte também

RX_CONTEXT

RxChangeBufferingState

RxIndicateChangeOfBufferingState