文件解锁定内容摘要:
le(pSystemsHandleInformationHandles[dwIndex].ProcessID, (HANDLE)pSystemsHandleInformationHandles[dwIndex].HandleNumber)。 } //每一次使用后,清理 if (bRemoteFlag) { CloseHandle(hTureHandle)。 } } } if (pSystemsHandleInformation!=NULL) { VirtualFree(pSystemsHandleInformation, 0, MEM_RELEASE)。 } if (hCurProcess!=NULL) { CloseHandle(hCurProcess)。 } return 0。 } //根据文件句柄获取文件路径 的线程 BOOL MyGetFileNameByHandle(__in HANDLE hFileHandle,__out WCHAR *szFileName) { BOOL bFindFlag=FALSE。 FILE_INFO FileInfo。 RtlZeroMemory(amp。 FileInfo,sizeof(FileInfo))。 =FALSE。 =hFileHandle。 HANDLE hQueryThread=CreateThread(NULL,0,MyQueryFileNameByHandleThreadFunc,amp。 FileInfo,0,NULL)。 if (WAIT_TIMEOUT == WaitForSingleObject(hQueryThread,100)) { TerminateThread(hQueryThread,2)。 } if () { if (0 == wcsicmp(szFileName,)) { bFindFlag=TRUE。 } } if (hQueryThread!=NULL) { CloseHandle(hQueryThread)。 } return bFindFlag。 } DWORD WINAPI MyQueryFileNameByHandleThreadFunc(LPVOID pParam) { FILE_INFO *pFileInfo=(FILE_INFO*)pParam。 WCHAR wcVolume[3]={0}。 NTSTATUS MyNtStatus。 IO_STATUS_BLOCK IoStatus。 UCHAR szBuff[0x1000]。 RtlZeroMemory(szBuff,sizeof(szBuff))。 FILE_NAME_INFORMATION *pFileNameInformation=(FILE_NAME_INFORMATION*)szBuff。 MyNtStatus=NtQueryInformationFile(pFileInfohFileHandle,amp。 IoStatus,pFileNameInformation, sizeof(FILE_INFO)sizeof(HANDLE)sizeof(BOOL),FileNameInformationClass)。 if(NT_SUCCESS(MyNtStatus)) { if(pFileNameInformationFileNameLength!=0) { pFileInfobFlag=TRUE。 pFileInfo=pFileNameInformationFileNameLength。 if (MyGetVolumeNameByHandle(pFileInfohFileHandle,wcVolume))// 得到盘符 { RtlZeroMemory(pFileInfo,sizeof(pFileInfo))。 pFileInfo[0]=wcVolume[0]。 pFileInfo[1]=wcVolume[1]。 wcsncpy(amp。 pFileInfo[2], pFileNameInformationFileName, pFileNameInformationFileNameLength)。 pFileInfo[2+pFileNameInformationFileNameLength1]=0。 } } } return 0。 } void GetOSVolumeSerialInfo(void) { RtlZeroMemory(amp。 VolumeInfo,sizeof(VolumeInfo))。 WCHAR szVolumeName[5]= {0}。 WCHAR Drive=39。 A39。 DWORD dwDiskMask = GetLogicalDrives()。 int nIndex=0。 for (nIndex=0。 nIndex26。 nIndex++) { if( ( (1nIndex) amp。 dwDiskMask )!=0) { Drive = nIndex + 39。 A39。 wsprintfW(szVolumeName,_T(%c:\\),Drive)。 wsprintfW(VolumeInfo[nIndex].szVolumeName,_T(%c:),Drive)。 GetVolumeInformation(szVolumeName,NULL,0,amp。 VolumeInfo[nIndex].dwVolumeSerial,0,0,0,0)。 } } }void GetOSVolumeSerialInfo(void) { RtlZeroMemory(amp。 VolumeInfo,sizeof(VolumeInfo))。 WCHAR szVolumeName[5]= {0}。 WCHAR Drive=39。 A39。 DWORD dwDiskMask = GetLogicalDrives()。 int nIndex=0。 for (nIndex=0。 nIndex26。 nIndex++) { if( ( (1nIndex) amp。 dwDiskMask )!=0) { Drive = nIndex + 39。 A39。 wsprintfW(szVolumeName,_T(%c:\\),Drive)。 wsprintfW(VolumeInfo[nIndex].szVolumeName,_T(%c:),Drive)。 GetVolumeInformation(szVolumeName,NULL,0,amp。 VolumeInfo[nIndex].dwVolumeSerial,0,0,0,0)。 } } } BOOL MyGetVolumeNameByHandle(__in HANDLE hFile,__out WCHAR *szVolume) { DWORD dwIndex=0。 BY_HANDLE_FILE_INFORMATION stHandleFileInfo。 RtlZeroMemory(amp。 stHandleFileInfo,sizeof(stHandleFileInfo))。 GetFileInformationByHandle(hFile,amp。 stHandleFileInfo)。 for(dwIndex=0。 dwIndex26。 dwIndex++) { if (!=0) { if (==VolumeInfo[dwIndex].dwVolumeSerial) { wcscpy(szVolume,VolumeInfo[dwIndex].szVolumeName)。 return TRUE。 } } } return FALSE。 } //结束 pid=dwProcessId 中的 hRemoteHandle 句柄 BOOL MyCloseRemoteHandle(__in DWORD dwProcessId,__in HANDLE hRemoteHandle) { HANDLE hExecutHandle=NULL。 BOOL bFlag=FALSE。 HANDLE hProcess=NULL。 HMODULE hKernel32Module=NULL。 hProcess=OpenProcess( PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ, FALSE,dwProcessId)。 if (NULL==hProcess) { bFlag=FALSE。 goto MyErrorExit。 } hKernel32Module = LoadLibrary( _T() )。 hExecutHandle = CreateRemoteThread(hProcess,0,0, (DWORD (__stdcall *)( void *))GetProcAddress(hKernel32Module,CloseHandle), hRemoteHandle,0,NULL)。 if (NULL==hExecutHandle) { bFlag=FALSE。 goto MyErrorExit。 } if (WaitForSingleObject(hExecutHandle,2020)==WAIT_OBJECT_0) { bFlag=TRUE。 goto MyErrorExit。 } else { bFlag=FALSE。 goto MyErrorExit。 } MyErrorExit: if (hExecutHandle!=NULL) { CloseHandle(hExecutHandle)。 } if (hProcess !=NULL) { CloseHandle(hProcess)。 } if (hKernel32Module!=NULL) { FreeLibrary(hKernel32Module)。 } return bFlag。 } //根据 PID 获取进程名 BOOL MyGetProcessNameByPID(DWORD dwProcessId,WCHAR *szProcessName) { BOOL bReturnFlag=FALSE。 PROCESSENTRY32* pProcessInfo=new PROCESSENTRY32。 pProcessInfodwSize=sizeof(PROCESSENTRY32)。 HANDLE MyHandProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)。 BOOL bFlag=Process32First(MyHandProcessSnap,pProcessInfo)。 while (bFlag) { if (dwProcessId==pProcessInfoth32ProcessID) { wcscpy(szProcessName,pProcessInfoszExeFile)。 bReturnFlag=TRUE。 break。 } bFlag=Process32Next(MyHandProcessSnap,pProcessInfo)。 } if(pProcessInfo!=NULL) { delete pProcessInfo。 pProcessInfo=NULL。 } if (MyHandProcessSnap!=NULL) { CloseHandle(MyHandProcessSnap)。 } return bReturnFlag。 } //根据 PID 获取进程路径 BOOL MyGetProcessPathByPID(DWORD dwProcessId,WCHAR *szProcessPath) { HANDLE hModule。 MODULEENTRY32* pMoudleInfo=new MODULEENTRY32。 pMoudleInfodwSize=sizeof(MODULEENTRY32)。 hModule=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwProcessId)。 Module32First(hModule,pMoudleInfo)。 wcscpy(szProcessPath,pMoudleInfoszExePath)。 if(pMoudleInfo!=NULL) { delete pMoudleInfo。 pMoudleInfo=NULL。 } if (hModule!=NULL) { CloseHandle(hModule)。 } return TRUE。 } 在看。文件解锁定
相关推荐
向数字化转型,建设自主研发水平较高、技术先进、配套体系完善的国内重要的音像产业集群。 加大技术改造和设备更新的投入力度,建设一批核心竞争力强、市场潜力大的音像产业集团公司,带动产业集群化发展。 强化品牌意识,实施名牌带动战略,集中力量培育、保护、扶持和发展一批驰名、著名商标和名牌产品。 以骨干龙头企业知名品牌为依托,加强企业协作,搞好产品配套,拉长产业链条,提高本地配套水平。
智力关供选题 小王一边刷牙,一边悠闲的吹着口哨,他是 怎么做到的。 答案:刷的是假牙 什么门永远关不上 ? 答案:球门 船边挂着软梯,离海面 2米,海水每小时上涨半米,几个小时海水能淹没软梯 ? 答案:水涨船高,所以永远不会淹没软梯。 汽车在右转弯时,哪一条轮胎不转。 答案:备用轮胎 什么书你不可能在书店里买到 ? 答案: 秘书 什么水永远用不完。 答案:口水 一人被老虎穷追不舍,突然前有条大河
突破口 ,这也为进一步深化文化体制改革提供了难得的机遇。 深化文化体制改革 ,关键是创新体制机制。 要通过深化文化体制改革 ,形成 科学 有效的宏观文化管理体制 ,形成富有效率的文化生产和服务的微观运行机制 ,形成以公有制为主体、多种所有制共同发展的文化产业格局 ,形成统一、开放、竞争、有序的现代文化市场体系和完善的文化创新体系
生产部 11 不合格品控制程序 JYDQP010 A/0 2 长期 品质部 1215 生产部 12 内部质量审核控制程序 QP10 A/0 2 长期 品质部 1215 生产部 13 认证产品一致性和变更控制程序 QP09 A/0 2 长期 品质部 1215 生产部 14 产品包装、搬运和储存控制程 序 JYDQP013 A/0 2 长期 品质部 1215 生产部 15 与顾客有关的过程控制程序
2 dBA 答炕猛孺蜒寐捍妨铽愍孽酴研皑 :内隔式不锈钢抗震台,有效隔绝外周震动的传导 阶吒蒂叉误褐囡药熹夼谂坚往散 不锈钢台面: 900 x 800mm,高度: 780mm,无阻尼频率: 3~,支撑刚度:约 20,000Nm 果臧域诲织糙寓陪司眩吧霪碛鹎 5 整合型光源,在台面控制面板上调节解剖镜光源强度。 殓茬瘴棣鸹鹃牦莺钫唐剐钏儇 剜 6★加热系统:钢铝合金直接加热 子笈庖