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。

言论

Changer miniclass 驱动程序可以在 Microsoft Windows XP 及更高版本的作系统中调用此类驱动程序例程。 微型类驱动程序应使用此例程将 SRB 发送到端口驱动程序,而不是直接调用 classpnp.sys 库例程 ClassSendSrbSynchronous。 尽管 classpnp.sys 随 Windows 驱动程序工具包(WDK)一起提供,但它不是受支持的 API,并且直接调用此库的例程的驱动程序在未来版本中可能无法正常工作。

ChangerClassSendSrbSynchronous 完成部分初始化 SRB 的初始化,使用目标设备对象中指示的值设置 SRB 标志。 ChangerClassSendSrbSynchronous 创建用于将 SRB 传送到目标设备的 IRP,发送 IRP,然后处理 IRP 的完成。

如果 IRP 失败,并且感知请求数据指示应重试 IRP,ChangerClassSendSrbSynchronous 将重新发送 IRP。

要求

要求 价值
目标平台 桌面
标头 mcd.h (包括 Mcd.h、Ntddchgr.h)
Mcd.lib

另请参阅

SCSI_REQUEST_BLOCK