若要使 SDV 能够验证 NDIS 驱动程序,必须使用回调函数角色类型声明每个回调函数。 回调函数角色类型在 Ndis.h 头文件中定义,并在使用该头文件生成驱动程序时包含。
在声明回调函数定义之前,必须声明驱动程序的回调函数。 下面的代码示例显示了 MiniportInitializeEx 回调函数的函数角色类型声明。 必须使用MINIPORT_INITIALIZE角色类型声明此回调函数。 在此示例中,回调函数称为 myMiniportInitializeEx。
#include <ndis.h>
MINIPORT_INITIALIZE myMiniportInitializeEx
如果回调函数具有函数原型声明,则必须将函数原型替换为函数角色类型声明。 有关函数角色类型声明的详细信息,请参阅 “使用函数角色类型声明” 主题。
下表显示了与其关联的回调函数角色类型和 NDIS 回调函数。
必需的函数声明
| NDIS 微型端口驱动程序回调函数 | 角色类型名称 |
|---|---|
MINIPORT_ADD_DEVICE |
|
MINIPORT_CANCEL_DIRECT_OID_REQUEST |
|
MINIPORT_CANCEL_OID_REQUEST |
|
MINIPORT_CANCEL_SEND |
|
MINIPORT_CHECK_FOR_HANG |
|
MINIPORT_DEVICE_PNP_EVENT_NOTIFY |
|
MINIPORT_DIRECT_OID_REQUEST |
|
MINIPORT_DISABLE_INTERRUPT (No improvement needed as it is a function name in a technical context) |
|
MINIPORT_DISABLE_MESSAGE_INTERRUPT |
|
MINIPORT_UNLOAD |
|
MINIPORT_ENABLE_INTERRUPT |
|
MINIPORT_ENABLE_MESSAGE_INTERRUPT |
|
MINIPORT_FILTER_RESOURCE_REQUIREMENTS |
|
MINIPORT_HALT |
|
MINIPORT_INITIALIZE |
|
MINIPORT_ISR |
|
MINIPORT_INTERRUPT_DPC |
|
MINIPORT_MESSAGE_INTERRUPT |
|
MINIPORT_MESSAGE_INTERRUPT_DPC |
|
MINIPORT_OID_REQUEST |
|
MINIPORT_PAUSE |
|
MINIPORT_PROCESS_SG_LIST |
|
MINIPORT_REMOVE_DEVICE |
|
MINIPORT_RESET |
|
MINIPORT_RESTART |
|
MINIPORT_RETURN_NET_BUFFER_LISTS |
|
MINIPORT_SEND_NET_BUFFER_LISTS |
|
MINIPORT_SET_OPTIONS |
|
MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE |
|
MINIPORT_SHUTDOWN |
|
MINIPORT_START_DEVICE |
|
MINIPORT_SYNCHRONIZE_INTERRUPT |
|
MINIPORT_SYNCHRONIZE_MESSAGE_INTERRUPT |
| NDIS 其他回调函数 | 角色类型名称 |
|---|---|
NDIS_IO_WORKITEM_ROUTINE 常规 例程 是在 NdisQueueIoWorkItem 函数的第二个参数中指定的回调例程。 |
NDIS_IO_WORKITEM_FUNCTION |
NDIS_TIMER_FUNCTION |
建议的函数声明
以下函数角色类型当前不在 NDIS 驱动程序的 SDV 规则中使用;但是,它们很可能在未来使用。 Windows 7 中完全支持这些函数角色类型,建议使用其特定的函数角色类型来声明这些回调。
| NDIS 筛选器驱动程序回调函数 | 角色类型名称 |
|---|---|
FILTER_ATTACH |
|
取消直接 OID 请求过滤器 |
|
FILTER_CANCEL_SEND_NET_BUFFER_LISTS |
|
FILTER_CANCEL_OID_REQUEST |
|
FILTER_DETACH |
|
FILTER_DEVICE_PNP_EVENT_NOTIFY |
|
FILTER_DIRECT_OID_REQUEST |
|
过滤直接OID请求完成 |
|
DRIVER_UNLOAD(驱动程序卸载) |
|
FILTER_NET_PNP_EVENT |
|
FILTER_OID_REQUEST |
|
FILTER_OID_REQUEST_COMPLETE |
|
过滤暂停 |
|
FILTER_RECEIVE_NET_BUFFER_LISTS (过滤接收的网络缓冲列表) |
|
过滤器_重启 |
|
FILTER_RETURN_NET_BUFFER_LISTS |
|
FILTER_SEND_NET_BUFFER_LISTS |
|
FILTER_SEND_NET_BUFFER_LISTS_COMPLETE |
|
过滤器设置模块选项 |
|
过滤器设置选项 |
|
过滤器状态 |
| CoNDIS 微型端口驱动程序回调函数 | 角色类型名称 |
|---|---|
MINIPORT_CO_ACTIVATE_VC |
|
MINIPORT_CO_CREATE_VC |
|
MINIPORT_CO_DEACTIVATE_VC |
|
MINIPORT_CO_DELETE_VC |
|
MINIPORT_CO_OID_REQUEST |
|
MINIPORT_CO_SEND_NET_BUFFER_LISTS |
| NDIS 协议驱动程序回调函数 | 角色类型名称 |
|---|---|
PROTOCOL_BIND_ADAPTER_EX |
|
PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX |
|
PROTOCOL_DIRECT_OID_REQUEST_COMPLETE |
|
协议网络即插即用事件 (PROTOCOL_NET_PNP_EVENT) |
|
PROTOCOL_OID_REQUEST_COMPLETE |
|
PROTOCOL_OPEN_ADAPTER_COMPLETE_EX |
|
接收网络缓冲区列表协议 (PROTOCOL_RECEIVE_NET_BUFFER_LISTS) |
|
PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE |
|
PROTOCOL_SET_OPTIONS |
|
PROTOCOL_STATUS_EX |
|
PROTOCOL_UNBIND_ADAPTER_EX |
|
PROTOCOL_UNINSTALL |
| NDIS 协议 CL 回调函数 | 角色类型名称 |
|---|---|
PROTOCOL_CL_ADD_PARTY_COMPLETE |
|
PROTOCOL_CL_CALL_CONNECTED |
|
PROTOCOL_CL_CLOSE_AF_COMPLETE |
|
PROTOCOL_CL_CLOSE_CALL_COMPLETE |
|
PROTOCOL_CL_DEREGISTER_SAP_COMPLETE |
|
PROTOCOL_CL_DROP_PARTY_COMPLETE |
|
PROTOCOL_CL_INCOMING_CALL(协议_CL_传入呼叫) |
|
PROTOCOL_CL_INCOMING_CALL_QOS_CHANGE |
|
PROTOCOL_CL_INCOMING_CLOSE_CALL |
|
PROTOCOL_CL_INCOMING_DROP_PARTY |
|
PROTOCOL_CL_MAKE_CALL_COMPLETE |
|
PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE |
|
(PROTOCOL_CL_NOTIFY_CLOSE_AF remains unchanged, as it appears to be a specific technical term that should not be translated into Chinese.) |
|
PROTOCOL_CL_OPEN_AF_COMPLETE |
|
PROTOCOL_CL_OPEN_AF_COMPLETE_EX |
|
PROTOCOL_CL_REGISTER_SAP_COMPLETE(协议_CL_注册_SAP_完成) |
| CoNDIS CM 回调函数 | 角色类型名称 |
|---|---|
PROTOCOL_CM_ACTIVATE_VC_COMPLETE |
|
PROTOCOL_CM_ADD_PARTY |
|
PROTOCOL_CM_CLOSE_AF |
|
PROTOCOL_CM_CLOSE_CALL |
|
PROTOCOL_CM_DEACTIVATE_VC_COMPLETE |
|
PROTOCOL_CM_DEREGISTER_SAP |
|
PROTOCOL_CM_DROP_PARTY |
|
PROTOCOL_CM_INCOMING_CALL_COMPLETE |
|
PROTOCOL_CM_MAKE_CALL |
|
PROTOCOL_CM_MODIFY_QOS_CALL (修改服务质量协议调用协议) |
|
PROTOCOL_CM_NOTIFY_CLOSE_AF_COMPLETE |
|
PROTOCOL_CM_OPEN_AF |
|
PROTOCOL_CM_REG_SAP |
| CoNDIS CO 回调函数 | 角色类型名称 |
|---|---|
PROTCOL_CO_AF_REGISTER_NOTIFY |
|
PROTOCOL_CO_CREATE_VC |
|
PROTOCOL_CO_DELETE_VC |
|
PROTOCOL_CO_OID_REQUEST |
|
PROTOCOL_CO_OID_REQUEST_COMPLETE |
|
PROTOCOL_CO_RECEIVE_NET_BUFFER_LISTS |
|
PROTOCOL_CO_SEND_NET_BUFFER_LISTS_COMPLETE |
|
PROTOCOL_CO_STATUS_EX |