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 會傳回下列其中一個狀態值:

傳回碼 Description
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx 已成功註冊裝置。
NDIS_STATUS_NOT_SUPPORTED
呼叫端不是 NDIS 驅動程式。
NDIS_STATUS_XXX 或 NTSTATUS_XXX
驅動程式嘗試註冊裝置失敗。 通常,這類錯誤狀態會從 NdisXxx 函式或內核模式支援例程傳播。

備註

迷你埠驅動程式和篩選驅動程式可以呼叫 NdisRegisterDeviceEx 來註冊虛擬設備。

注意NDIS 驅動程式不得修改 NdisRegisterDeviceEx 所建立之DEVICE_OBJECT結構的 DeviceExtension 成員。
 
如果 NDIS 驅動程式需要空間來取得裝置物件中的內容資訊,驅動程式可以針對 中的 ExtensionSize 成員傳遞非零值DeviceObjectAttributes 參數NDIS_DEVICE_OBJECT_ATTRIBUTES結構。 在此情況下,NDIS 會為驅動程式配置擴充功能,而驅動程式可以呼叫 NdisGetDeviceReservedExtension 函 式可取得延伸模組的指標。

當不再需要裝置時,驅動程式必須接著呼叫 NdisDeregisterDeviceEx 函 式。 如果 NdisRegisterDeviceEx 配置延伸模組, NdisDeregisterDeviceEx 會釋出延伸模組。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 合規性規則 Irql_Miscellaneous_Function (ndis)

另請參閱

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver