?? ptuserio.cpp
字號:
//////////////////////////////////////////////////////////
// PTUSERIO.CPP文件
#include <windows.h>
#include <stdio.h>
#include <ntddndis.h>
#include "../driver/IOCOMMON.h"
#include "ptutils.h"
void DisplayAdapterInfo(HANDLE hAdapter)
{
char buffer[1024 + sizeof(PTUSERIO_OID_DATA) - 1];
PPTUSERIO_OID_DATA pOid = (PPTUSERIO_OID_DATA)buffer;
pOid->Length = 1024;
// 查詢制造商的描述信息
pOid->Oid = OID_GEN_VENDOR_DESCRIPTION;
pOid->Length = 1024;
if(!PtAdapterRequest(hAdapter, pOid, TRUE))
{
printf(" PtAdapterRequest() failed \n ");
return;
}
wprintf(L" Description: %S \n", (LPWSTR)pOid->Data);
// 查詢正在使用的媒介
NDIS_MEDIUM NdisMedium;
pOid->Oid = OID_GEN_MEDIA_IN_USE;
pOid->Length = 1024;
if(!PtAdapterRequest(hAdapter, pOid, TRUE))
{
printf(" PtAdapterRequest() failed \n ");
return;
}
NdisMedium = *((PNDIS_MEDIUM )pOid->Data);
switch(NdisMedium)
{
case NdisMedium802_3:
printf(" Medium: NdisMedium802_3 \n");
break;
case NdisMediumWan:
printf(" Medium: NdisMediumWan \n");
break;
default:
printf(" unkown type \n");
break;
}
// 查詢連接狀態(tài)
int nConnectedState;
pOid->Oid = OID_GEN_MEDIA_CONNECT_STATUS;
pOid->Length = 1024;
if(!PtAdapterRequest(hAdapter, pOid, TRUE))
{
printf(" Media Connect Status: UNKNOWN \n ");
}
else
{
nConnectedState = *((int*)pOid->Data);
printf( " Media Connect Status: %s\n",
nConnectedState == NdisMediaStateConnected ? "Connected" : "Disconnected");
}
}
int main()
{
HANDLE hControlDevice = PtOpenControlDevice();
CIMAdapters adapters;
if(!adapters.EnumAdapters(hControlDevice))
{
printf(" EnumAdapters failed \n");
return -1;
}
printf(" Driver Bindings: \n");
for(int i=0; i<adapters.m_nAdapters; i++)
{
// 顯示虛擬適配器名稱
printf(" \"%ws\" \n", adapters.m_pwszVirtualName[i]);
// 顯示下層適配器名稱
printf(" \"%ws\" \n", adapters.m_pwszAdapterName[i]);
HANDLE hLowerAdapter = PtOpenAdapter(adapters.m_pwszAdapterName[i]);
if(hLowerAdapter != INVALID_HANDLE_VALUE)
{
DisplayAdapterInfo(hLowerAdapter);
::CloseHandle(hLowerAdapter);
}
printf(" \n");
}
::CloseHandle(hControlDevice);
return 0;
}
/*
int main()
{
HANDLE hControlDevice = PtOpenControlDevice();
CIMAdapters adapters;
if(!adapters.EnumAdapters(hControlDevice))
{
printf(" EnumAdapters failed \n");
return -1;
}
printf(" Driver Bindings: \n");
for(int i=0; i<adapters.m_nAdapters; i++)
{
// 顯示虛擬適配器名稱
printf(" \042%ws\042\n", adapters.m_pwszVirtualName[i]);
// 顯示下層適配器名稱
printf(" \042%ws\042\n", adapters.m_pwszAdapterName[i]);
printf(" \n");
}
::CloseHandle(hControlDevice);
return 0;
}
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -