その中の GetIfTableを使うことで MACアドレスを調べることはできたのですが、使い方がわからずにしばらく悩んだので自分用にメモを残しておきます。
ポイントは、情報取得に必要なサイズを取得するために 1回余分に GetIfTableを呼ぶことと、初回の呼び出し時にも pdwSizeパラメータの初期化が必要という事でしょうか。
PMIB_IFTABLE pMibIfTable; ULONG ulSize; // NICの情報取得に必要なサイズを取得 ulSize = 0l; // GetIfTableの呼び出し前に初期化が必要 if (ERROR_INSUFFICIENT_BUFFER == GetIfTable(NULL, &ulSize, FALSE)) { // 必要分の領域を確保(結構大きいサイズが必要) pMibIfTable = (PMIB_IFTABLE)malloc(ulSize); } // NICの情報を取得 if (NO_ERROR == GetIfTable(pMibIfTable, &ulSize, FALSE)) { for (int i = 0; i < pMibIfTable->dwNumEntries; i++) { // 各NICの情報 } free(pMibIfTable); }
ところで、NICの情報として取得できる MIB_IFROWには dwSpeedという気になるメンバがあります。
ちょっと期待したのですが、アドエスの無線LANはここでも 11Mbpsとなっていました。
何とかしてリンク速度も取得したいものですね。
0 件のコメント:
コメントを投稿