共用方式為


NdisRegisterProtocolDriver 函式 (ndis.h)

通訊協議驅動程式會呼叫 NdisRegisterProtocolDriver 函式,向 NDIS 註冊其 ProtocolXxx 函式。

語法

NDIS_STATUS NdisRegisterProtocolDriver(
  [in, optional] NDIS_HANDLE                           ProtocolDriverContext,
  [in]           PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS ProtocolCharacteristics,
  [out]          PNDIS_HANDLE                          NdisProtocolHandle
);

參數

[in, optional] ProtocolDriverContext

驅動程式配置內容區域的句柄,驅動程式會維護狀態和組態資訊。

[in] ProtocolCharacteristics

的指標 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 通訊協定驅動程式使用其 ProtocolXxx 函式進入點建立和初始化的結構。

[out] NdisProtocolHandle

呼叫端提供的句柄變數指標。 NDIS 會將句柄寫入此變數,以唯一識別正在註冊的驅動程式。 驅動程式必須儲存此句柄,才能用於後續 的 NdisXxx 函數調用。

傳回值

NdisRegisterProtocolDriver 會傳回下列其中一個狀態值:

傳回碼 Description
NDIS_STATUS_SUCCESS

NdisRegisterProtocolDriver 會在註冊通訊協定驅動程式時傳回NDIS_STATUS_SUCCESS。

NDIS_STATUS_BAD_VERSION
ProtocolCharacteristics 結構之 MajorNdisVersion 成員中指定的版本無效。
NDIS_STATUS_BAD_CHARACTERISTICS
ProtocolCharacteristics 參數中結構的某些成員無效。
NDIS_STATUS_RESOURCES

NdisRegisterProtocolDriver 因為資源不足而失敗。

NDIS_STATUS_FAILURE

NdisRegisterProtocolDriver 如果上述值都未套用,則會傳回NDIS_STATUS_FAILURE。

備註

通訊協議驅動程式會從其 DriverEntry 例程呼叫 NdisRegisterProtocolDriver 函式。 如需 DriverEntry 的詳細資訊,請參閱 NDIS 通訊協定驅動程式的 DriverEntry

呼叫 NdisRegisterProtocolDriver 的 驅動程式必須備妥,才能立即呼叫其任何 ProtocolXxx 函式。

每個通訊協議驅動程式都會藉由設定 來導出一組 ProtocolXxx 函式 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 結構和呼叫 NdisRegisterProtocolDriver。 NDIS 會將此結構複製到 NDIS 連結庫的內部記憶體。

為了允許通訊協定驅動程式註冊選擇性服務,NDIS 會在 NdisRegisterProtocolDriver 的內容中呼叫 ProtocolSetOptions 函式。

通訊協定驅動程式呼叫 NdisDeregisterProtocolDriver 函式可釋放先前使用 NdisRegisterProtocolDriver 配置的資源。

規格需求

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

另請參閱

NDIS 通訊協定驅動程式的 DriverEntry

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterProtocolDriver

NdisSetOptionalHandlers