Compartir a través de


PSCSIWMI_SET_DATABLOCK función de devolución de llamada (scsiwmi.h)

Se llama a la rutina HwScsiWmiSetDataBlock de un controlador de miniporte para cambiar todos los elementos de datos de una sola instancia de un bloque de datos. Esta rutina es opcional.

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

PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;

BOOLEAN PscsiwmiSetDatablock(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG BufferSize,
  [in] PUCHAR Buffer
)
{...}

Parámetros

[in] DeviceContext

Apunta al valor de contexto definido por el controlador miniport pasado a ScsiPortWmiDispatchFunction.

[in] RequestContext

Apunta a la estructura SCSIWMI_REQUEST_CONTEXT que el controlador de miniporte pasó a ScsiPortWmiDispatchFunction.

[in] GuidIndex

Especifica el bloque de datos por su índice en la lista de GUID de la estructura SCSI_WMILIB_CONTEXT que el controlador de miniporte pasó a ScsiPortWmiDispatchFunction.

[in] InstanceIndex

Si el bloque especificado por GuidIndex tiene varias instancias, InstanceIndex especifica la instancia.

[in] BufferSize

Especifica el tamaño en bytes del búfer en buffer.

[in] Buffer

Apunta a un búfer que contiene nuevos valores para la instancia.

Valor devuelto

HwScsiWmiSetDataBlock devuelve SRB_STATUS_PENDING si la solicitud está pendiente o un valor de estado de SRB distinto de cero si se completó la solicitud. El valor de estado de SRB devuelto por esta rutina es el mismo que lo que se pasó a ScsiPortWmiPostProcess.

Comentarios

Cuando un controlador de miniporte recibe un SRB en el que el miembro Function se establece en SRB_FUNCTION_WMI, llama a ScsiPortWmiDispatchFunction con un puntero a una estructura de SCSI_WMILIB_CONTEXT inicializada y MinorFunction establecida en Srb-WmiSubFunction>. El controlador de puerto SCSI llama a la rutina HwScsiWmiSetDataBlock del controlador de miniporte si MinorFunction indica una solicitud para cambiar una instancia de un bloque de datos.

Si un controlador de minipuerto no implementa una rutina HwScsiWmiSetDataBlock , debe establecer SetWmiDataBlock en NULL en el SCSI_WMILIB_CONTEXT el controlador de miniport pasa a ScsiPortWmiDispatchFunction. En este caso, el controlador de puerto devuelve SRB_STATUS_ERROR al autor de la llamada.

Si el controlador de miniporte implementa HwScsiWmiSetDataBlock , debe cambiar la instancia del bloque de datos a los nuevos valores del búfer.

Si todos los elementos del bloque de datos son de solo lectura, el controlador de minipuerto debe devolver SRB_STATUS_ERROR. De lo contrario, el controlador de minipuerto cambia los elementos que puede y devuelve SRB_STATUS_SUCCESS.

El controlador de miniport debe llamar a ScsiPortWmiPostProcess con un valor SrbStatus adecuado cuando se complete la solicitud. Si la solicitud no está manuscrita, se debe llamar a ScsiPortWmiPostProcess en la devolución de llamada HwScsiWmiSetDataBlock . De lo contrario, se debe llamar a ScsiPortWmiPostProcess cuando se complete realmente la solicitud.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado scsiwmi.h (incluya Scsiwmi.h)

Consulte también

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess