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

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

?? libewf_internal_handle.c

?? sleuthit-2.09 一個磁盤的工具集
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* * libewf handle * * Copyright (c) 2006-2007, Joachim Metz <forensics@hoffmannbv.nl>, * Hoffmann Investigations. All rights reserved. * * Refer to AUTHORS for acknowledgements. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, *   this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright notice, *   this list of conditions and the following disclaimer in the documentation *   and/or other materials provided with the distribution. * - Neither the name of the creator, related organisations, nor the names of *   its contributors may be used to endorse or promote products derived from *   this software without specific prior written permission. * - All advertising materials mentioning features or use of this software *   must acknowledge the contribution by people stated in the acknowledgements. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER, COMPANY AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */#include "libewf_includes.h"#include <time.h>#include <libewf/libewf_definitions.h>#include "libewf_common.h"#include "libewf_notify.h"#include "libewf_internal_handle.h"#include "libewf_string.h"#include "ewf_crc.h"#include "ewf_compress.h"#include "ewf_data.h"#include "ewf_definitions.h"#include "ewf_file_header.h"/* Allocates memory for a new handle struct * Returns a pointer to the new instance, NULL on error */LIBEWF_INTERNAL_HANDLE *libewf_internal_handle_alloc( uint16_t segment_amount, uint8_t flags ){	LIBEWF_INTERNAL_HANDLE *internal_handle = NULL;	if( ( flags != LIBEWF_OPEN_READ ) && ( flags != LIBEWF_OPEN_WRITE ) && ( flags != LIBEWF_OPEN_READ_WRITE ) )	{		LIBEWF_WARNING_PRINT( "ewf_handle_alloc: invalid flags.\n" );		return( NULL );	}	internal_handle = (LIBEWF_INTERNAL_HANDLE *) libewf_common_alloc( LIBEWF_INTERNAL_HANDLE_SIZE );	if( internal_handle == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_alloc: unable to allocate handle.\n" );		return( NULL );	}	internal_handle->media                     = NULL;	internal_handle->read                      = NULL;	internal_handle->write                     = NULL;	internal_handle->segment_table             = NULL;	internal_handle->offset_table              = NULL;	internal_handle->secondary_offset_table    = NULL;	internal_handle->chunk_cache               = NULL;	internal_handle->header                    = NULL;	internal_handle->header_size               = 0;	internal_handle->header2                   = NULL;	internal_handle->header2_size              = 0;	internal_handle->xheader                   = NULL;	internal_handle->xheader_size              = 0;	internal_handle->xhash                     = NULL;	internal_handle->xhash_size                = 0;	internal_handle->header_values             = NULL;	internal_handle->hash_values               = NULL;	internal_handle->stored_md5_hash           = NULL;	internal_handle->calculated_md5_hash       = NULL;	internal_handle->acquiry_error_sectors     = NULL;	internal_handle->acquiry_amount_of_errors  = 0;	internal_handle->current_chunk             = 0;	internal_handle->current_chunk_offset      = 0;	internal_handle->swap_byte_pairs           = 0;	internal_handle->compression_level         = EWF_COMPRESSION_UNKNOWN;	internal_handle->amount_of_header_sections = 0;	internal_handle->format                    = LIBEWF_FORMAT_UNKNOWN;	internal_handle->ewf_format                = EWF_FORMAT_UNKNOWN;	internal_handle->index_build               = 0;	internal_handle->error_tollerance          = LIBEWF_ERROR_TOLLERANCE_COMPENSATE;	internal_handle->segment_table = libewf_segment_table_alloc( segment_amount );	if( internal_handle->segment_table == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_alloc: unable to create segment table.\n" );		libewf_common_free( internal_handle );		return( NULL );	}	internal_handle->chunk_cache = libewf_chunk_cache_alloc( EWF_MINIMUM_CHUNK_SIZE + EWF_CRC_SIZE );	if( internal_handle->chunk_cache == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_alloc: unable to create chunk cache.\n" );		libewf_segment_table_free( internal_handle->segment_table );		libewf_common_free( internal_handle );		return( NULL );	}	internal_handle->media = libewf_internal_handle_media_alloc();	if( internal_handle->media == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_alloc: unable to create media subhandle.\n" );		libewf_chunk_cache_free( internal_handle->chunk_cache );		libewf_segment_table_free( internal_handle->segment_table );		libewf_common_free( internal_handle );		return( NULL );	}	if( ( flags == LIBEWF_OPEN_READ )	 || ( flags == LIBEWF_OPEN_READ_WRITE ) )	{		internal_handle->read = libewf_internal_handle_read_alloc();		if( internal_handle->read == NULL )		{			LIBEWF_WARNING_PRINT( "ewf_handle_alloc: unable to create read subhandle.\n" );			libewf_internal_handle_media_free( internal_handle->media );			libewf_chunk_cache_free( internal_handle->chunk_cache );			libewf_segment_table_free( internal_handle->segment_table );			libewf_common_free( internal_handle );			return( NULL );		}	}	if( ( flags == LIBEWF_OPEN_WRITE )	 || ( flags == LIBEWF_OPEN_READ_WRITE ) )	{		internal_handle->write = libewf_internal_handle_write_alloc();		if( internal_handle->write == NULL )		{			LIBEWF_WARNING_PRINT( "ewf_handle_alloc: unable to create write subhandle.\n" );			if( internal_handle->read != NULL )			{				libewf_internal_handle_read_free( internal_handle->read );			}			libewf_internal_handle_media_free( internal_handle->media );			libewf_chunk_cache_free( internal_handle->chunk_cache );			libewf_segment_table_free( internal_handle->segment_table );			libewf_common_free( internal_handle );			return( NULL );		}	}	return( internal_handle );}/* Frees memory of a handle struct including elements */void libewf_internal_handle_free( LIBEWF_INTERNAL_HANDLE *internal_handle ){	if( internal_handle == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_free: invalid handle.\n" );		return;	}	libewf_internal_handle_media_free( internal_handle->media );	if( internal_handle->read != NULL )	{		libewf_internal_handle_read_free( internal_handle->read );	}	libewf_internal_handle_write_free( internal_handle->write );	if( internal_handle->segment_table != NULL )	{		libewf_segment_table_free( internal_handle->segment_table );	}	if( internal_handle->offset_table != NULL )	{		libewf_offset_table_free( internal_handle->offset_table );	}	if( internal_handle->secondary_offset_table != NULL )	{		libewf_offset_table_free( internal_handle->secondary_offset_table );	}	libewf_common_free( internal_handle->acquiry_error_sectors );	libewf_common_free( internal_handle->header );	libewf_common_free( internal_handle->header2 );	libewf_common_free( internal_handle->xheader );	libewf_common_free( internal_handle->xhash );	if( internal_handle->header_values != NULL )	{		libewf_header_values_free( internal_handle->header_values );	}	if( internal_handle->hash_values != NULL )	{		libewf_hash_values_free( internal_handle->hash_values );	}	libewf_common_free( internal_handle->stored_md5_hash );	libewf_common_free( internal_handle->calculated_md5_hash );	if( internal_handle->chunk_cache != NULL )	{		libewf_chunk_cache_free( internal_handle->chunk_cache );	}	libewf_common_free( internal_handle );}/* Allocates memory for a new handle media struct * Returns a pointer to the new instance, NULL on error */LIBEWF_INTERNAL_HANDLE_MEDIA *libewf_internal_handle_media_alloc( void ){	LIBEWF_INTERNAL_HANDLE_MEDIA *handle_media = NULL;	handle_media = (LIBEWF_INTERNAL_HANDLE_MEDIA *) libewf_common_alloc( LIBEWF_INTERNAL_HANDLE_MEDIA_SIZE );	if( handle_media == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_media_alloc: unable to allocate handle media.\n" );		return( NULL );	}	handle_media->media_size        = 0;	handle_media->chunk_size        = EWF_MINIMUM_CHUNK_SIZE;	handle_media->sectors_per_chunk = 0;	handle_media->bytes_per_sector  = 0;	handle_media->amount_of_chunks  = 0;	handle_media->amount_of_sectors = 0;	handle_media->error_granularity = 0;	handle_media->media_type        = 0;	handle_media->media_flags       = 0x01;	return( handle_media );}/* Allocates memory for a new handle read struct * Returns a pointer to the new instance, NULL on error */LIBEWF_INTERNAL_HANDLE_READ *libewf_internal_handle_read_alloc( void ){	LIBEWF_INTERNAL_HANDLE_READ *handle_read = NULL;	handle_read = (LIBEWF_INTERNAL_HANDLE_READ *) libewf_common_alloc( LIBEWF_INTERNAL_HANDLE_READ_SIZE );	if( handle_read == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_read_alloc: unable to allocate handle read.\n" );		return( NULL );	}	handle_read->crc_error_sectors    = NULL;	handle_read->crc_amount_of_errors = 0;	handle_read->values_initialized   = 0;	return( handle_read );}/* Frees memory of a handle read struct including elements */void libewf_internal_handle_read_free( LIBEWF_INTERNAL_HANDLE_READ *handle_read ){	if( handle_read == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_read_free: invalid handle read.\n" );		return;	}	libewf_common_free( handle_read->crc_error_sectors );	libewf_common_free( handle_read );}/* Allocates memory for a new handle write struct * Returns a pointer to the new instance, NULL on error */LIBEWF_INTERNAL_HANDLE_WRITE *libewf_internal_handle_write_alloc( void ){	LIBEWF_INTERNAL_HANDLE_WRITE *handle_write = NULL;	handle_write = (LIBEWF_INTERNAL_HANDLE_WRITE *) libewf_common_alloc( LIBEWF_INTERNAL_HANDLE_WRITE_SIZE );	if( handle_write == NULL )	{		LIBEWF_WARNING_PRINT( "ewf_handle_write_alloc: unable to allocate handle write.\n" );		return( NULL );	}	handle_write->input_write_count          = 0;	handle_write->write_count                = 0;	handle_write->input_write_size           = 0;	handle_write->segment_file_size          = 0;	handle_write->maximum_amount_of_segments = 0;	handle_write->chunks_section_write_count = 0;	handle_write->amount_of_chunks           = 0;	handle_write->chunks_per_segment         = 0;	handle_write->chunks_per_chunks_section  = 0;	handle_write->segment_amount_of_chunks   = 0;	handle_write->section_amount_of_chunks   = 0;	handle_write->chunks_section_offset      = 0;	handle_write->chunks_section_number      = 0;	handle_write->compress_empty_block       = 0;	handle_write->unrestrict_offset_amount   = 0;	handle_write->values_initialized         = 0;	handle_write->create_chunks_section      = 0;	handle_write->write_finalized            = 0;	return( handle_write );}/* Reallocates the handle chunk cache * Returns a pointer to the instance, NULL on error */LIBEWF_INTERNAL_HANDLE *libewf_internal_handle_chunk_cache_realloc( LIBEWF_INTERNAL_HANDLE *internal_handle, size_t size ){	LIBEWF_CHUNK_CACHE *chunk_cache = NULL;	if( internal_handle == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_chunk_cache_realloc: invalid handle.\n" );		return( NULL );	}	if( internal_handle->chunk_cache == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_chunk_cache_realloc: invalid handle - missing chunk cache.\n" );		return( NULL );	}	chunk_cache = libewf_chunk_cache_realloc( internal_handle->chunk_cache, size );	if( chunk_cache == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_chunk_cache_realloc: unable to reallocate chunk cache.\n" );		return( NULL );	}	internal_handle->chunk_cache = chunk_cache;	return( internal_handle );}/* Check if the header value is set * Returns 0 if not set, 1 if set, or -1 on error */int8_t libewf_internal_handle_is_set_header( LIBEWF_INTERNAL_HANDLE *internal_handle ){	if( internal_handle == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_is_set_header: invalid handle.\n" );		return( -1 );	}	return( (uint8_t) ( internal_handle->header != NULL ) );}/* Check if the header2 value is set * Returns 0 if not set, 1 if set, or -1 on error */int8_t libewf_internal_handle_is_set_header2( LIBEWF_INTERNAL_HANDLE *internal_handle ){	if( internal_handle == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_is_set_header2: invalid handle.\n" );		return( -1 );	}	return( (uint8_t) ( internal_handle->header2 != NULL ) );}/* Check if the xheader value is set * Returns 0 if not set, 1 if set, or -1 on error */int8_t libewf_internal_handle_is_set_xheader( LIBEWF_INTERNAL_HANDLE *internal_handle ){	if( internal_handle == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_internal_handle_is_set_xheader: invalid handle.\n" );		return( -1 );	}	return( (uint8_t) ( internal_handle->xheader != NULL ) );}/* Check if the xhash value is set * Returns 0 if not set, 1 if set, or -1 on error

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区a| 蜜桃av一区二区| av不卡免费在线观看| 亚洲国产精品黑人久久久| 国产乱妇无码大片在线观看| 精品国产免费视频| 久久国产婷婷国产香蕉| 久久久久久久综合色一本| 国产激情精品久久久第一区二区| 久久亚洲二区三区| 暴力调教一区二区三区| 亚洲精品国久久99热| 欧美视频三区在线播放| 美女一区二区在线观看| 精品91自产拍在线观看一区| 成人性视频网站| 亚洲综合在线免费观看| 日韩午夜激情视频| 高清av一区二区| 夜夜精品浪潮av一区二区三区| 555夜色666亚洲国产免| 国产黑丝在线一区二区三区| 亚洲欧洲成人自拍| 777午夜精品视频在线播放| 久久国产精品第一页| 中文字幕av一区二区三区免费看| 色综合久久九月婷婷色综合| 日本免费新一区视频| 久久久久久久久97黄色工厂| 91久久人澡人人添人人爽欧美| 爽好多水快深点欧美视频| 久久精品在线免费观看| 91国内精品野花午夜精品| 色婷婷综合久久久中文字幕| 日韩国产欧美在线播放| 中文字幕乱码亚洲精品一区| 欧美人xxxx| 成+人+亚洲+综合天堂| 免费一级片91| 亚洲视频中文字幕| 精品国产成人系列| 欧美色图一区二区三区| 福利视频网站一区二区三区| 亚洲成人先锋电影| 国产精品久久久久久亚洲伦| 欧美一区二区三区视频在线 | 91色九色蝌蚪| 日本一不卡视频| 亚洲精品网站在线观看| 2024国产精品视频| 欧美精品久久99| av亚洲精华国产精华| 久久国产剧场电影| 婷婷综合在线观看| 亚洲黄色小说网站| 国产欧美精品一区二区三区四区 | 高清在线成人网| 日韩av电影天堂| 亚洲国产一区视频| 中文字幕av一区二区三区免费看| 欧美精品tushy高清| 色成年激情久久综合| 国产电影一区二区三区| 麻豆成人久久精品二区三区小说| 亚洲一区二区美女| 亚洲人午夜精品天堂一二香蕉| 欧美xxxx老人做受| 日韩一区二区三区免费观看| 精品视频1区2区3区| 色综合网色综合| www.性欧美| 成人av手机在线观看| 国产精品系列在线播放| 久久精品国产免费看久久精品| 午夜av区久久| 一区二区久久久久| 亚洲一线二线三线久久久| 日韩理论片在线| 日韩毛片在线免费观看| 亚洲欧洲一区二区三区| 亚洲欧美中日韩| 国产精品看片你懂得| 国产亚洲精品福利| 欧美激情一区二区三区在线| 久久久久国产精品厨房| 国产女人aaa级久久久级| 日韩欧美国产午夜精品| 日韩欧美色综合网站| 欧美成人精精品一区二区频| 精品99一区二区三区| 久久久久99精品一区| 国产日韩欧美综合在线| 国产精品久久三| 亚洲精品网站在线观看| 午夜视频在线观看一区二区| 亚洲3atv精品一区二区三区| 午夜天堂影视香蕉久久| 看电视剧不卡顿的网站| 国产精品一区在线| 99精品国产一区二区三区不卡| 91小视频在线观看| 日本道在线观看一区二区| 在线不卡免费欧美| 精品国产乱码久久久久久蜜臀 | 成人精品小蝌蚪| 91丨porny丨国产入口| 欧美日韩国产另类不卡| 欧美一区二区在线免费播放 | 欧美人妖巨大在线| 91精品蜜臀在线一区尤物| 欧美成人一级视频| 国产精品素人视频| 亚洲妇熟xx妇色黄| 精品一区二区国语对白| 成人性生交大片免费| 欧美图片一区二区三区| www国产精品av| 亚洲男帅同性gay1069| 日韩福利视频网| 国产91精品精华液一区二区三区 | 精品国产髙清在线看国产毛片| 国产午夜精品一区二区三区四区| 18涩涩午夜精品.www| 午夜精品免费在线| 懂色av一区二区三区蜜臀| 欧美视频一区在线观看| 欧美国产综合一区二区| 亚洲成人资源在线| 成人av在线电影| 日韩精品一区二区在线观看| 国产精品大尺度| 麻豆精品视频在线观看免费| 一本一本久久a久久精品综合麻豆| 日韩欧美亚洲另类制服综合在线| 1024成人网色www| 国产在线精品一区二区夜色| 精品视频在线免费| 国产精品久久久久久久久免费丝袜 | 久久久久久久网| 一区二区久久久久| 国产精品99精品久久免费| 欧美日韩国产美| 亚洲欧洲制服丝袜| 成人一道本在线| 亚洲精品在线免费播放| 午夜免费欧美电影| 一本色道a无线码一区v| 国产亚洲一区二区三区四区| 国产视频亚洲色图| 国产一区二区三区久久久| 色av成人天堂桃色av| 国产亚洲va综合人人澡精品| 视频一区二区三区入口| 色综合久久久久久久久久久| 久久久久久久久久久久电影 | 99精品国产99久久久久久白柏| 欧美v日韩v国产v| 亚洲综合色网站| 99免费精品视频| 国产精品久久久久一区| 国产在线播精品第三| 日韩美女一区二区三区| 男女激情视频一区| 欧美特级限制片免费在线观看| 成人免费一区二区三区视频 | 亚洲一区二区三区四区在线| 高清在线成人网| 久久精品一区二区| 国内精品免费**视频| 精品国产乱码久久| 国产精品亚洲成人| 国产午夜精品理论片a级大结局| 精品影视av免费| 26uuu亚洲| 国产一区二区三区| 国产蜜臀97一区二区三区| 国产精品一区三区| 国产精品嫩草久久久久| 成人综合婷婷国产精品久久蜜臀| 久久精品在线观看| 成人听书哪个软件好| 亚洲欧洲在线观看av| 日本韩国一区二区| 亚洲国产成人porn| 777久久久精品| 国产原创一区二区| 日本欧美一区二区| 久久一二三国产| 不卡av在线免费观看| 一区二区不卡在线播放| 欧美精品v日韩精品v韩国精品v| 久久激情综合网| 国产欧美日韩一区二区三区在线观看| 成人一级黄色片| 亚洲第一电影网| 精品国产凹凸成av人网站| aaa欧美色吧激情视频| 波多野结衣在线aⅴ中文字幕不卡| 欧美国产成人精品| 91热门视频在线观看|