静态驱动程序验证程序 NDIS 函数声明

若要使 SDV 能够验证 NDIS 驱动程序,必须使用回调函数角色类型声明每个回调函数。 回调函数角色类型在 Ndis.h 头文件中定义,并在使用该头文件生成驱动程序时包含。

在声明回调函数定义之前,必须声明驱动程序的回调函数。 下面的代码示例显示了 MiniportInitializeEx 回调函数的函数角色类型声明。 必须使用MINIPORT_INITIALIZE角色类型声明此回调函数。 在此示例中,回调函数称为 myMiniportInitializeEx

#include <ndis.h>  
MINIPORT_INITIALIZE myMiniportInitializeEx

如果回调函数具有函数原型声明,则必须将函数原型替换为函数角色类型声明。 有关函数角色类型声明的详细信息,请参阅 “使用函数角色类型声明” 主题。

下表显示了与其关联的回调函数角色类型和 NDIS 回调函数。

必需的函数声明

NDIS 微型端口驱动程序回调函数 角色类型名称

MiniportAddDevice

MINIPORT_ADD_DEVICE

MiniportCancelDirectOidRequest

MINIPORT_CANCEL_DIRECT_OID_REQUEST

MiniportCancelOidRequest

MINIPORT_CANCEL_OID_REQUEST

MiniportCancelSend

MINIPORT_CANCEL_SEND

MiniportCheckForHangEx

MINIPORT_CHECK_FOR_HANG

MiniportDevicePnPEventNotify

MINIPORT_DEVICE_PNP_EVENT_NOTIFY

MiniportDirectOidRequest

MINIPORT_DIRECT_OID_REQUEST

MiniportDisableInterruptEx

MINIPORT_DISABLE_INTERRUPT (No improvement needed as it is a function name in a technical context)

MiniportDisableMessageInterrupt

MINIPORT_DISABLE_MESSAGE_INTERRUPT

MiniportDriverUnload

MINIPORT_UNLOAD

MiniportEnableInterruptEx

MINIPORT_ENABLE_INTERRUPT

MiniportEnableMessageInterrupt

MINIPORT_ENABLE_MESSAGE_INTERRUPT

MiniportFilterResourceRequirements

MINIPORT_FILTER_RESOURCE_REQUIREMENTS

MiniportHaltEx

MINIPORT_HALT

MiniportInitializeEx

MINIPORT_INITIALIZE

MiniportInterrupt

MINIPORT_ISR

MiniportInterruptDPC

MINIPORT_INTERRUPT_DPC

MiniportMessageInterrupt

MINIPORT_MESSAGE_INTERRUPT

MiniportMessageInterruptDPC

MINIPORT_MESSAGE_INTERRUPT_DPC

MiniportOidRequest

MINIPORT_OID_REQUEST

MiniportPause

MINIPORT_PAUSE

MiniportProcessSGList

MINIPORT_PROCESS_SG_LIST

MiniportRemoveDevice

MINIPORT_REMOVE_DEVICE

MiniportResetEx

MINIPORT_RESET

MiniportRestart

MINIPORT_RESTART

MiniportReturnNetBufferLists

MINIPORT_RETURN_NET_BUFFER_LISTS

MiniportSendNetBufferLists

MINIPORT_SEND_NET_BUFFER_LISTS

MiniportSetOptions

MINIPORT_SET_OPTIONS

MiniportSharedMemoryAllocateComplete

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE

MiniportShutdownEx

MINIPORT_SHUTDOWN

MiniportStartDevice

MINIPORT_START_DEVICE

MiniportSynchronizeInterrupt

MINIPORT_SYNCHRONIZE_INTERRUPT

MiniportSynchronizeMessageInterrupt

MINIPORT_SYNCHRONIZE_MESSAGE_INTERRUPT

NDIS 其他回调函数 角色类型名称

NDIS_IO_WORKITEM_ROUTINE

