📄 oal_test.c
字号:
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_DEVICE_INFO:SPI_GETOEMINFO) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_DDK_CALL (IOCTL_HAL_SETBUSDATA)
//
p1 = IOCTL_HAL_SETBUSDATA;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_DDK_CALL,
&p1,
sizeof(BUSDATA_PARMS),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_DDK_CALL:IOCTL_HAL_SETBUSDATA) [%s]\r\n"),p2));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_DDK_CALL:IOCTL_HAL_SETBUSDATA) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_DDK_CALL (IOCTL_HAL_GETBUSDATA)
//
p1 = IOCTL_HAL_GETBUSDATA;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_DDK_CALL,
&p1,
sizeof(BUSDATA_PARMS),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_DDK_CALL:IOCTL_HAL_GETBUSDATA) [%s]\r\n"),p2));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_DDK_CALL:IOCTL_HAL_GETBUSDATA) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_GET_DEVICEID
//
p1 = 0;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_GET_DEVICEID,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
pDeviceID = (PDEVICE_ID)p2;
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_DEVICEID) PreOff[%d]PreByte[%d]PlatOff[%d]PlatByte[%d]Size[%d]\r\n"), pDeviceID->dwPresetIDOffset,
pDeviceID->dwPresetIDBytes,
pDeviceID->dwPlatformIDOffset,
pDeviceID->dwPlatformIDBytes,
pDeviceID->dwSize));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_DEVICEID) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_GET_IP_ADDR (IPINFO_ODO)
//
p1 = IPINFO_ODO;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_GET_IP_ADDR,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
pIPInfo = (PIP_INFO)p2;
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_ODO) [%08x][%02x:%02x:%02x:%02x:%02x:%02x]\r\n"),htonl(pIPInfo->dwIP),
pIPInfo->MAC[0], pIPInfo->MAC[1], pIPInfo->MAC[2],
pIPInfo->MAC[3], pIPInfo->MAC[4], pIPInfo->MAC[5] ));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_ODO) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_GET_IP_ADDR (IPINFO_DEBUGMSG)
//
p1 = IPINFO_DEBUGMSG;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_GET_IP_ADDR,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
pIPInfo = (PIP_INFO)p2;
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_DEBUGMSG) [%08x][%02x:%02x:%02x:%02x:%02x:%02x]\r\n"),htonl(pIPInfo->dwIP),
pIPInfo->MAC[0], pIPInfo->MAC[1], pIPInfo->MAC[2],
pIPInfo->MAC[3], pIPInfo->MAC[4], pIPInfo->MAC[5] ));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_DEBUGMSG) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_GET_IP_ADDR (IPINFO_KDEBUG)
//
p1 = IPINFO_KDEBUG;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_GET_IP_ADDR,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
pIPInfo = (PIP_INFO)p2;
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_KDEBUG) [%08x][%02x:%02x:%02x:%02x:%02x:%02x]\r\n"),htonl(pIPInfo->dwIP),
pIPInfo->MAC[0], pIPInfo->MAC[1], pIPInfo->MAC[2],
pIPInfo->MAC[3], pIPInfo->MAC[4], pIPInfo->MAC[5] ));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_KDEBUG) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_GET_IP_ADDR (IPINFO_ESHELL)
//
p1 = IPINFO_ESHELL;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_GET_IP_ADDR,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
pIPInfo = (PIP_INFO)p2;
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_ESHELL) [%08x][%02x:%02x:%02x:%02x:%02x:%02x]\r\n"),htonl(pIPInfo->dwIP),
pIPInfo->MAC[0], pIPInfo->MAC[1], pIPInfo->MAC[2],
pIPInfo->MAC[3], pIPInfo->MAC[4], pIPInfo->MAC[5] ));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_ESHELL) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_GET_IP_ADDR (IPINFO_DOWNLOAD)
//
p1 = IPINFO_DOWNLOAD;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_GET_IP_ADDR,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
pIPInfo = (PIP_INFO)p2;
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_DOWNLOAD) [%08x][%02x:%02x:%02x:%02x:%02x:%02x]\r\n"),htonl(pIPInfo->dwIP),
pIPInfo->MAC[0], pIPInfo->MAC[1], pIPInfo->MAC[2],
pIPInfo->MAC[3], pIPInfo->MAC[4], pIPInfo->MAC[5] ));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_GET_IP_ADDR:IPINFO_DOWNLOAD) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_SET_KERNEL_COMM_DEV
//
// p1 = 0;
// memset( p2, 0, sizeof(p2) );
// p3 = 0;
// ret = KernelIoControl( IOCTL_SET_KERNEL_COMM_DEV,
// &p1,
// sizeof(p1),
// p2,
// sizeof(p2),
// &p3 );
// if( ret == TRUE ){
// RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_SET_KERNEL_COMM_DEV) [%08x][%02x:%02x:%02x:%02x:%02x:%02x]\r\n"),htonl(pIPInfo->dwIP),
// pIPInfo->MAC[0], pIPInfo->MAC[1], pIPInfo->MAC[2],
// pIPInfo->MAC[3], pIPInfo->MAC[4], pIPInfo->MAC[5] ));
// }
// else{
// RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_SET_KERNEL_COMM_DEV) Error[%x]\r\n"),GetLastError()));
// }
/*----------------------------------
//
// IOCTL_HAL_INIT_RTC
//
time.wYear = 2003;
time.wMonth = 9;
time.wDay = 9;
time.wHour = 19;
time.wMinute = 20;
time.wSecond = 21;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_INIT_RTC,
&time,
sizeof(time),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
memset( &time, 0, sizeof(time) );
GetLocalTime( &time );
RETAILMSG(1, (TEXT("IOCTL_HAL_INIT_RTC -> GetLocalTime[%04d/%02d/%02d %02d:%02d:%02d]\r\n") ,time.wYear
,time.wMonth
,time.wDay
,time.wHour
,time.wMinute
,time.wSecond ));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_INIT_RTC) Error[%x]\r\n"),GetLastError()));
}
----------------------------------*/
//
// IOCTL_HAL_REBOOT
//
// p1 = 0;
// memset( p2, 0, sizeof(p2) );
// p3 = 0;
// ret = KernelIoControl( IOCTL_HAL_REBOOT,
// &p1,
// sizeof(p1),
// p2,
// sizeof(p2),
// &p3 );
// if( ret == TRUE ){
// RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_REBOOT)\r\n")));
// }
// else{
// RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_REBOOT) Error[%x]\r\n"),GetLastError()));
// }
//
// IOCTL_QUERY_PHYSICALMEM
//
p1 = 0;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_QUERY_PHYSICALMEM,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_QUERY_PHYSICALMEM) Base[%08x] Size[%08x] Type[%08x]\r\n"),((PPHYSICAL_BASIC_INFORMATION)p2)->lpBaseAddress,
((PPHYSICAL_BASIC_INFORMATION)p2)->dwRegionSize, ((PPHYSICAL_BASIC_INFORMATION)p2)->dwType));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_QUERY_PHYSICALMEM) Error[%x]\r\n"),GetLastError()));
}
/*--------------------------------------------------
//
// IOCTL_HAL_ILTIMING (ILTIMING_MSG_ENABLE)
//
ITM.wMsg = ILTIMING_MSG_ENABLE;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_ILTIMING,
&ITM,
sizeof(ITM),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_ENABLE))\r\n")));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_ENABLE)) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_ILTIMING (ILTIMING_MSG_GET_TIMES)
//
ITM.wMsg = ILTIMING_MSG_GET_TIMES;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_ILTIMING,
&ITM,
sizeof(ITM),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_GET_TIMES)) dwIsrTime1[%d] dwIsrTime2[%d] wNumInterrupts[%d] dwSPC[%08x] dwFrequency[%d] \r\n"),ITM.dwIsrTime1,ITM.dwIsrTime2,ITM.wNumInterrupts,ITM.dwSPC,ITM.dwFrequency));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_GET_TIMES)) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_ILTIMING (ILTIMING_MSG_GET_PFN)
//
ITM.wMsg = ILTIMING_MSG_GET_PFN;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_ILTIMING,
&ITM,
sizeof(ITM),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_GET_PFN)) pfnPerfCountSinceTick[%08x] \r\n"),ITM.pfnPerfCountSinceTick));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_GET_PFN)) Error[%x]\r\n"),GetLastError()));
}
//
// IOCTL_HAL_ILTIMING (ILTIMING_MSG_DISABLE)
//
ITM.wMsg = ILTIMING_MSG_DISABLE;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_ILTIMING,
&ITM,
sizeof(ITM),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_DISABLE))\r\n")));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_ILTIMING (ILTIMING_MSG_DISABLE)) Error[%x]\r\n"),GetLastError()));
}
--------------------------------------------------*/
//
// IOCTL_HAL_TRANSLATE_IRQ
//
for( i = 0; i < 64; i++ ){
p1 = i;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_TRANSLATE_IRQ,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
memcpy( &p1, p2, sizeof(p1) );
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_TRANSLATE_IRQ %02d SysIntr[%d]\r\n"),i,p1));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_TRANSLATE_IRQ Error[%x]\r\n"),GetLastError()));
}
}
//
// IOCTL_HAL_REQUEST_SYSINTR
//
for( i = 0; i < 64; i++ ){
p1 = i;
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_REQUEST_SYSINTR,
&p1,
sizeof(p1),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
memcpy( &p1, p2, sizeof(p1) );
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR %02d SysIntr[%d]\r\n"),i,p1));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR Error[%x]\r\n"),GetLastError()));
}
}
//
// IOCTL_HAL_REQUEST_IRQ
//
pDevLoc.BusNumber = 0; // BUS NUMBER=0
pDevLoc.LogicalLoc = 0x0D00; // DEVICE=13
pDevLoc.IfcType = PCIBus; // TYPE=PCI BUS
pDevLoc.Pin = 1; // INTERRUPT PIN=1
memset( p2, 0, sizeof(p2) );
p3 = 0;
ret = KernelIoControl( IOCTL_HAL_REQUEST_IRQ,
&pDevLoc,
sizeof(pDevLoc),
p2,
sizeof(p2),
&p3 );
if( ret == TRUE ){
memcpy( &p1, p2, sizeof(p1) );
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_REQUEST_IRQ [%d]\r\n"),p1));
}
else{
RETAILMSG(1, (TEXT(" KernelIoControl(IOCTL_HAL_REQUEST_IRQ Error[%x]\r\n"),GetLastError()));
}
RETAILMSG(1, (TEXT("-KernelIoControl_test\r\n")));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -