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 |
|
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 IO 작업 항목 기능) |
NDIS_TIMER_FUNCTION |
권장 함수 선언
다음 함수 역할 형식은 현재 NDIS 드라이버에 대한 SDV 규칙에서 사용되지 않습니다. 그러나, 그들은 미래에 사용될 가능성이 높습니다. 이러한 함수 역할 형식은 Windows 7에서 완벽하게 지원되며 특정 함수 역할 유형을 사용하여 이러한 콜백을 선언하는 것이 좋습니다.
| NDIS 필터 드라이버 콜백 함수 | 역할 유형 이름 |
|---|---|
FILTER_ATTACH |
|
FILTER_CANCEL_DIRECT_OID_REQUEST |
|
FILTER_CANCEL_SEND_NET_BUFFER_LISTS |
|
FILTER_CANCEL_OID_REQUEST |
|
필터_분리 |
|
FILTER_DEVICE_PNP_EVENT_NOTIFY |
|
FILTER_DIRECT_OID_REQUEST |
|
FILTER_DIRECT_OID_REQUEST_COMPLETE |
|
DRIVER_UNLOAD |
|
FILTER_NET_PNP_EVENT |
|
FILTER_OID_REQUEST |
|
FILTER_OID_REQUEST_COMPLETE (필터 OID 요청 완료) |
|
필터_일시정지 |
|
FILTER_RECEIVE_NET_BUFFER_LISTS |
|
필터_재시작 |
|
FILTER_RETURN_네트 버퍼 목록 반환 |
|
FILTER_SEND_NET_BUFFER_LISTS |
|
FILTER_SEND_NET_BUFFER_LISTS_COMPLETE |
|
FILTER_SET_MODULE_OPTIONS (필터 설정 모듈 옵션) |
|
필터_설정_옵션 |
|
필터 상태 |
| CoNDIS 미니포트 드라이버 콜백 함수 | 역할 유형 이름 |
|---|---|
MINIPORT_CO_ACTIVATE_VC |
|
MINIPORT_CO_CREATE_VC |
|
MINIPORT_CO_DEACTIVATE_VC |
|
MINIPORT_CO_DELETE_VC |
|
There are no changes needed, so the improved translation remains the same: 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_STATUS_EX |
|
PROTOCOL_UNBIND_ADAPTER_EX |
|
PROTOCOL_UNINSTALL |
| NDIS 프로토콜 CL 콜백 함수 | 역할 유형 이름 |
|---|---|
PROTOCOL_CL_ADD_PARTY_COMPLETE |
|
PROTOCOL_CL_CALL_CONNECTED (프로토콜 CL 호출 연결됨) |
|
PROTOCOL_CL_CLOSE_AF_COMPLETE (프로토콜 클로즈 완료) |
|
PROTOCOL_CL_CLOSE_CALL_COMPLETE (프로토콜 종료 통화 완료) |
|
PROTOCOL_CL_DEREGISTER_SAP_COMPLETE |
|
프로토콜_CL_드롭_파티_완료 |
|
PROTOCOL_CL_INCOMING_CALL |
|
PROTOCOL_CL_INCOMING_CALL_QOS_CHANGE |
|
PROTOCOL_CL_INCOMING_CLOSE_CALL (프로토콜_CL_수신_체결_통화) |
|
프로토콜_CL_수신_파티_분리 |
|
PROTOCOL_CL_MAKE_CALL_COMPLETE |
|
프로토콜_CL_통화_품질_수정_완료 |
|
PROTOCOL_CL_NOTIFY_CLOSE_AF |
|
PROTOCOL_CL_OPEN_AF_COMPLETE |
|
PROTOCOL_CL_OPEN_AF_COMPLETE_EX |
|
프로토콜_CL_등록_SAP_완료 |
| CoNDIS CM 콜백 함수 | 역할 유형 이름 |
|---|---|
PROTOCOL_CM_ACTIVATE_VC_COMPLETE |
|
PROTOCOL_CM_ADD_PARTY |
|
PROTOCOL_CM_CLOSE_AF |
|
PROTOCOL_CM_CLOSE_CALL |
|
프로토콜_CM_비활성화_VC_완료 |
|
PROTOCOL_CM_DEREGISTER_SAP |
|
PROTOCOL_CM_DROP_PARTY |
|
PROTOCOL_CM_INCOMING_CALL_COMPLETE |
|
프로토콜_CM_전화걸기 |
|
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 |