常规

例程 是在 NdisQueueIoWorkItem 函数的第二个参数中指定的回调例程。

NDIS_IO_WORKITEM_FUNCTION

NetTimerCallback

NDIS_TIMER_FUNCTION

以下函数角色类型当前不在 NDIS 驱动程序的 SDV 规则中使用;但是,它们很可能在未来使用。 Windows 7 中完全支持这些函数角色类型,建议使用其特定的函数角色类型来声明这些回调。

NDIS 筛选器驱动程序回调函数 角色类型名称

FilterAttach

FILTER_ATTACH

FilterCancelDirectOidRequest

取消直接 OID 请求过滤器

FilterCancelSendNetBufferLists

FILTER_CANCEL_SEND_NET_BUFFER_LISTS

FilterCancelOidRequest

FILTER_CANCEL_OID_REQUEST

FilterDetach

FILTER_DETACH

FilterDevicePnPEventNotify

FILTER_DEVICE_PNP_EVENT_NOTIFY

FilterDirectOidRequest

FILTER_DIRECT_OID_REQUEST

FilterDirectOidRequestComplete

过滤直接OID请求完成

FilterDriverUnload

DRIVER_UNLOAD(驱动程序卸载)

FilterNetPnPEvent

FILTER_NET_PNP_EVENT

FilterOidRequest

FILTER_OID_REQUEST

FilterOidRequestComplete

FILTER_OID_REQUEST_COMPLETE

FilterPause

过滤暂停

FilterReceiveNetBufferLists

FILTER_RECEIVE_NET_BUFFER_LISTS (过滤接收的网络缓冲列表)

FilterRestart

过滤器_重启

FilterReturnNetBufferLists

FILTER_RETURN_NET_BUFFER_LISTS

FilterSendNetBufferLists

FILTER_SEND_NET_BUFFER_LISTS

FilterSendNetBufferListsComplete

FILTER_SEND_NET_BUFFER_LISTS_COMPLETE

FilterSetModuleOptions

过滤器设置模块选项

FilterSetOptions

过滤器设置选项

FilterStatus

过滤器状态

CoNDIS 微型端口驱动程序回调函数 角色类型名称

MiniportCoActivateVc

MINIPORT_CO_ACTIVATE_VC

MiniportCoCreateVc

MINIPORT_CO_CREATE_VC

MiniportCoDeactivateVc

MINIPORT_CO_DEACTIVATE_VC

MiniportCoDeleteVc

MINIPORT_CO_DELETE_VC

MiniportCoOidRequest

MINIPORT_CO_OID_REQUEST

MiniportCoSendNetBufferLists

MINIPORT_CO_SEND_NET_BUFFER_LISTS

NDIS 协议驱动程序回调函数 角色类型名称

ProtocolBindAdapterEx

PROTOCOL_BIND_ADAPTER_EX

ProtocolCloseAdapterCompleteEx

PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX

ProtocolDirectOidRequestComplete

PROTOCOL_DIRECT_OID_REQUEST_COMPLETE

ProtocolNetPnPEvent

协议网络即插即用事件 (PROTOCOL_NET_PNP_EVENT)

ProtocolOidRequestComplete

PROTOCOL_OID_REQUEST_COMPLETE

ProtocolOpenAdapterCompleteEx

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX

ProtocolReceiveNetBufferLists

接收网络缓冲区列表协议 (PROTOCOL_RECEIVE_NET_BUFFER_LISTS)

ProtocolSendNetBufferListsComplete

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE

ProtocolSetOptions

PROTOCOL_SET_OPTIONS

ProtocolStatusEx

PROTOCOL_STATUS_EX

ProtocolUnbindAdapterEx

PROTOCOL_UNBIND_ADAPTER_EX

ProtocolUninstall

PROTOCOL_UNINSTALL

NDIS 协议 CL 回调函数 角色类型名称

