StorPortAllocateMdl 函数 (storport.h)

StorPortAllocateMdl 例程分配 MDL 来描述给定的非分页池内存。

语法

ULONG StorPortAllocateMdl(
  [in]  PVOID HwDeviceExtension,
  [in]  PVOID BufferPointer,
  [in]  ULONG NumberOfBytes,
  [out] PVOID *Mdl
);

参数

[in] HwDeviceExtension

指向主机总线适配器的硬件设备扩展的指针 (HBA) 。

[in] BufferPointer

指向 MDL 要描述的缓冲区的基虚拟地址的指针。

[in] NumberOfBytes

此参数指定 MDL 要描述的缓冲区的长度(以字节为单位)。

[out] Mdl

用于接收分配的 MDL 的指针。

返回值

StorPortAllocateMdl 返回以下状态代码之一:

返回代码 说明
STOR_STATUS_NOT_IMPLEMENTED
此函数未在活动操作系统上实现。
STOR_STATUS_SUCCESS
指示例程已成功分配 MDL。
STOR_STATUS_INVALID_PARAMETER
用于接收 MDL 的指针为 NULL

指向缓冲区的指针为 NULL

STOR_STATUS_INVALID_IRQL
调用是在无效的 IRQL 上进行的。
STOR_STATUS_INSUFFICIENT_RESOURCES
无法分配 MDL 来描述给定的缓冲区。

注解

微型端口驱动程序调用 StorPortAllocateMdl 例程来分配 MDL 来描述非分页池中的内存块。 为了释放 MDL,微型端口驱动程序调用 StorPortFreeMdl 例程。

要求

要求
目标平台 通用
标头 storport.h (包括 Storport.h)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 StorPortIrql (storport)