共用方式為


SCSI_PNP_REQUEST_BLOCK 結構 (srb.h)

SCSI_PNP_REQUEST_BLOCK 結構是用於隨插即用 (PNP) 要求的特殊SCSI_REQUEST_BLOCK版本。

注意 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

Miniport 驅動程序應該忽略此成員。

DataTransferLength

Miniport 驅動程序應該忽略此成員。

TimeOutValue

在 Storport 驅動程序判斷要求逾時之前,要求可執行的間隔,以秒為單位。

DataBuffer

Miniport 驅動程序應該忽略此成員。

SenseInfoBuffer

Miniport 驅動程序應該忽略此成員。

NextSrb

Miniport 驅動程序應該忽略此成員。

OriginalRequest

Miniport 驅動程序應該忽略此成員。

SrbExtension

SRB 延伸模組的指標。 如果迷你埠驅動程式將 SrbExtensionSize 設定為 HW_INITIALIZATION_DATA 結構中的零,則不得使用此成員。 Storport 驅動程式不會初始化這個成員所指向的記憶體。 HBA 可以直接存取迷你埠驅動程式寫入 SRB 擴充功能的數據。 迷你埠驅動程式可以藉由呼叫 StorPortGetPhysicalAddress 例程來取得 SRB 延伸模組的實體位址。

SrbPnPFlags

PNP 旗標。 目前,唯一允許的旗標是SRB_PNP_FLAGS_ADAPTER_REQUEST,這表示 PNP 要求適用於適配卡,而不是適配卡上的其中一個裝置。 如果設定此旗標,迷你埠驅動程序應該忽略 PathIdTargetIdLun 中的值。

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 的結構。

規格需求

需求
標頭 srb.h (包含 Storport.h、Minitape.h、Srb.h)

另請參閱

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification