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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ewfcommon.c

?? sleuthit-2.09 一個磁盤的工具集
?? C
?? 第 1 頁 / 共 5 頁
字號:
			}			fprintf( ewfcommon_process_status_stream, "        completion" );			ewfcommon_timestamp_fprint( ewfcommon_process_status_stream, (time_t) seconds_remaining );			ewfcommon_bytes_per_second_fprint( ewfcommon_process_status_stream, bytes_total, seconds_total );			fprintf( ewfcommon_process_status_stream, ".\n" );		}		fprintf( ewfcommon_process_status_stream, "\n" );	}}/* Prints status information of the stream process */void ewfcommon_stream_process_status_fprint( uint64_t bytes_read, uint64_t bytes_total ){	time_t timestamp_current = 0;	uint64_t seconds_current = 0;	if( ewfcommon_process_status_stream == NULL )	{		return;	}	if( ewfcommon_process_status_string == NULL )	{		return;	}	timestamp_current = time( NULL );	if( timestamp_current > ewfcommon_process_status_timestamp_last )	{		/* Update state		 * - if no status was printed before		 * - or input has grown > 10 Mb		 * - or the last update was 30 seconds ago		 */		if( ( ewfcommon_process_status_last_bytes_total == 0 )		 || ( bytes_read > ( ewfcommon_process_status_last_bytes_total + ( 10 * 1024 * 1024 ) ) )		 || ( ( timestamp_current - ewfcommon_process_status_timestamp_last ) > 30 ) )		{			ewfcommon_process_status_timestamp_last   = timestamp_current;			ewfcommon_process_status_last_bytes_total = bytes_read;			fprintf( ewfcommon_process_status_stream, "Status: %" PRIs_EWF "", ewfcommon_process_status_string );			ewfcommon_bytes_fprint( ewfcommon_process_status_stream, bytes_read );			fprintf( ewfcommon_process_status_stream, "\n" );			seconds_current = (uint64_t) difftime( timestamp_current, ewfcommon_process_status_timestamp_start );			fprintf( ewfcommon_process_status_stream, "       " );			ewfcommon_timestamp_fprint( ewfcommon_process_status_stream, (time_t) seconds_current );			ewfcommon_bytes_per_second_fprint( ewfcommon_process_status_stream, bytes_read, seconds_current );			fprintf( ewfcommon_process_status_stream, ".\n\n" );		}	}}/* Prints summary information of the process */void ewfcommon_process_summary_fprint( FILE *stream, LIBEWF_CHAR *string, int64_t byte_count, time_t timestamp_start, time_t timestamp_end ){	time_t timestamp_acquiry = 0;	uint64_t seconds_acquiry = 0;	if( stream == NULL )	{		return;	}	if( string == NULL )	{		return;	}	timestamp_acquiry = timestamp_end - timestamp_start;	seconds_acquiry   = (uint64_t) difftime( timestamp_end, timestamp_start );	fprintf( stream, "%" PRIs_EWF ":", string );	ewfcommon_bytes_fprint( stream, byte_count );	ewfcommon_timestamp_fprint( stream, timestamp_acquiry );	ewfcommon_bytes_per_second_fprint( stream, byte_count, seconds_acquiry );	fprintf( stream, ".\n" );}/* Reads data from a file descriptor into the chunk cache * Returns the amount of bytes read, 0 if at end of input, or -1 on error */int32_t ewfcommon_read_input( LIBEWF_HANDLE *handle, int file_descriptor, EWF_CHUNK *buffer, uint64_t size, int64_t total_read_count, uint64_t total_input_size, uint8_t read_error_retry, uint32_t sector_error_granularity, uint8_t wipe_block_on_read_error, uint8_t seek_on_error ){#if defined(HAVE_STRERROR_R) || defined(HAVE_STRERROR)	CHAR_T *error_string              = NULL;#endif	ssize_t read_count                = 0;	size_t read_size                  = 0;	size_t bytes_to_read              = 0;	size_t read_remaining_bytes       = 0;	size_t error_remaining_bytes      = 0;	int64_t current_read_offset       = 0;	int64_t current_calculated_offset = 0;	int64_t chunk_amount              = 0;	int64_t buffer_offset             = 0;	uint64_t error2_sector            = 0;	int32_t read_amount_of_errors     = 0;	uint32_t chunk_size               = 0;	uint32_t bytes_per_sector         = 0;	uint32_t read_error_offset        = 0;	uint32_t error_skip_bytes         = 0;	uint32_t error_granularity_offset = 0;	uint32_t error2_amount_of_sectors = 0;	uint32_t byte_error_granularity   = 0;	if( handle == NULL )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid handle.\n" );		return( -1 );	}	if( buffer == NULL )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid read buffer.\n" );		return( -1 );	}	chunk_size = libewf_get_chunk_size( handle );	if( chunk_size == 0 )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: unable to determine chunk media.\n" );		return( -1 );	}	if( size > (uint64_t) INT64_MAX )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid size - size larger than 2^63 not supported.\n" );		return( -1 );	}	if( file_descriptor == -1 )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid file descriptor.\n" );		return( -1 );	}	if( total_read_count <= -1 )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid total read count.\n" );		return( -1 );	}	bytes_per_sector = libewf_get_bytes_per_sector( handle );	if( bytes_per_sector == 0 )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid amount of bytes per sector.\n" );		return( -1 );	}	chunk_amount = libewf_get_write_amount_of_chunks( handle );	if( ( chunk_amount <= -1 ) || ( chunk_amount > (int64_t) UINT32_MAX ) )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read_input: invalid amount of chunks written.\n" );		return( -1 );	}	while( size > 0 )	{		/* Determine the amount of bytes to read from the input		 * Read as much as possible in chunk sizes		 */		if( size < (uint64_t) chunk_size )		{			read_size = (uint32_t) size;		}		else		{			read_size = chunk_size;		}		bytes_to_read = read_size;		while( read_amount_of_errors <= read_error_retry )		{			read_count = libewf_common_read( file_descriptor, &buffer[ buffer_offset + read_error_offset ], bytes_to_read );			LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: read chunk: %" PRIi64 " with size: %zi.\n", ( chunk_amount + 1 ), read_count );			current_calculated_offset = (off_t) ( total_read_count + buffer_offset + read_error_offset );			if( read_count <= -1 )			{#if defined(HAVE_STRERROR_R) || defined(HAVE_STRERROR)				if( ( errno == ESPIPE ) || ( errno == EPERM ) || ( errno == ENXIO ) || ( errno == ENODEV ) )				{					error_string = libewf_common_strerror( errno );					if( error_string != NULL )					{						LIBEWF_WARNING_PRINT( "ewfcommon_read_input: error reading data: %s.\n", error_string );						libewf_common_free( error_string );					}					return( -1 );				}#else				if( errno == ESPIPE )				{					LIBEWF_WARNING_PRINT( "ewfcommon_read_input: error reading data: Invalid seek.\n" );					return( -1 );				}				else if( errno == EPERM )				{					LIBEWF_WARNING_PRINT( "ewfcommon_read_input: error reading data: Operation not permitted.\n" );					return( -1 );				}				else if( errno == ENXIO )				{					LIBEWF_WARNING_PRINT( "ewfcommon_read_input: error reading data: No such device or address.\n" );					return( -1 );				}				else if( errno == ENODEV )				{					LIBEWF_WARNING_PRINT( "ewfcommon_read_input: error reading data: No such device.\n" );					return( -1 );				}#endif				if( seek_on_error == 1 )				{					current_read_offset = libewf_common_lseek( file_descriptor, 0, SEEK_CUR );					if( current_read_offset != current_calculated_offset )					{						LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: correcting offset drift current: %jd, calculated: %jd.\n",						                      current_read_offset, current_calculated_offset );						if( current_read_offset < current_calculated_offset )						{							LIBEWF_WARNING_PRINT( "ewfcommon_read_input: unable to correct offset drift.\n" );							return( -1 );						}						read_count         = (ssize_t) ( current_read_offset - current_calculated_offset );						read_error_offset += read_count;						bytes_to_read     -= read_count;					}				}			}			else			{				/* The last read is OK, correct read_count				 */				if( read_count == (int32_t) bytes_to_read )				{					read_count = read_error_offset + bytes_to_read;				}				/* The entire read is OK				 */				if( read_count == (int32_t) read_size )				{					break;				}				/* If no end of input can be determined				 */				if( total_input_size == 0 )				{					/* If some bytes were read it is possible that the end of the input reached					 */					if( read_count > 0 )					{						return( (int32_t) ( buffer_offset + read_count ) );					}				}				else				{					/* Check if the end of the input was reached					 */					if( ( total_read_count + buffer_offset + read_count ) >= (int64_t) total_input_size )					{						break;					}				}				/* No bytes were read				 */				if( read_count == 0 )				{					return( 0 );				}				LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: read error at offset %jd after reading %zi bytes.\n",				                      current_calculated_offset, read_count );				/* There was a read error at a certain offset				 */				read_error_offset += read_count;				bytes_to_read     -= read_count;			}			read_amount_of_errors++;			if( read_amount_of_errors > read_error_retry )			{				if( seek_on_error == 0 )				{					LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: unable to handle more input.\n" );					return( 0 );				}				current_calculated_offset = total_read_count + buffer_offset;				/* Check if last chunk is smaller than the chunk size and take corrective measures				 */				if( ( total_input_size != 0 ) && ( ( current_calculated_offset + chunk_size ) > (int64_t) total_input_size ) )				{					read_remaining_bytes = (size_t) ( total_input_size - current_calculated_offset );				}				else				{					read_remaining_bytes = (size_t) chunk_size;				}				if( read_remaining_bytes > (size_t) SSIZE_MAX )				{					LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: invalid remaining bytes value exceeds maximum.\n" );					return( -1 );				}				byte_error_granularity   = sector_error_granularity * bytes_per_sector;				error_remaining_bytes    = read_remaining_bytes - read_error_offset;				error2_sector            = current_calculated_offset;				error_granularity_offset = ( read_error_offset / byte_error_granularity ) * byte_error_granularity;				error_skip_bytes         = ( error_granularity_offset + byte_error_granularity ) - read_error_offset;				if( wipe_block_on_read_error == 1 )				{					LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: wiping block of %" PRIu32 " bytes at offset %" PRIu32 ".\n", byte_error_granularity, error_granularity_offset );					if( libewf_common_memset( &buffer[ error_granularity_offset ], 0, byte_error_granularity ) == NULL )					{						LIBEWF_WARNING_PRINT( "ewfcommon_read_input: unable to wipe data in chunk on error.\n" );						return( -1 );					}					error2_sector            += error_granularity_offset;					error2_amount_of_sectors  = byte_error_granularity;				}				else				{					error2_sector            += read_error_offset;					error2_amount_of_sectors  = error_skip_bytes;				}				error2_sector            /= bytes_per_sector;				error2_amount_of_sectors /= bytes_per_sector;				if( libewf_add_acquiry_error( handle, error2_sector, error2_amount_of_sectors ) != 1 )				{					LIBEWF_WARNING_PRINT( "ewfcommon_read_input: unable to add acquiry read errror sectors.\n" );					return( -1 );				}				LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: adding error2: %" PRIu32 " sector: %" PRIu64 ", count: %" PRIu32 ".\n", ( (LIBEWF_INTERNAL_HANDLE *) handle )->acquiry_amount_of_errors, error2_sector, error2_amount_of_sectors );				LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: skipping %" PRIu32 " bytes.\n", error_skip_bytes );				/* At the end of the input				 */				if( ( total_input_size != 0 ) && ( ( current_calculated_offset + read_remaining_bytes ) >= (int64_t) total_input_size ) )				{					LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: at end of input no remaining bytes to read from chunk.\n" );					read_count = (ssize_t) read_remaining_bytes;					break;				}				if( libewf_common_lseek( file_descriptor, error_skip_bytes, SEEK_CUR ) == -1 )				{#if defined(HAVE_STRERROR_R) || defined(HAVE_STRERROR)					error_string = libewf_common_strerror( errno );					if( error_string != NULL )					{						LIBEWF_WARNING_PRINT( "ewfcommon_read_input: unable skip %" PRIu32 " bytes after sector with error - %s.\n", error_skip_bytes, error_string );						libewf_common_free( error_string );					}#else					LIBEWF_WARNING_PRINT( "ewfcommon_read_input: unable skip %" PRIu32 " bytes after sector with error.\n", error_skip_bytes );#endif					return( -1 );				}				/* If error granularity skip is still within the chunk				 */				if( error_remaining_bytes > byte_error_granularity )				{					bytes_to_read          = error_remaining_bytes - error_skip_bytes;					read_error_offset     += error_skip_bytes;					read_amount_of_errors  = 0;					LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: remaining to read from chunk %" PRIu32 " bytes.\n", bytes_to_read );				}				else				{					read_count = (ssize_t) read_remaining_bytes;					LIBEWF_VERBOSE_PRINT( "ewfcommon_read_input: no remaining bytes to read from chunk.\n" );					break;				}			}		}		size          -= read_count;		buffer_offset += read_count;		/* At the end of the input		 */		if( ( total_input_size != 0 ) && ( ( total_read_count + buffer_offset ) >= (int64_t) total_input_size ) )		{			break;		}	}	return( (int32_t) buffer_offset );}/* Reads the data (to nowhere) * This processes the entire file for the MD5 calculation with status information * Returns a -1 on error, the amount of bytes read on success */int64_t ewfcommon_read( LIBEWF_HANDLE *handle, uint8_t calculate_sha1, void (*callback)( uint64_t bytes_read, uint64_t bytes_total ) ){	EWFSHA1_CONTEXT sha1_context;	LIBEWF_CHAR *sha1_hash_string       = NULL;#ifndef HAVE_CHUNK_CACHE_PASSTHROUGH	uint8_t *data                       = NULL;#endif	off_t read_offset                   = 0;	ssize_t read_count                  = 0;	size_t size                         = 0;	size_t buffer_size                  = 0;	int64_t total_read_count            = 0;	uint64_t media_size                 = 0;	uint32_t chunk_size                 = 0;	if( handle == NULL )	{		LIBEWF_WARNING_PRINT( "ewfcommon_read: invalid handle.\n" );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品99久久久久久宅男| 亚洲精品一区二区三区99| 欧美一区二区精品| 国产三级精品三级| 免费观看久久久4p| 日本乱人伦一区| 欧美国产精品中文字幕| 欧美96一区二区免费视频| 99久久精品免费看| 精品久久久久久综合日本欧美| 一区二区三区在线免费视频| 成人伦理片在线| 精品国产污网站| 日韩国产成人精品| 在线视频中文字幕一区二区| 国产精品私房写真福利视频| 韩国理伦片一区二区三区在线播放| 欧美日韩国产综合久久| 亚洲欧美日韩国产另类专区| 成人久久18免费网站麻豆 | 偷拍日韩校园综合在线| 不卡视频在线观看| 国产欧美一区二区三区沐欲| 久久99久久久欧美国产| 91精品国产91久久久久久最新毛片 | 国产成人精品一区二区三区四区 | 亚洲精品在线观看网站| 日本欧美一区二区三区乱码| 91成人看片片| 亚洲欧美日韩综合aⅴ视频| 91在线视频官网| 亚洲日本在线天堂| 91蝌蚪porny九色| 亚洲人成网站在线| 91网站最新地址| 亚洲欧洲一区二区在线播放| 99精品久久只有精品| 中文字幕日韩精品一区| 91丨九色丨蝌蚪丨老版| 亚洲精品五月天| 在线观看一区二区视频| 亚洲电影一级片| 在线不卡免费欧美| 美女高潮久久久| 精品国产一区二区三区不卡 | 北岛玲一区二区三区四区| 国产精品国产三级国产aⅴ无密码| 国产69精品久久久久毛片 | 成人美女在线观看| 亚洲青青青在线视频| 欧美日韩一区二区在线视频| 视频在线观看一区| 欧美精品一区二区高清在线观看| 国产精品羞羞答答xxdd| 亚洲少妇30p| 欧美酷刑日本凌虐凌虐| 韩日精品视频一区| 国产精品伦一区二区三级视频| 色噜噜狠狠色综合中国| 蜜桃精品在线观看| 亚洲国产精品成人久久综合一区| 91视频在线看| 免费在线观看成人| 国产精品三级av在线播放| 色噜噜狠狠色综合欧洲selulu| 亚洲不卡在线观看| 久久久精品影视| 在线观看欧美精品| 国产综合色在线| 一区二区三区中文字幕在线观看| 91精品国产综合久久久蜜臀粉嫩 | 最新高清无码专区| 欧美一区二区福利在线| 成人精品gif动图一区| 亚洲成人一区在线| 中文字幕精品一区| 91精品国产麻豆国产自产在线| 成人免费视频一区| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲欧洲一区二区三区| 精品国产凹凸成av人网站| 色综合亚洲欧洲| 国产麻豆精品theporn| 亚洲高清久久久| 国产精品午夜在线| 日韩欧美亚洲国产另类| 在线日韩av片| 成人av网站在线观看| 另类综合日韩欧美亚洲| 一区二区三区在线视频免费 | 国产毛片精品视频| 婷婷久久综合九色综合绿巨人| 国产亚洲精品精华液| 日韩一区二区三区av| 在线观看日韩一区| av不卡一区二区三区| av电影一区二区| 国产一区二区三区在线看麻豆| 亚洲国产精品久久一线不卡| 成人免费一区二区三区视频 | 国产98色在线|日韩| 日韩一区欧美二区| 亚洲国产日产av| 一区二区在线观看视频在线观看| 国产精品视频yy9299一区| 久久午夜羞羞影院免费观看| 日韩欧美在线观看一区二区三区| 欧美色图一区二区三区| 色综合色综合色综合| 91无套直看片红桃| www.色精品| 91在线观看免费视频| 岛国精品在线播放| 波多野结衣精品在线| 99视频超级精品| eeuss鲁片一区二区三区在线看| 懂色av中文一区二区三区| 粉嫩av一区二区三区| 国产精品亚洲а∨天堂免在线| 国产伦精一区二区三区| 国产精品一区二区久久精品爱涩| 久久精品国产77777蜜臀| 久久精品国产99国产精品| 久久国产综合精品| 国产精品白丝jk白祙喷水网站| 国产精品一区二区久久精品爱涩| 懂色av中文字幕一区二区三区| 成人午夜激情影院| 97精品视频在线观看自产线路二| 一本一道久久a久久精品综合蜜臀| 色综合久久久久久久| 在线免费观看视频一区| 欧美一区二区三区免费观看视频 | 色欧美乱欧美15图片| 在线观看日韩毛片| 日韩一区二区在线看| 精品国产凹凸成av人网站| 中文字幕免费观看一区| 亚洲综合图片区| 日本一区中文字幕| 大陆成人av片| 欧美主播一区二区三区| 日韩一区二区免费高清| 亚洲国产精品黑人久久久| 亚洲午夜在线视频| 蜜桃av一区二区| av资源网一区| 亚洲视频在线观看一区| 亚洲一区二区精品视频| 国产麻豆一精品一av一免费| 99热这里都是精品| 欧美一二三区在线| 国产精品高潮呻吟| 欧美a级一区二区| 不卡影院免费观看| 欧美一区二区二区| 中文字幕制服丝袜成人av| 天堂va蜜桃一区二区三区漫画版| 国产超碰在线一区| 欧美高清性hdvideosex| 亚洲国产岛国毛片在线| 日韩精品国产精品| 99在线精品免费| 2023国产精品| 亚洲 欧美综合在线网络| 丁香六月综合激情| 欧美人体做爰大胆视频| 国产精品久久久久久久久搜平片| 免费人成在线不卡| 欧美伊人久久久久久午夜久久久久| 久久精品人人做人人综合| 香蕉乱码成人久久天堂爱免费| 成人做爰69片免费看网站| 日韩欧美国产一区在线观看| 一区二区三区久久久| 99热在这里有精品免费| 精品福利在线导航| 日韩精品一二区| 色天天综合色天天久久| 国产欧美综合在线观看第十页| 日本v片在线高清不卡在线观看| 色伊人久久综合中文字幕| 久久精品一区二区三区av| 久久国产精品一区二区| 91精品国产综合久久久久久久| 亚洲综合自拍偷拍| 色吊一区二区三区| 国产精品久久久久婷婷二区次| 激情综合色综合久久综合| 欧美一区二区观看视频| 日韩制服丝袜先锋影音| 欧美性大战久久久久久久| 一区二区三区蜜桃| 色一区在线观看| 亚洲精品国产一区二区三区四区在线 | 美女一区二区在线观看| 欧美人妖巨大在线| 日本伊人午夜精品| 制服丝袜在线91| 麻豆精品视频在线观看免费|