NDIS は、プロトコル ドライバーの ProtocolSetOptions 関数を呼び出して、プロトコル ドライバーがオプションのサービスを構成できるようにします。 NDIS は、NdisRegisterProtocolDriver 関数へのプロトコル ドライバーの呼び出しのコンテキスト内で ProtocolSetOptions を呼び出します
ProtocolSetOptions は、オプションの ProtocolXxx 関数の既定のエントリ ポイントを登録し、他のドライバー リソースを割り当てることができます。 ProtocolXxx 関数 オプションを登録するには、プロトコル ドライバーは、NdisSetOptionalHandlers 関数を呼び出し、OptionalHandlers パラメーターで特性構造体を渡します。 この場合、プロトコル ドライバーは、ProtocolSetOptions の NdisDriverHandle パラメーターから、NdisSetOptionalHandlersの NdisHandle パラメーターにハンドルを渡します。
プロトコル ドライバーは、NdisOpenAdapterEx 関数から有効なハンドルを取得した後に、NdisSetOptionalHandlers を、ProtocolBindAdapterEx 関数または ProtocolOpenAdapterCompleteEx 関数から呼び出すこともできます。 この場合、プロトコル ドライバーは、NdisSetOptionalHandlers の NdisHandle パラメーターで NdisOpenAdapterEx の NdisBindingHandle パラメーターからハンドルを渡します。
この場合、有効な特性構造は次のとおりです。
NDIS_PROTOCOL_CO_CHARACTERISTICS
NDIS_CO_CLIENT_OPTIONAL_HANDLERS
NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS
NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS (NDIS 6.0 TCP のチムニー オフロード ドキュメントを参照)
NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS (NDIS 6.0 TCP のチムニー オフロード ドキュメントを参照)