ChangerClassSendSrbSynchronous 函式 (mcd.h)

ChangerClassSendSrbSynchronous 例程會同步傳送 SRB 至指定的裝置。

語法

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

參數

[in] DeviceObject

目標裝置的功能裝置物件的指標。

[in] Srb

部分初始化 SCSI 要求區塊的指標, (SRB) 傳送至目標裝置。

[in] Buffer

指定 Srb-DataBuffer> 應該指向的緩衝區位址。 ChangerClassSendSrbSynchronous 會為此緩衝區建立 MDL,並將它傳遞給 SRB IRP 中的目標設備驅動器。

[in] BufferSize

指定緩衝區的長度,以位元組為單位。

[in] WriteToDevice

為TRUE 時,表示寫入作業,並在 FALSE 時表示讀取作業。

傳回值

如果成功傳輸 SRB,或因為某些原因而無法傳送 SRB,則傳回STATUS_SUCCESS。如果 SRB 失敗或無法傳送適當的錯誤碼。

備註

Changer miniclass 驅動程式可以在 Microsoft Windows XP 和更新版本的作業系統中呼叫這個類別驅動程式例程。 迷你類別驅動程式應該使用此例程將 SRB 傳送至埠驅動程式,而不是直接呼叫 classpnp.sys 連結庫例程 ClassSendSrbSynchronous 。 雖然 classpnp.sys 隨附於 Windows 驅動程式套件 (WDK) ,但它不是支援的 API,而且直接呼叫此連結庫例程的驅動程式可能無法在未來版本中正常運作。

ChangerClassSendSrbSynchronous 完成部分初始化 SRB 的初始化,並使用目標裝置物件中所指示的值來設定 SRB 的旗標。 ChangerClassSendSrbSynchronous 會建立 IRP,用來將 SRB 傳達至目標裝置、傳送 IRP,然後處理 IRP 的完成。

如果 IRP 失敗,且感知要求數據指出應該重試 IRP,ChangerClassSendSrbSynchronous 將會重新傳送 IRP。

規格需求

需求
目標平台 桌面
標頭 mcd.h (包括 Mcd.h、Ntddchgr.h)
程式庫 Mcd.lib

另請參閱

SCSI_REQUEST_BLOCK