Compartilhar via


Função RxPrepareContextForReuse (rxcontx.h)

RxPrepareContextForReuse prepara uma estrutura de dados RX_CONTEXT para reutilização redefinindo todas as alocações e aquisições específicas da operação que foram feitas (o membro ReferenceCount para a estrutura RX_CONTEXT está definido como zero). Os parâmetros obtidos do IRP não são modificados.

Sintaxe

void RxPrepareContextForReuse(
  [in, out] IN OUT PRX_CONTEXT RxContext
);

Parâmetros

[in, out] RxContext

Um ponteiro para a estrutura RX_CONTEXT.

Retornar valor

Nenhum

Comentários

A rotina RxPrepareContextForReuse verifica se vários membros específicos da operação na estrutura RX_CONTEXT são NULL antes de definir o membro ReferenceCount como zero. Esses testes específicos da operação que devem ser atendidos incluem o seguinte:

  • Se o membro MajorFunction do IRP associado for IRP_MJ_CREATE, o membro Create.CanonicalNameBuffer deverá ser NULL.
  • Se o membro MajorFunction do IRP associado for IRP_MJ_READ ou IRP_MJ_WRITE, os membros RxContextSerializationQLinks.Flink e RxContextSerializationQLinks.Blink deverão ser NULL.
Se uma das condições acima não for atendida, RxPrepareContextForReuse fará com que o sistema asserte em builds verificados.

A rotina RxPrepareContextForReuse normalmente só seria usada por drivers de minidiretório de rede que reinicializam RX_CONTEXT estruturas diretamente.

Requisitos

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

Confira também

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock