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

傳回碼 描述
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