阅读:1197回复:0
请教64bit 平台下IO_STATIC_LOCATION结构的改变
大家好,我是用DDK开发的一个摄像头过滤驱动。
这里请教一个关于64 bit 平台下取到的IO_STATIC_LOCATION结构与32 bit平台不一致的问题。 我的source如下: PIO_STACK_LOCATION irpSp; PKS_DATAFORMAT_VIDEOINFOHEADER pVideoInfoHeader ; irpSp = IoGetCurrentIrpStackLocation(Irp); if(irpSp->MajorFunction == IRP_MJ_CREATE) { pVideoInfoHeader = (PKS_DATAFORMAT_VIDEOINFOHEADER)((UCHAR*)(irpSp- >FileObject->FileName.Buffer) + 142); //取到InfoHeader结构后打印出宽和高度 KdPrint(("IRP_MJ_CREATE: width , height =%d,%d \n", pVideoInfoHeader->VideoInfoHeader.bmiHeader.biWidth, pVideoInfoHeader->VideoInfoHeader.bmiHeader.biHeight)); } 以上Source在32bit的XP平台下挂载驱动,运行正常,然后在64 bitXP下使用2003DDK编译后挂载,运行时取到的结构变量是错值。这里诚心请教各位有这方面经验的朋友指点一二,不胜感激 |
|