SCSI_PNP_REQUEST_BLOCK 结构 (storport.h)
SCSI_PNP_REQUEST_BLOCK结构是SCSI_REQUEST_BLOCK的特殊版本,用于 (PNP) 请求进行即插即用。
注意
SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型将来可能会更改或不可用。 建议改用 Storport 驱动程序 和 Storport 微型端口驱动程序 模型。
语法
typedef struct _SCSI_PNP_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR PnPSubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
STOR_PNP_ACTION PnPAction;
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID SenseInfoBuffer;
struct _SCSI_REQUEST_BLOCK *NextSrb;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG SrbPnPFlags;
ULONG Reserved;
UCHAR Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
成员
Length
SCSI_PNP_REQUEST_BLOCK结构的大小(以字节为单位)。
Function
要执行的操作。 对于 SCSI_PNP_REQUEST_BLOCK 结构,此成员始终设置为 SRB_FUNCTION_PNP。
SrbStatus
已完成请求的状态。 微型端口驱动程序应在通知 Storport 驱动程序请求已完成之前设置此值。 微型端口驱动程序通过调用通知类型为 RequestComplete 的 StorPortNotification 例程来通知 Storport 驱动程序请求已完成。 有关可能的状态值的列表,请参阅 SCSI_REQUEST_BLOCK。
PnPSubFunction
当前未使用此成员。 微型端口驱动程序忽略此成员。
PathId
请求的 SCSI 端口或总线标识符。 此值从零开始。
TargetId
总线上的目标控制器或设备标识符。
Lun
设备的 LUN) (逻辑单元号。
PnPAction
要执行的即插即用操作。 此成员可以具有以下值之一:
值 | 含义 |
---|---|
StorStartDevice (0x00) | 启动设备。 |
StorRemoveDevice (0x02) | 删除设备。 |
StorStopDevice (0x04) | 停止设备。 |
StorQueryCapabilities (0x09) | 查询设备的功能。 |
StorQueryResourceRequirements (0x0B) | 查询设备的资源要求。 |
StorFilterResourceRequirements (0x0D) | 筛选设备的资源要求。 |
StorSupriseRemoval (0x17) | 意外删除设备。 此值已添加到 Windows 7 中。 |
SrbFlags
微型端口驱动程序应忽略此成员。
DataTransferLength
微型端口驱动程序应忽略此成员。
TimeOutValue
在 Storport 驱动程序确定请求已超时之前,请求可以执行的间隔(以秒为单位)。
DataBuffer
微型端口驱动程序应忽略此成员。
SenseInfoBuffer
微型端口驱动程序应忽略此成员。
NextSrb
微型端口驱动程序应忽略此成员。
OriginalRequest
微型端口驱动程序应忽略此成员。
SrbExtension
指向 SRB 扩展的指针。 如果微型端口驱动程序在 HW_INITIALIZATION_DATA 结构中将 SrbExtensionSize 设置为零,则不得使用此成员。 Storport 驱动程序不会初始化此成员指向的内存。 HBA 可以直接访问微型端口驱动程序写入 SRB 扩展的数据。 微型端口驱动程序可以通过调用 StorPortGetPhysicalAddress 例程来获取 SRB 扩展的物理地址。
SrbPnPFlags
PNP 标志。 目前,唯一允许的标志是 SRB_PNP_FLAGS_ADAPTER_REQUEST,这表示 PNP 请求针对适配器,而不是针对适配器上的某个设备。 如果设置了此标志,微型端口驱动程序应忽略 PathId、 TargetId 和 Lun 中的值。
Reserved
预留给系统使用。
Reserved4[16]
预留给系统使用。
注解
Storport 驱动程序向微型端口驱动程序发送 SCSI_PNP_REQUEST_BLOCK 请求,以通知微型端口驱动程序影响连接到适配器的存储设备的 Windows 即插即用事件。
Storport 驱动程序调用 HwStorBuildIo 以将 SRB 传递到微型端口驱动程序。 HwStorBuildIo 检查 SRB 的 Function 成员以确定 SRB 的类型。 如果 Function 成员设置为 SRB_FUNCTION_PNP,则 SRB 是 SCSI_PNP_REQUEST_BLOCK 类型的结构。
要求
要求 | 值 |
---|---|
Header | storport.h (包括 Storport.h、Minitape.h、Srb.h) |