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結構,並將結構傳遞至 NdisRegisterDeviceExDeviceObjectAttributes 參數。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
標頭 ndis.h (包含 Ndis.h)

另請參閱

NDIS_OBJECT_HEADER

NdisRegisterDeviceEx

UNICODE_STRING