NdisRegisterDeviceEx 函数 (ndis.h)
NdisRegisterDeviceEx 函数创建基于指定属性的设备对象。
语法
NDIS_STATUS NdisRegisterDeviceEx(
[in] NDIS_HANDLE NdisHandle,
[in] PNDIS_DEVICE_OBJECT_ATTRIBUTES DeviceObjectAttributes,
[out] PDEVICE_OBJECT *pDeviceObject,
[out] PNDIS_HANDLE NdisDeviceHandle
);
参数
[in] NdisHandle
调用方通过调用 获取的微型端口驱动程序句柄或筛选器驱动程序句柄 NdisMRegisterMiniportDriver 函数或 NdisFRegisterFilterDriver 函数分别。
[in] DeviceObjectAttributes
指向 的指针 NDIS_DEVICE_OBJECT_ATTRIBUTES 结构,其中包含新设备的属性。
[out] pDeviceObject
一个指针,指向指向新创建的 DEVICE_OBJECT 结构的指针(如果调用成功)。 如果调用失败, pDeviceObject 设置为指向 NULL。
[out] NdisDeviceHandle
指向调用方提供的变量的指针,如果成功,此函数将返回设备对象的句柄。 此句柄是驱动程序随后调用的 NdisDeregisterDeviceEx 函数的必需参数。
返回值
NdisRegisterDeviceEx 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
NdisRegisterDeviceEx 已成功注册设备。 |
|
调用方不是 NDIS 驱动程序。 |
|
驱动程序尝试注册设备失败。 通常,此类错误状态是从 NdisXxx 函数或内核模式支持例程传播的。 |
注解
微型端口驱动程序和筛选器驱动程序可以调用 NdisRegisterDeviceEx 来注册虚拟设备。
注意NDIS 驱动程序不得修改 NdisRegisterDeviceEx 创建的 DEVICE_OBJECT 结构的 DeviceExtension 成员。
当不再需要设备时,驱动程序随后必须调用 NdisDeregisterDeviceEx 函数。 如果 NdisRegisterDeviceEx 分配了扩展, 则 NdisDeregisterDeviceEx 释放该扩展。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | Irql_Miscellaneous_Function (ndis) |