亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? yaffsfsd.c

?? 優(yōu)龍2410linux2.6.8內(nèi)核源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
}BOOL YFSD_ReadFileWithSeek( 	PFILE pFile, 	PVOID pBuffer, 	DWORD cbRead, 	PDWORD pcbRead, 	OVERLAPPED *pOverlapped, 	DWORD dwLowOffset, 	DWORD dwHighOffset ){	BOOL result;	DWORD rememberedOffset;	RETAILMSG (MSGSTATE, (L"YAFFS::ReadFileWithSeek %d bytes at %d high %d pcbRead %X\r\n",cbRead,dwLowOffset,dwHighOffset,pcbRead));	// To determine if paging is supported, the kernel calls this with all parameters except pFile	// being zero.	if(!pBuffer && !cbRead && !pcbRead && !pOverlapped && !dwLowOffset && !dwHighOffset)	{		return TRUE; // paging suppported		//return FALSE; // paging not supported	}	if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	yfsd_LockYAFFS();	rememberedOffset = pFile->offset;	pFile->offset = dwLowOffset;	// ignore high offset for now	result = yfsd_DoReadFile(pFile,pBuffer,cbRead,pcbRead);	//pFile->offset = rememberedOffset;	yfsd_UnlockYAFFS();	return result;}BOOL yfsd_DoWriteFile( 	PFILE pFile, 	PCVOID pBuffer, 	DWORD cbWrite, 	PDWORD pcbWritten){	int nwritten = 0;	yaffs_Object *obj = NULL;		RETAILMSG (MSGSTATE, (L"YAFFS::DoWriteFile size %d\r\n",cbWrite));		if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	if(!pFile->writePermitted)	{			*pcbWritten = 0;			SetLastError(ERROR_ACCESS_DENIED);			return FALSE;	}	obj = pFile->obj;	*pcbWritten = 0;		nwritten = yaffs_WriteDataToFile(obj,pBuffer,pFile->offset,cbWrite);		if(nwritten >= 0)		{			pFile->offset += nwritten;			*pcbWritten = nwritten;		}		if(nwritten != cbWrite)		{			SetLastError(ERROR_DISK_FULL);		}	return nwritten != cbWrite? FALSE : TRUE; }BOOL YFSD_WriteFile( 	PFILE pFile, 	PCVOID pBuffer, 	DWORD cbWrite, 	PDWORD pcbWritten, 	OVERLAPPED *pOverlapped ){	BOOL result;	yfsd_LockYAFFS();	RETAILMSG (MSGSTATE, (L"YAFFS::WriteFile\r\n"));	result = yfsd_DoWriteFile(pFile,pBuffer,cbWrite,pcbWritten);	yfsd_UnlockYAFFS();	return result;}BOOL YFSD_WriteFileWithSeek( 	PFILE pFile, 	PCVOID pBuffer, 	DWORD cbWrite, 	PDWORD pcbWritten, 	OVERLAPPED *pOverlapped,	DWORD dwLowOffset, 	DWORD dwHighOffset ){	BOOL result;	DWORD rememberedOffset;	RETAILMSG (MSGSTATE, (L"YAFFS::WriteFileWithSeek %d bytes at %d,%d pcbWritten %X\r\n",cbWrite,dwHighOffset,dwLowOffset,pcbWritten));		if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	yfsd_LockYAFFS();	rememberedOffset = pFile->offset;	pFile->offset = dwLowOffset;	// ignore high offset for now	result = yfsd_DoWriteFile(pFile,pBuffer,cbWrite,pcbWritten);	//pFile->offset = rememberedOffset;	yfsd_UnlockYAFFS();	return result;}DWORD YFSD_SetFilePointer( 	PFILE pFile, 	LONG lDistanceToMove, 	PLONG pDistanceToMoveHigh, 	DWORD dwMoveMethod ){	// ignore high offset for now	DWORD offset = 0xFFFFFFFF;	DWORD oldPos;	int fileSize;	int seekNegative = 0;	if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return offset;	}	yfsd_LockYAFFS();	oldPos = pFile->offset;	if(dwMoveMethod == FILE_BEGIN)	{		if(lDistanceToMove >= 0)		{				offset = pFile->offset = lDistanceToMove;		}		else		{			seekNegative = 1;		}	}	else if(dwMoveMethod == FILE_END)	{		fileSize = yaffs_GetObjectFileLength(pFile->obj);		if(fileSize >= 0 &&		   (fileSize + lDistanceToMove) >= 0)		{			offset = pFile->offset = fileSize + lDistanceToMove;		}		else		{			seekNegative = 1;		}	}	else if(dwMoveMethod == FILE_CURRENT)	{		if(pFile->offset + lDistanceToMove >= 0)		{			offset = pFile->offset = pFile->offset + lDistanceToMove;				}		else		{				seekNegative = 1;		}	}	if(seekNegative)	{			SetLastError(ERROR_NEGATIVE_SEEK);				}	yfsd_UnlockYAFFS();	RETAILMSG (MSGSTATE, (L"YAFFS::SetFilePtr method %d distance %d high %X oldpos %d newpos %d\r\n",		                  dwMoveMethod,lDistanceToMove,pDistanceToMoveHigh,oldPos,offset));	return offset;}DWORD YFSD_GetFileSize( 	PFILE pFile, 	PDWORD pFileSizeHigh ){	int fileSize;		RETAILMSG (MSGSTATE, (L"YAFFS::GetFileSize high %X\r\n",pFileSizeHigh));		if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return -1;	}	yfsd_LockYAFFS();	fileSize = yaffs_GetObjectFileLength(pFile->obj);	yfsd_UnlockYAFFS();	if(pFileSizeHigh)		 *pFileSizeHigh = 0;	return fileSize;}BOOL YFSD_GetFileInformationByHandle( 	PFILE pFile,	PBY_HANDLE_FILE_INFORMATION pFileInfo ){	RETAILMSG (MSGSTATE, (L"YAFFS::GetFileInfoByHandle\r\n"));	if(!pFile || !pFile->obj || !pFileInfo)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	yfsd_LockYAFFS();	pFileInfo->dwFileAttributes = yfsd_GetObjectWinAttributes(pFile->obj);	yfsd_U32sToWinFileTime(pFile->obj->win_ctime,&pFileInfo->ftCreationTime);	yfsd_U32sToWinFileTime(pFile->obj->win_atime,&pFileInfo->ftLastAccessTime);	yfsd_U32sToWinFileTime(pFile->obj->win_mtime,&pFileInfo->ftLastWriteTime);	pFileInfo->dwVolumeSerialNumber = 0; //todo is this OK? 	pFileInfo->nFileSizeHigh = 0;	pFileInfo->nFileSizeLow = yaffs_GetObjectFileLength(pFile->obj); 	pFileInfo->nNumberOfLinks = 1; // only primary link supported like FAT	pFileInfo->nFileIndexHigh = 0; 	pFileInfo->nFileIndexLow = pFile->obj->objectId;	pFileInfo->dwOID = (CEOID)(INVALID_HANDLE_VALUE);	yfsd_UnlockYAFFS();	return TRUE;}BOOL YFSD_FlushFileBuffers(PFILE pFile ){	WCHAR fpn[YFSD_FULL_PATH_NAME_SIZE];	int nameExists = 0;	yfsd_Volume *vol = NULL;	DWORD attribs = 0;	DWORD objSize = 0;	DWORD mtime[2];	RETAILMSG (MSGSTATE, (L"YAFFS::FlushFileBuffers\r\n"));	if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	yfsd_LockYAFFS();	yaffs_FlushFile(pFile->obj,1);	attribs = yfsd_GetObjectWinAttributes(pFile->obj);	objSize = yaffs_GetObjectFileLength(pFile->obj);	mtime[0] = pFile->obj->win_mtime[0];	mtime[1] = pFile->obj->win_mtime[1];	if(pFile->fullName)	{		wcscpy(fpn,pFile->fullName);		nameExists = 1;	}	vol = pFile->myVolume;	yfsd_UnlockYAFFS();		if(vol && vol->shellFunction && nameExists)	{			FILECHANGEINFO fc;					fc.cbSize = sizeof(FILECHANGEINFO);			fc.wEventId = SHCNE_UPDATEITEM;			fc.uFlags = SHCNF_PATH;			fc.dwItem1 = (DWORD)fpn;			fc.dwItem2 = 0;			fc.dwAttributes = attribs;			yfsd_U32sToWinFileTime(mtime,&fc.ftModified);			fc.nFileSize = objSize;			vol->shellFunction(&fc);			RETAILMSG (MSGSTATE, (L"YAFFS::shell function called\r\n"));			//yfsd_ShellDirectoryChanged(vol,fpn);	}		return TRUE;}BOOL YFSD_GetFileTime( 	PFILE pFile, 	FILETIME *pCreation, 	FILETIME *pLastAccess, 	FILETIME *pLastWrite ){	RETAILMSG (MSGSTATE, (L"YAFFS::GetFileTime\r\n"));	if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	yfsd_LockYAFFS();	if(pCreation) yfsd_U32sToWinFileTime(pFile->obj->win_ctime,pCreation);	if(pLastAccess) yfsd_U32sToWinFileTime(pFile->obj->win_atime,pLastAccess);	if(pLastWrite) yfsd_U32sToWinFileTime(pFile->obj->win_mtime,pLastWrite);	yfsd_UnlockYAFFS();	return TRUE;}BOOL YFSD_SetFileTime( 	PFILE pFile, 	CONST FILETIME *pCreation, 	CONST FILETIME *pLastAccess, 	CONST FILETIME *pLastWrite ){	WCHAR fpn[YFSD_FULL_PATH_NAME_SIZE];	int nameExists = 0;	int result = FALSE;	yfsd_Volume *vol = NULL;	DWORD attribs = 0;	DWORD objSize = 0;	DWORD mtime[2];		RETAILMSG (MSGSTATE, (L"YAFFS::SetFileTime\r\n"));	if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}			yfsd_LockYAFFS();	if(pCreation) 	{		 yfsd_WinFileTimeToU32s(pCreation,pFile->obj->win_ctime);		pFile->obj->dirty = 1;	}	if(pLastAccess)	{		yfsd_WinFileTimeToU32s(pLastAccess,pFile->obj->win_atime);		pFile->obj->dirty = 1;	}	if(pLastWrite)	{		yfsd_WinFileTimeToU32s(pLastWrite,pFile->obj->win_mtime);		pFile->obj->dirty = 1;	}	if(pCreation || pLastAccess || pLastWrite)	{		result = yaffs_FlushFile(pFile->obj,0);	}	if(result)	{		attribs = yfsd_GetObjectWinAttributes(pFile->obj);		objSize = yaffs_GetObjectFileLength(pFile->obj);		mtime[0] = pFile->obj->win_mtime[0];		mtime[1] = pFile->obj->win_mtime[1];		if(pFile->fullName)		{			wcscpy(fpn,pFile->fullName);			nameExists = 1;		}		vol = pFile->myVolume;	}	yfsd_UnlockYAFFS();	// Call shell function	if(nameExists && result && vol && vol->shellFunction)	{			FILECHANGEINFO fc;					fc.cbSize = sizeof(FILECHANGEINFO);			fc.wEventId = SHCNE_UPDATEITEM;			fc.uFlags = SHCNF_PATH;			fc.dwItem1 = (DWORD)fpn;			fc.dwItem2 = 0;			fc.dwAttributes = attribs;			yfsd_U32sToWinFileTime(mtime,&fc.ftModified);			fc.nFileSize = objSize;			vol->shellFunction(&fc);			RETAILMSG (MSGSTATE, (L"YAFFS::shell function called\r\n"));			//yfsd_ShellDirectoryChanged(vol,fpn);	}	return TRUE;}   BOOL YFSD_SetEndOfFile( PFILE pFile ){	WCHAR fpn[YFSD_FULL_PATH_NAME_SIZE];	int nameExists = 0;	yfsd_Volume *vol = NULL;	DWORD attribs = 0;	DWORD objSize = 0;	DWORD mtime[2];	static unsigned char zeros[512];	int result;	BOOL retVal = FALSE;	RETAILMSG (MSGSTATE, (L"YAFFS::SetEOF\r\n"));	if(!pFile || !pFile->obj)	{		SetLastError(ERROR_INVALID_HANDLE);		return FALSE;	}	yfsd_LockYAFFS();	result = yaffs_ResizeFile(pFile->obj,pFile->offset);	RETAILMSG (MSGSTATE, (L"YAFFS::SetEOF resizing to %d, result %d\r\n",pFile->offset,result));	// Resize only works if we're shortening the file.	// If the result is shorter than the offset, then we need to write zeros....	// 	if(result != pFile->offset)	{		if(result < pFile->offset)		{			int nBytes = pFile->offset - result;			int thisWriteSize;			int written;			BOOL ok = TRUE;			memset(zeros,0,512);			pFile->offset = result;			RETAILMSG (MSGSTATE, (L"YAFFS::SetEOF expanding file by %d bytes\r\n",nBytes));			while(nBytes > 0 && ok)			{				thisWriteSize = (nBytes > 512) ? 512  : nBytes;				ok = yfsd_DoWriteFile(pFile,zeros,thisWriteSize,&written);					if(written != thisWriteSize)				{					ok = FALSE;				}				nBytes -= thisWriteSize;			}			retVal = ok;		}		else		{			SetLastError(ERROR_ACCESS_DENIED);			retVal = FALSE;		}	}	else	{		retVal = TRUE;	}	if(retVal)	{		attribs = yfsd_GetObjectWinAttributes(pFile->obj);		objSize = yaffs_GetObjectFileLength(pFile->obj);		mtime[0] = pFile->obj->win_mtime[0];		mtime[1] = pFile->obj->win_mtime[1];		if(pFile->fullName)		{			wcscpy(fpn,pFile->fullName);			nameExists = 1;		}		vol = pFile->myVolume;	}	yfsd_UnlockYAFFS();	if(nameExists && retVal && vol && vol->shellFunction)	{			FILECHANGEINFO fc;					fc.cbSize = sizeof(FILECHANGEINFO);			fc.wEventId = SHCNE_UPDATEITEM;			fc.uFlags = SHCNF_PATH;			fc.dwItem1 = (DWORD)fpn;			fc.dwItem2 = 0;			fc.dwAttributes = attribs;			yfsd_U32sToWinFileTime(mtime,&fc.ftModified);			fc.nFileSize = objSize;			vol->shellFunction(&fc);			RETAILMSG (MSGSTATE, (L"YAFFS::shell function called\r\n"));			//yfsd_ShellDirectoryChanged(vol,fpn);	}	RETAILMSG (MSGSTATE, (L"YAFFS::SetEOF file size %d\r\n",yaffs_GetObjectFileLength(pFile->obj)));		return retVal;}BOOL YFSD_DeviceIoControl( 	PFILE pFile, 	DWORD dwIoControlCode, 	PVOID pInBuf, 	DWORD nInBufSiz

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费电影| 在线免费观看视频一区| 伦理电影国产精品| 天天操天天色综合| 久久99深爱久久99精品| 狠狠色狠狠色综合日日91app| 亚洲午夜一二三区视频| 性久久久久久久久久久久| 老司机精品视频线观看86| 国产电影精品久久禁18| 色香蕉久久蜜桃| 日韩一级二级三级精品视频| 久久久国产精品麻豆| 一区二区在线观看不卡| 日韩不卡一区二区三区| 成人白浆超碰人人人人| 中文字幕不卡一区| 日韩欧美视频一区| 一本大道久久a久久精品综合| 亚洲视频 欧洲视频| 91精品国产91久久久久久一区二区 | 在线视频观看一区| 午夜成人在线视频| 亚洲欧美色图小说| 国产精品久久久久久久久果冻传媒| 日韩一区二区三区av| 日韩精品一区二| 成人免费在线播放视频| 久久精品国产久精国产| 91麻豆蜜桃一区二区三区| 日韩欧美电影在线| 亚洲一二三四在线| 成人免费观看视频| 精品国产乱码久久久久久蜜臀 | 亚洲精品老司机| 国产黑丝在线一区二区三区| 欧美日韩成人综合| 国产精品久久久久久户外露出 | 久久久久久久久岛国免费| 亚洲国产一区二区a毛片| 99久久精品国产毛片| 中文字幕成人在线观看| 国产在线一区观看| 日韩一区二区电影网| 亚洲人成亚洲人成在线观看图片 | 国产精品综合网| 欧美另类z0zxhd电影| 国产精品电影一区二区| 日韩在线一区二区| 在线看日本不卡| 国产精品久久久久久久久快鸭 | 欧美一区三区四区| 亚洲一区视频在线| 色国产综合视频| 亚洲精选在线视频| eeuss鲁片一区二区三区在线观看| 欧美精品一区二区精品网| 激情六月婷婷综合| 日本一区二区免费在线观看视频 | 日韩欧美高清一区| 毛片一区二区三区| 91久久线看在观草草青青| 亚洲最快最全在线视频| 欧日韩精品视频| 久久99久久99精品免视看婷婷| 日韩一区二区三区在线| 国产一区高清在线| 中文字幕日韩精品一区| 日韩中文字幕区一区有砖一区 | 亚洲国产精品精华液ab| 国产精品毛片a∨一区二区三区| 亚洲成人免费观看| 色就色 综合激情| 日本亚洲一区二区| 国产精品久久久久久久久图文区| 狠狠色丁香婷婷综合| 色狠狠av一区二区三区| 亚洲精品免费视频| 3d动漫精品啪啪一区二区竹菊| 久久丁香综合五月国产三级网站| 国产精品私人自拍| 欧美成人高清电影在线| k8久久久一区二区三区| 国内精品免费在线观看| 亚洲男女一区二区三区| 欧美日韩成人一区二区| 另类人妖一区二区av| 国产午夜精品一区二区| 在线观看日产精品| www.综合网.com| 国产激情一区二区三区四区| 亚洲午夜精品一区二区三区他趣| 国产三级三级三级精品8ⅰ区| 91福利国产精品| 成人午夜碰碰视频| 国产成人综合视频| 亚洲自拍欧美精品| 亚洲午夜在线电影| 亚洲一区二区高清| 午夜一区二区三区视频| 亚洲一区在线视频观看| 亚洲高清免费在线| 亚洲国产视频直播| 午夜欧美一区二区三区在线播放| 一区二区三区91| 一区二区欧美精品| 日韩高清在线不卡| 日韩国产一区二| 国产成人av电影在线播放| 粉嫩高潮美女一区二区三区| 成人一区二区三区在线观看| 风流少妇一区二区| 99热在这里有精品免费| 欧美视频一区在线| 日韩一区二区三区电影在线观看| 日韩精品一区二区三区swag| 国产精品久久久久久久浪潮网站| 亚洲精品国产无天堂网2021| 日韩精品一二三四| 粉嫩高潮美女一区二区三区| 欧美丝袜自拍制服另类| 欧美一级一区二区| 国产精品久久久久aaaa| 美女一区二区视频| 91老司机福利 在线| 欧美一卡二卡三卡四卡| 亚洲精品国产视频| 国产精品一区二区三区99| 在线观看视频一区二区欧美日韩| 日韩欧美国产综合| 亚洲一区二区免费视频| 秋霞av亚洲一区二区三| 91亚洲精品乱码久久久久久蜜桃| 欧美二区在线观看| 亚洲精品日韩专区silk| 成人免费福利片| 亚洲视频小说图片| 欧美一区二区免费| 精品国产免费一区二区三区四区| 天堂蜜桃91精品| 91在线观看一区二区| 欧美最新大片在线看| 欧美理论片在线| 国产视频一区在线播放| 国产精品免费人成网站| 国产成人精品aa毛片| av亚洲精华国产精华| xvideos.蜜桃一区二区| 亚洲欧美在线视频| www.欧美色图| 亚洲乱码国产乱码精品精的特点| 成人免费电影视频| 日韩伦理av电影| 色av综合在线| 日韩成人伦理电影在线观看| 欧美午夜影院一区| 亚洲一区二区三区三| 欧美日本高清视频在线观看| 婷婷成人激情在线网| 欧美亚洲综合网| 久久成人久久爱| 国产精品久久久久久久久图文区 | 洋洋av久久久久久久一区| 一本大道av一区二区在线播放| 一区二区三区久久| 久久在线观看免费| 91在线码无精品| 精品一区二区三区av| 亚洲日本青草视频在线怡红院| 91精品国产综合久久久久久久久久| 国产在线视频精品一区| 精品国产一区二区国模嫣然| 一本到高清视频免费精品| 狠狠色狠狠色合久久伊人| 亚洲综合在线视频| 国产精品五月天| 精品免费一区二区三区| 777久久久精品| 波多野结衣在线aⅴ中文字幕不卡| 午夜成人免费视频| 一色桃子久久精品亚洲| 中文字幕国产精品一区二区| 日韩欧美在线123| 欧美吞精做爰啪啪高潮| 粉嫩一区二区三区性色av| 全部av―极品视觉盛宴亚洲| 国产精品沙发午睡系列990531| 久久久久国产精品厨房| 欧美久久久久久蜜桃| 一本一道久久a久久精品综合蜜臀| 亚洲成人动漫在线免费观看| 亚洲一区二区三区四区在线观看 | 久久99久久99小草精品免视看| 人人精品人人爱| 国产精一区二区三区| 91玉足脚交白嫩脚丫在线播放| 欧美日韩高清一区二区不卡| 日韩午夜在线影院| 亚洲视频网在线直播| 蜜桃视频一区二区三区在线观看|