Función RxPrepareContextForReuse (rxcontx.h)

RxPrepareContextForReuse prepara una estructura de datos de RX_CONTEXT para su reutilización restableciendo todas las asignaciones y adquisiciones específicas de la operación realizadas (el miembro ReferenceCount en la estructura RX_CONTEXT se establece en cero). Los parámetros que se han obtenido del IRP no se modifican.

Sintaxis

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

Parámetros

[in, out] RxContext

Puntero a la estructura RX_CONTEXT.

Valor devuelto

None

Observaciones

La rutina RxPrepareContextForReuse comprueba que varios miembros específicos de la operación de la estructura RX_CONTEXT son NULL antes de establecer el miembro ReferenceCount en cero. Estas pruebas específicas de la operación que se deben cumplir incluyen lo siguiente:

  • Si el miembro MajorFunction del IRP asociado está IRP_MJ_CREATE, el miembro Create.CanonicalNameBuffer debe ser NULL.
  • Si el miembro MajorFunction del IRP asociado está IRP_MJ_READ o IRP_MJ_WRITE, los miembros RxContextSerializationQLinks.Flink y RxContextSerializationQLinks.Blink deben ser NULL.
Si no se cumple alguna de las condiciones anteriores, RxPrepareContextForReuse hace que el sistema aserte las compilaciones activadas.

Normalmente, la rutina RxPrepareContextForReuse solo la usarían los controladores de minidirector de red que reinicializan RX_CONTEXT estructuras directamente.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado rxcontx.h (incluya Rxprocs.h rxcontx.h)
IRQL <= APC_LEVEL

Consulte también

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock