Compartir a través de


SCSI_WMI_REQUEST_BLOCK estructura (srb.h)

Esta estructura es una versión especial de un SCSI_REQUEST_BLOCK para su uso con comandos WMI.

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

typedef struct _SCSI_WMI_REQUEST_BLOCK {
  USHORT Length;
  UCHAR  Function;
  UCHAR  SrbStatus;
  UCHAR  WMISubFunction;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  Reserved1;
  UCHAR  WMIFlags;
  UCHAR  Reserved2[2];
  ULONG  SrbFlags;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  PVOID  DataPath;
  PVOID  Reserved3;
  PVOID  OriginalRequest;
  PVOID  SrbExtension;
  ULONG  Reserved4;
  ULONG  Reserved6;
  UCHAR  Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;

Miembros

Length

Especifica el tamaño en bytes de esta estructura.

Function

SRB_FUNCTION_WMI, que especifica que la solicitud es una solicitud WMI. Si este miembro no está establecido en SRB_FUNCTION_WMI, el controlador de minipuerto debe producir un error en la solicitud.

SrbStatus

Devuelve el estado de la solicitud completada. El controlador de minipuerto debe establecer este miembro antes de que notifique al controlador específico del sistema operativo que la solicitud se ha completado llamando a ScsiPortNotification con RequestComplete. El valor de este miembro puede ser cualquier valor enumerado para SrbStatus en SCSI_REQUEST_BLOCK.

WMISubFunction

Indica la acción WMI que se va a realizar. Un controlador de minipuerto llama a ScsiPortWmiDispatchFunction con MinorFunction establecido en este valor. El valor de subfunción corresponde al número irP secundario de WMI que identifica la operación WMI.

PathId

Indica el puerto o bus SCSI de la solicitud. Este valor es de base cero. Si SRB_WMI_FLAGS_ADAPTER_REQUEST se establece en WMIFlags, se reserva este miembro.

TargetId

Indica el controlador de destino o el dispositivo del bus. Si SRB_WMI_FLAGS_ADAPTER_REQUEST se establece en WMIFlags, se reserva este miembro.

Lun

Indica el número de unidad lógica del dispositivo. Si SRB_WMI_FLAGS_ADAPTER_REQUEST se establece en WMIFlags, se reserva este miembro.

Reserved1

Reservado para uso del sistema y no disponible para su uso por los controladores de minipuerto.

WMIFlags

Indica que la solicitud WMI es para el adaptador si se establece SRB_WMI_FLAGS_ADAPTER_REQUEST y que pathId, TargetId y Lun están reservados. De lo contrario, WMIFlags será NULL, lo que indica que la solicitud es para el dispositivo especificado por PathId, TargetId y Lun.

Reserved2[2]

Reservado para uso del sistema y no disponible para su uso por los controladores de minipuerto.

SrbFlags

Indica varios parámetros y opciones sobre la solicitud. SrbFlags es de solo lectura. Este miembro se establecerá en una o varias de las marcas siguientes ORed juntas:

SRB_FLAGS_DATA_IN

Indica que los datos se transferirán desde el dispositivo al sistema.

SRB_FLAGS_DATA_OUT

Indica que los datos se transferirán del sistema al dispositivo.

SRB_FLAGS_NO_DATA_TRANSFER

Indica ninguna transferencia de datos con esta solicitud. Si se establece, las marcas SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN y SRB_FLAGS_UNSPECIFIED_DIRECTION están claras.

SRB_FLAGS_DISABLE_SYNCH_TRANSFER

Indica el HBA, si es posible, que debe realizar E/S asincrónica para esta solicitud de transferencia. Si la E/S sincrónica se negoció anteriormente, el HBA debe renegociar la E/S asincrónica antes de realizar la transferencia.

SRB_FLAGS_DISABLE_DISCONNECT

Indica que el HBA no debe permitir que el destino se desconecte del bus SCSI durante el procesamiento de esta solicitud.

DataTransferLength

Indica el tamaño en bytes del búfer de datos. Un controlador de minipuerto llama a ScsiPortWmiDispatchFunction con BufferSize establecido en este valor. Si se produce una ejecución inferior, el controlador de minipuerto debe actualizar este miembro al número de bytes transferidos realmente.

TimeOutValue

Indica el intervalo en segundos que la solicitud puede ejecutarse antes de que el controlador de puerto específico del sistema operativo considere que agota el tiempo de espera. Los controladores de minipuerto no son necesarios para las solicitudes de tiempo porque el controlador de puerto ya lo hace.

DataBuffer

Apunta al búfer de datos. Un controlador de minipuerto llama a ScsiPortWmiDispatchFunction con Buffer establecido en este valor. Los controladores de minipuerto pueden usar este valor como puntero de datos independientemente del valor de MapBuffers en el PORT_CONFIGURATION_INFORMATION para el HBA. Un controlador de minipuerto no puede transferir datos directamente al búfer mediante DMA.

DataPath

Especifica la ruta de acceso de datos WMI para esta solicitud. Un controlador de minipuerto llama a ScsiPortWmiDispatchFunction con DataPath establecido en este valor.

Reserved3

Reservado para uso del sistema y no disponible para su uso por los controladores de minipuerto.

OriginalRequest

Apunta al IRP para esta solicitud. Este miembro es irrelevante para los controladores de minipuerto.

SrbExtension

Apunta a la extensión Srb. Un controlador de minipuerto no debe usar este miembro si establece SrbExtensionSize en cero en el HW_INITIALIZATION_DATA. El controlador de puerto específico del sistema operativo no inicializa la memoria en SrbExtension y el HBA puede acceder directamente a los datos determinados por el controlador de miniporte. La dirección física correspondiente se puede obtener llamando a ScsiPortGetPhysicalAddress con el puntero SrbExtension .

Reserved4

Reservado para uso del sistema y no disponible para su uso por los controladores de minipuerto.

Reserved6

Reservado para uso del sistema y no disponible para su uso por los controladores de minipuerto. Este miembro es válido a partir de Windows Server 2003 con SP1.

Reserved5[16]

Reservado para uso del sistema y no disponible para su uso por los controladores de minipuerto.

Comentarios

Los controladores de filtro y clase de almacenamiento de Windows NT pueden enviar SRB WMI al controlador de puerto del sistema. El controlador de puerto del sistema controlará determinadas solicitudes WMI en nombre de los controladores de minipuerto. Si el controlador de puerto no puede controlar una solicitud WMI, reenvía la solicitud al controlador de minipuerto.

Un controlador de minipuerto recibe solicitudes WMI del controlador de puerto solo si el controlador de miniporte establece WmiDataProvider en la estructura PORT_CONFIGURATION_INFORMATION. Si el controlador de minipuerto admite una solicitud, debe procesarla y completarla llamando dos veces a ScsiPortNotification , primero con RequestComplete y, a continuación, con NextRequest (o NextLuRequest).

Para obtener información sobre cómo admitir WMI en controladores de minipuerto, consulta Instrumental de administración de Windows.

Requisitos

Requisito Valor
Header srb.h (incluya Storport.h, Srb.h, Storport.h, Minitape.h)

Consulte también

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction