Compartir a través de


Función ScsiPortWmiPostProcess (scsiwmi.h)

La rutina ScsiPortWmiPostProcess actualiza un contexto de solicitud para un SRB de WMI.

Nota Los modelos del controlador de puerto SCSI y del controlador de miniporte SCSI pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar el controlador Storport y los modelos de controlador de miniport storport .
 

Sintaxis

void ScsiPortWmiPostProcess(
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] UCHAR                    SrbStatus,
  [in] ULONG                    BufferUsed
);

Parámetros

[in] RequestContext

Puntero al contexto de solicitud de este SRB.

[in] SrbStatus

Especifica cualquier estado de SRB válido. Si el búfer de salida pasado al controlador de minipuerto era demasiado pequeño para contener todos los datos de una solicitud, el controlador de miniporte establece SrbStatus en SRB_STATUS_DATA_OVERRUN.

[in] BufferUsed

Si SrbStatus indica que el controlador de minipuerto establece BufferUsed en el número de bytes de datos escritos en el búfer. Si SrbStatus es SRB_STATUS_DATA_OVERRUN, el controlador de minipuerto establece BufferUsed en el número de bytes necesarios para completar correctamente la SRB.

Valor devuelto

None

Observaciones

Un controlador de minipuerto debe llamar a ScsiPortWmiPostProcess después de que se haya procesado la solicitud SRB de WMI y esté listo para completarse.

Para srBs sincrónicos, se llama a ScsiPortWmiPostProcess en la rutina de devolución de llamada.

Para srBs pendientes, se llama a ScsiPortWmiPostProcess después de procesar el SRB y antes de que se complete.

Si un controlador de minipuerto establece SrbStatus en SRB_STATUS_DATA_OVERRUN y establece BufferUsed, los srBs WMI idénticos sucesivos con un búfer asignado igual o mayor que los bytes BufferUsed deben realizarse correctamente. Esto se debe lograr si el controlador establece el valor exacto de BufferUsed que es necesario para completar la solicitud al llamar a ScsiPortWmiPostProcess con SrbStatus igual a SRB_STATUS_DATA_OVERRUN. Para una estructura de salida de tamaño variable, el búfer de datos de entrada de la SRB debe tener suficiente información para determinar el valor de BufferUsed exacto. Si el búfer de datos de entrada no contiene suficiente información, el controlador nunca debe producir un error en el mismo SRB dos veces con SRB_STATUS_DATA_OVERRUN. En su lugar, el controlador debe establecer SRB_STATUS_DATA_OVERRUN y solicitar el tamaño mínimo necesario para el búfer de salida primero y, a continuación, establecer SRB_STATUS_SUCCESS e indicar el error en el contenido del búfer de salida.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado scsiwmi.h (incluya Miniport.h, Scsi.h)

Consulte también

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus