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.
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) |