ProtocolClAddPartyComplete

PROTOCOL_CL_ADD_PARTY_COMPLETE

ProtocolClCallConnected

PROTOCOL_CL_CALL_CONNECTED

ProtocolClCloseAfComplete

PROTOCOL_CL_CLOSE_AF_COMPLETE

ProtocolClCloseCallComplete

PROTOCOL_CL_CLOSE_CALL_COMPLETE

ProtocolClDeregisterSapComplete

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE

ProtocolClDropPartyComplete

PROTOCOL_CL_DROP_PARTY_COMPLETE

ProtocolClIncomingCall

PROTOCOL_CL_INCOMING_CALL(协议_CL_传入呼叫)

ProtocolClIncomingCallQoSChange

PROTOCOL_CL_INCOMING_CALL_QOS_CHANGE

ProtocolClIncomingCloseCall

PROTOCOL_CL_INCOMING_CLOSE_CALL

ProtocolClIncomingDropParty

PROTOCOL_CL_INCOMING_DROP_PARTY

ProtocolClMakeCallComplete

PROTOCOL_CL_MAKE_CALL_COMPLETE

ProtocolClModifyCallQoSComplete

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE

ProtocolClNotifyCloseAf

(PROTOCOL_CL_NOTIFY_CLOSE_AF remains unchanged, as it appears to be a specific technical term that should not be translated into Chinese.)

ProtocolClOpenAfComplete

PROTOCOL_CL_OPEN_AF_COMPLETE

ProtocolClOpenAfCompleteEx

PROTOCOL_CL_OPEN_AF_COMPLETE_EX

ProtocolClRegisterSapComplete

PROTOCOL_CL_REGISTER_SAP_COMPLETE(协议_CL_注册_SAP_完成)

CoNDIS CM 回调函数 角色类型名称

ProtocolCmActivateVcComplete

PROTOCOL_CM_ACTIVATE_VC_COMPLETE

ProtocolCmAddParty

PROTOCOL_CM_ADD_PARTY

ProtocolCmCloseAf

PROTOCOL_CM_CLOSE_AF

ProtocolCmCloseCall

PROTOCOL_CM_CLOSE_CALL

ProtocolCmDeactivateVcComplete

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE

ProtocolCmDeregisterSap

PROTOCOL_CM_DEREGISTER_SAP

ProtocolCmDropParty

PROTOCOL_CM_DROP_PARTY

ProtocolCmIncomingCallComplete

PROTOCOL_CM_INCOMING_CALL_COMPLETE

ProtocolCmMakeCall

PROTOCOL_CM_MAKE_CALL

ProtocolCmModifyCallQoS

PROTOCOL_CM_MODIFY_QOS_CALL (修改服务质量协议调用协议)

ProtocolCmNotifyCloseAfComplete

PROTOCOL_CM_NOTIFY_CLOSE_AF_COMPLETE

ProtocolCmOpenAf

PROTOCOL_CM_OPEN_AF

ProtocolCmRegisterSap

PROTOCOL_CM_REG_SAP

CoNDIS CO 回调函数 角色类型名称

ProtocolCoAfRegisterNotify

PROTCOL_CO_AF_REGISTER_NOTIFY

ProtocolCoCreateVc

PROTOCOL_CO_CREATE_VC

ProtocolCoDeleteVc

PROTOCOL_CO_DELETE_VC

ProtocolCoOidRequest

PROTOCOL_CO_OID_REQUEST

ProtocolCoOidRequestComplete

PROTOCOL_CO_OID_REQUEST_COMPLETE

ProtocolCoReceiveNetBufferLists

PROTOCOL_CO_RECEIVE_NET_BUFFER_LISTS

ProtocolCoSendNetBufferListsComplete

PROTOCOL_CO_SEND_NET_BUFFER_LISTS_COMPLETE

ProtocolCoStatusEx

PROTOCOL_CO_STATUS_EX