NDIS_DEVICE_OBJECT_ATTRIBUTES 结构 (ndis.h)
NDIS_DEVICE_OBJECT_ATTRIBUTES结构定义 NDIS 筛选器或微型端口驱动程序可以传递给 NdisRegisterDeviceEx 函数的设备属性。
语法
typedef struct _NDIS_DEVICE_OBJECT_ATTRIBUTES {
NDIS_OBJECT_HEADER Header;
PNDIS_STRING DeviceName;
PNDIS_STRING SymbolicName;
PDRIVER_DISPATCH *MajorFunctions;
ULONG ExtensionSize;
PCUNICODE_STRING DefaultSDDLString;
LPCGUID DeviceClassGuid;
} NDIS_DEVICE_OBJECT_ATTRIBUTES, *PNDIS_DEVICE_OBJECT_ATTRIBUTES;
成员
Header
NDIS_DEVICE_OBJECT_ATTRIBUTES 结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES,将 Revision 成员设置为NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1,并将 Size 成员设置为NDIS_SIZEOF_DEVICE_OBJECT_ATTRIBUTES_REVISION_1。
DeviceName
指向类型为 NDIS_STRING 的变量的指针,该变量包含以 null 结尾的 Unicode 字符串,该字符串命名设备对象。 字符串必须是完整路径名称,例如 \Device\DeviceName。 对于 Microsoft Windows 2000 及更高版本,NDIS 将NDIS_STRING类型定义为 UNICODE_STRING 类型。
SymbolicName
指向类型为 NDIS_STRING 的变量的指针,该变量包含 Unicode 字符串,该字符串是正在注册的设备的 Win32 可见名称。 通常, SymbolicName 采用以下格式:\DosDevices\SymbolicName。
MajorFunctions
指向设备驱动程序调度例程的一个或多个入口点数组的指针。 驱动程序必须设置与驱动程序为设备对象处理的IRP_MJ_XXX 代码数相同的单独调度入口点数。 每个调度例程的声明如下:
NTSTATUS
(*PDRIVER_DISPATCH) (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
调度例程具有以下参数:
DeviceObject
调度例程的设备对象。
Irp
调度例程的 IRP。
驱动程序不得为 PnP 或电源管理处理程序提供入口点,因为创建的设备对象不适用于物理设备,因此不会接收 PnP 或电源管理 IRP。
ExtensionSize
要为设备对象的设备扩展分配的驱动程序确定的字节数。 设备扩展的内部结构由驱动程序定义。
DefaultSDDLString
设备对象的默认安全设置的字符串表示形式。 应用于设备对象的安全性派生自此字符串。
安全设置是在 SDDL) 安全描述符定义语言 (子集中指定的。 还提供了一组预定义的常量 (SDDL_DEVOBJ_ XXX) 。 有关详细信息,请参阅 保护设备对象。
DeviceClassGuid
为 NDIS 保留。 将此成员设置为 NULL。
注解
NDIS 筛选器或微型端口驱动程序可以调用 NdisRegisterDeviceEx 函数来注册设备。 若要指定设备属性,驱动程序分配并初始化NDIS_DEVICE_OBJECT_ATTRIBUTES结构,并将该结构传递给 NdisRegisterDeviceEx 的 DeviceObjectAttributes 参数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |