SCSI 微型端口驱动程序的 DriverEntry 例程

DriverEntry 例程是大多数 Microsoft Windows 内核模式驱动程序和每个 SCSI 微型端口驱动程序的初始入口点。 微型端口驱动程序的 DriverEntry 例程使用两个 PVOID 类型的输入参数调用,必须执行以下操作:

  1. 用零初始化堆栈中的 HW_INITIALIZATION_DATA (SCSI) 结构。

  2. HwInitializationDataSize 成员设置为 sizeof(HW_INITIALIZATION_DATA)。

  3. 在 HW_INITIALIZATION_DATA 成员中设置特定于驱动程序和 HBA 的值,包括微型端口驱动程序的入口点。 必须设置以下入口点:

    下列入口点可以设置为驱动程序提供的例程,或者必须设置为 NULL

  • HwScsiInterrupt(如果微型端口驱动程序完全使用轮询功能,则为 NULL
  • HwScsiDmaStarted(如果 HBA 使用 PIO 或总线主控形状,则为 NULL
  • HwScsiAdapterState(如果微型端口驱动程序仅在基于 NT 的操作系统平台上运行,或者如果微型端口驱动程序被设计为也可在仅 x86 的 Windows 平台上运行,但 HBA 既没有 BIOS 也没有 x86 实模式驱动程序,则为 NULL
  • HwScsiAdapterControl(如果微型端口驱动程序不支持即插即用,则为 NULL
  1. 在旧版微型端口驱动程序中,设置微型端口驱动程序 HwScsiFindAdapter 例程将使用的、由驱动程序确定的上下文数据。

  2. 调用 ScsiPortInitialize,其中包含输入到 DriverEntry 例程的指针、已填充的 HW_INITIALIZATION_DATA 的地址以及上下文数据的地址(如有)。