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.

Valor de retorno

Nenhum

Observações

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 de 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 MajorFunction membro do IRP associado for IRP_MJ_READ ou IRP_MJ_WRITE, os membros RxContextSerializationQLinks.Flink e RxContextSerializationQLinks.Blink deverão ser NULL .
Se qualquer uma das condições acima não for atendida, RxPrepareContextForReuse fará com que o sistema asserte em builds verificados.

A rotina de RxPrepareContextForReuse normalmente seria usada apenas por drivers de minidiretor de rede que reinicializam estruturas RX_CONTEXT diretamente.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho rxcontx.h (include Rxprocs.h rxcontx.h)
IRQL <= APC_LEVEL

Consulte também

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock