NotifyIpInterfaceChange执行完结束异常退出,求大神指点或者实现一个监控ipv4和ipv6变化的demo

这个是自己写的demo,ip变化后执行了回调函数,然后就异常了

#include "stdafx.h"
#include <WinSock2.h>
#pragma comment(lib,"Ws2_32.lib")
#include <netioapi.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma comment(lib,"Iphlpapi.lib")


VOID 
InterfaceCbk (
                                 IN PVOID CallerContext,
                                 IN PMIB_IPINTERFACE_ROW Row OPTIONAL,
                                 IN MIB_NOTIFICATION_TYPE NotificationType
                                 )
{
    printf("aaa \n");
}


int _tmain(int argc, _TCHAR* argv[])
{
    DWORD ret;
    HANDLE hand = NULL;
    ret =  NotifyIpInterfaceChange(AF_UNSPEC, InterfaceCbk, NULL, FALSE, &hand);
    int i = 0;
    while  (true)
    {
        Sleep(1000);
    }
    return 0;

}

图片说明

点中断,看看哪里出错,感觉就是指针没有搞对的问题,HANDLE hand = NULL;这里没有分配空间