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 指定要NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES的 Type 成員、要NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1的 Revision 成員,以及要NDIS_SIZEOF_DEVICE_OBJECT_ATTRIBUTES_REVISION_1的 Size 成員。
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) |