Compartir a través de


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

Se llama a la rutina HwScsiWmiSetDataItem de un controlador de miniporte para cambiar un único elemento de datos en una instancia de un bloque de datos. Esta rutina es opcional.

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

Sintaxis

PSCSIWMI_SET_DATAITEM PscsiwmiSetDataitem;

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

Parámetros

[in] DeviceContext

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

[in] RequestContext

Apunta a la estructura SCSIWMI_REQUEST_CONTEXT que el controlador de minipuerto 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] DataItemId

Especifica el identificador del elemento de datos que se va a establecer.

[in] BufferSize

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

[in] Buffer

Apunta a un búfer que contiene el nuevo valor del elemento de datos.

Valor devuelto

HwScsiWmiSetDataItem 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 el que se pasó a HwScsiWmiSetDataItem. Aunque el tipo de datos de valor devuelto es BOOLEAN, la rutina HwScsiWmiSetDataItem devuelve realmente un valor de estado SRB.

Comentarios

Cuando un controlador de minipuerto recibe una SRB en la 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 HwScsiWmiSetDataItem del controlador de miniporte si MinorFunction indica una solicitud para cambiar un elemento en una instancia de un bloque de datos.

Si un controlador de minipuerto no implementa una rutina HwScsiWmiSetDataItem , debe establecer SetWmiDataItem en NULL en el SCSI_WMILIB_CONTEXT el controlador de minipuerto pasa a ScsiPortWmiDispatchFunction. En este caso, el controlador de puerto devolverá SRB_STATUS_ERROR al autor de la llamada.

Si la solicitud no está en lápiz, el controlador de minipuerto debe llamar a ScsiPortWmiPostProcess en su devolución de llamada HwScsiWmiSetDataItem . De lo contrario, el controlador de minipuerto debe llamar a ScsiPortWmiPostProcess cuando la solicitud se complete realmente. El controlador de minipuerto debe llamar a ScsiPortWmiPostProcess con el valor SrbStatus adecuado.

Si el elemento es de solo lectura, el controlador de miniporta llama a ScsiPortWmiPostProcess con SRB_STATUS_ERROR. De lo contrario, el controlador de minipuerto cambia el elemento y llama a ScsiPortWmiPostProcess con SRB_STATUS_SUCCESS.

Requisitos

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

Consulte también

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess