SRB_IO_CONTROL結構 (ntddscsi.h)
typedef struct _SRB_IO_CONTROL {
ULONG HeaderLength;
UCHAR Signature[8];
ULONG Timeout;
ULONG ControlCode;
ULONG ReturnCode;
ULONG Length;
} SRB_IO_CONTROL, *PSRB_IO_CONTROL;
HeaderLength
sizeof(SRB_IO_CONTROL)。
Signature[8]
識別此要求的應用程式專用目標 HBA。 此簽章可用來防止廠商之間的 ControlCode 值衝突。 它應該是 ASCII 字元的字串。 如果迷你埠驅動程式無法辨識輸入 Signature 值,則必須完成狀態為 SRB_STATUS_INVALID_REQUEST 的要求。
Timeout
指出要求可以在OS特定埠驅動程序考慮逾時之前的秒內執行間隔。迷你埠驅動程式應強制執行SRB_IO_CONTROL逾時,特別是針對任何私用定義的SRB_IO_CONTROL。
ControlCode
表示要執行的作業。 沒有系統定義的作業。 驅動程式必須定義值作為一組私人 I/O 控制程式代碼,應用程式可以透過呼叫 Win32 DeviceIoControl 函式來提出要求。 如需定義裝置控制要求的私人 I/O 控制碼的詳細資訊,請參閱使用 I/O 控制碼 。
ReturnCode
傳回狀態代碼,以供要求的應用程式進行檢查。
Length
指出緊接在數據區域之後的 位元元組大小。 此區域可針對特定作業分割成輸入和輸出區域。 針對輸入要求,DataBuffer 的內容會複製到要求者,最多會複製到 DataTransferLength 的傳回值。
應用程式會使用此結構,將要求直接傳送至應用程式專用 HBA。 請注意,這類應用程式也必須設定要求,以對其專用 HBA 進行程序設計。
要求 | 價值 |
---|---|
標頭 | ntddscsi.h (包括 Ntddscsi.h) |
SCSI 埠 I/O 控制碼