NdisSetOptionalHandlers 函式 (ndis.h)
NDIS 驅動程式可以呼叫 NdisSetOptionalHandlers 函式來設定或變更驅動程式函式的進入點。
語法
NDIS_STATUS NdisSetOptionalHandlers(
NDIS_HANDLE NdisHandle,
PNDIS_DRIVER_OPTIONAL_HANDLERS OptionalHandlers
);
參數
NdisHandle
識別驅動程式或驅動程序實例的 NDIS 句柄。
對於通訊協議驅動程式,這是傳遞至 ProtocolSetOptions 函式的 NdisDriverHandle 值,或呼叫 NdisOpenAdapterEx 函式取得的 NdisBindingHandle 值。
針對迷你埠驅動程式,這是傳遞至 MiniportSetOptions 函式的 NdisDriverHandle 值
對於篩選驅動程式,這是傳遞至 FilterSetOptions 函式的 NdisDriverHandle 值,或傳遞至 FilterAttach 函式的 NdisFilterHandle 值。
OptionalHandlers
下列其中一個 NDIS 結構的指標:
NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICSNDIS_MINIPORT_SS_CHARACTERISTICS
NDIS_NDK_PROVIDER_CHARACTERISTICS
NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS傳回值
NdisSetOptionalHandlers 會傳回下列其中一個狀態值:
傳回碼 | Description |
---|---|
|
如果設定驅動程序進入點,NdisSetOptionalHandlers 會傳回NDIS_STATUS_SUCCESS。 |
|
NdisSetOptionalHandlers 因為資源不足而失敗。 |
|
NdisSetOptionalHandlers 失敗,因為迷你埠驅動程式未指定它支援 NDIS 6.0 或更新版本。 迷你埠驅動程式在呼叫 時指定其 NDIS 版本 NdisMRegisterMiniportDriver 函式。 |
|
NdisSetOptionalHandlers 如果上述值都未套用 ,則會 傳回NDIS_STATUS_FAILURE。 |
備註
NDIS 驅動程式可以呼叫 NdisSetOptionalHandlers 來覆寫其預設進入點。 在 OptionalHandler 傳遞的結構類型會根據驅動程序的類型而有所不同。
通訊協議驅動程式可以在 ProtocolSetOptions 函式的內容中呼叫 NdisSetOptionalHandlers。 作為選項,通訊協定驅動程式可以從 ProtocolBindAdapterEx 函式或 呼叫 NdisSetOptionalHandlers通訊協議驅動程式從 NdisOpenAdapterEx 函式取得有效的句柄之後,ProtocolOpenAdapterCompleteEx 函式。
在此情況下,有效的結構如下:
NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS如需 2 個 chimney 卸除結構的詳細資訊,請參閱 NDIS 6.0 TCP chimney 卸除檔。
Miniport 驅動程式會在 MiniportSetOptions 函式的內容中呼叫 NdisSetOptionalHandlers。
在此情況下,有效的結構如下:
NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICSNDIS_MINIPORT_SS_CHARACTERISTICS
NDIS_NDK_PROVIDER_CHARACTERISTICS
NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS如需 2 個 chimney 卸除結構的詳細資訊,請參閱 NDIS 6.0 TCP chimney 卸除檔。
篩選驅動程式會在 FilterSetOptions 函式的內容中呼叫 NdisSetOptionalHandlers。
目前 Windows 版本中沒有選擇性的篩選驅動程式服務。
篩選驅動程式可以呼叫篩選模組的 NdisSetOptionalHandlers 。 篩選驅動程式會在的內容中呼叫 NdisSetOptionalHandlers FilterSetModuleOptions 函 式。
在此情況下,有效的結構如下:
NDIS_FILTER_PARTIAL_CHARACTERISTICSNDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS
NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS
NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS
NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS
如需 4 個 chimney 卸除結構的詳細資訊,請參閱 NDIS 6.0 TCP chimney 卸除檔。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Irql_Miscellaneous_Function (ndis) |