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 |