⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uconstantnamesdrvnt.cpp

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 CPP
字号:
/*____________________________________________________________________________
		Copyright (C) 2002 PGP Corporation
        All rights reserved.

        $Id: UConstantNamesDrvNT.cpp,v 1.4 2002/08/06 20:09:32 dallen Exp $
____________________________________________________________________________*/

#include "pgpClassesConfig.h"

#include <devioctl.h>
#include <ntdddisk.h>

#if	(_WIN32_WINNT >= 0x0500)
#include <mountdev.h>
#endif	// _WIN32_WINNT >= 0x5000

#include "UConstantNamesDrvNT.h"

_USING_PGP

// Added by wjb for Windows XP. 
// These are selected snippets from the XP DDK
#ifndef IOCTL_DISK_GET_LENGTH_INFO

#define FTTYPE  ((ULONG)'f')
#define IOCTL_VOLUME_BASE   ((ULONG) 'V')

#define IOCTL_DISK_GET_LENGTH_INFO          CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_GET_PARTITION_INFO_EX    CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_HOTPLUG_INFO		CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FT_BALANCED_READ_MODE				CTL_CODE(FTTYPE, 6, METHOD_NEITHER,  FILE_ANY_ACCESS)
#define IOCTL_VOLUME_GET_GPT_ATTRIBUTES		CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_VOLUME_ONLINE					CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MOUNTDEV_QUERY_STABLE_GUID	CTL_CODE(MOUNTDEVCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_GET_DEVICE_NUMBER		CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)

#endif // IOCTL_DISK_GET_LENGTH_INFO
// End wjb

// Class UConstantNamesDrvNT variables

const UConstantNamesDrvNT::ConstantName 
	UConstantNamesDrvNT::mIrpMajorFuncs[] =
{
	{IRP_MJ_CREATE,						"IRP_MJ_CREATE"}, 
	{IRP_MJ_CREATE_NAMED_PIPE,			"IRP_MJ_CREATE_NAMED_PIPE"}, 
	{IRP_MJ_CLOSE,						"IRP_MJ_CLOSE"}, 
	{IRP_MJ_READ,						"IRP_MJ_READ"}, 
	{IRP_MJ_WRITE,						"IRP_MJ_WRITE"}, 
	{IRP_MJ_QUERY_INFORMATION,			"IRP_MJ_QUERY_INFORMATION"}, 
	{IRP_MJ_SET_INFORMATION,			"IRP_MJ_SET_INFORMATION"}, 
	{IRP_MJ_QUERY_EA,					"IRP_MJ_QUERY_EA"}, 
	{IRP_MJ_SET_EA,						"IRP_MJ_SET_EA"}, 
	{IRP_MJ_FLUSH_BUFFERS,				"IRP_MJ_FLUSH_BUFFERS"}, 
	{IRP_MJ_QUERY_VOLUME_INFORMATION,	"IRP_MJ_QUERY_VOLUME_INFORMATION"}, 
	{IRP_MJ_SET_VOLUME_INFORMATION,		"IRP_MJ_SET_VOLUME_INFORMATION"}, 
	{IRP_MJ_DIRECTORY_CONTROL,			"IRP_MJ_DIRECTORY_CONTROL"}, 
	{IRP_MJ_FILE_SYSTEM_CONTROL,		"IRP_MJ_FILE_SYSTEM_CONTROL"}, 
	{IRP_MJ_DEVICE_CONTROL,				"IRP_MJ_DEVICE_CONTROL"}, 
	{IRP_MJ_INTERNAL_DEVICE_CONTROL,	"IRP_MJ_INTERNAL_DEVICE_CONTROL"}, 
	{IRP_MJ_SHUTDOWN,					"IRP_MJ_SHUTDOWN"}, 
	{IRP_MJ_LOCK_CONTROL,				"IRP_MJ_LOCK_CONTROL"}, 
	{IRP_MJ_CLEANUP,					"IRP_MJ_CLEANUP"}, 
	{IRP_MJ_CREATE_MAILSLOT,			"IRP_MJ_CREATE_MAILSLOT"}, 
	{IRP_MJ_QUERY_SECURITY,				"IRP_MJ_QUERY_SECURITY"}, 
	{IRP_MJ_SET_SECURITY,				"IRP_MJ_SET_SECURITY"}, 

#if	(_WIN32_WINNT >= 0x0500)
	{IRP_MJ_POWER,						"IRP_MJ_POWER"}, 
	{IRP_MJ_SYSTEM_CONTROL,				"IRP_MJ_SYSTEM_CONTROL"}, 
	{IRP_MJ_DEVICE_CHANGE,				"IRP_MJ_DEVICE_CHANGE"}, 
	{IRP_MJ_QUERY_QUOTA,				"IRP_MJ_QUERY_QUOTA"}, 
	{IRP_MJ_SET_QUOTA,					"IRP_MJ_SET_QUOTA"}, 
	{IRP_MJ_PNP,						"IRP_MJ_PNP"}
#endif	// _WIN32_WINNT >= 0x5000
};

const UConstantNamesDrvNT::ConstantName 
	UConstantNamesDrvNT::mIoctlCodes[] =
{
	{IOCTL_DISK_GET_DRIVE_GEOMETRY,		"IOCTL_DISK_GET_DRIVE_GEOMETRY"}, 
	{IOCTL_DISK_GET_PARTITION_INFO,		"IOCTL_DISK_GET_PARTITION_INFO"}, 
	{IOCTL_DISK_SET_PARTITION_INFO,		"IOCTL_DISK_SET_PARTITION_INFO"}, 
	{IOCTL_DISK_GET_DRIVE_LAYOUT,		"IOCTL_DISK_GET_DRIVE_LAYOUT"}, 
	{IOCTL_DISK_SET_DRIVE_LAYOUT,		"IOCTL_DISK_SET_DRIVE_LAYOUT"}, 
	{IOCTL_DISK_VERIFY,					"IOCTL_DISK_VERIFY"}, 
	{IOCTL_DISK_FORMAT_TRACKS,			"IOCTL_DISK_FORMAT_TRACKS"}, 
	{IOCTL_DISK_REASSIGN_BLOCKS,		"IOCTL_DISK_REASSIGN_BLOCKS"}, 
	{IOCTL_DISK_PERFORMANCE,			"IOCTL_DISK_PERFORMANCE"}, 
	{IOCTL_DISK_IS_WRITABLE,			"IOCTL_DISK_IS_WRITABLE"}, 
	{IOCTL_DISK_LOGGING,				"IOCTL_DISK_LOGGING"}, 
	{IOCTL_DISK_FORMAT_TRACKS_EX,		"IOCTL_DISK_FORMAT_TRACKS_EX"}, 
	{IOCTL_DISK_HISTOGRAM_STRUCTURE,	"IOCTL_DISK_HISTOGRAM_STRUCTURE"}, 
	{IOCTL_DISK_HISTOGRAM_DATA,			"IOCTL_DISK_HISTOGRAM_DATA"}, 
	{IOCTL_DISK_HISTOGRAM_RESET,		"IOCTL_DISK_HISTOGRAM_RESET"}, 
	{IOCTL_DISK_REQUEST_STRUCTURE,		"IOCTL_DISK_REQUEST_STRUCTURE"}, 
	{IOCTL_DISK_REQUEST_DATA,			"IOCTL_DISK_REQUEST_DATA"}, 
	{IOCTL_DISK_CONTROLLER_NUMBER,		"IOCTL_DISK_CONTROLLER_NUMBER"}, 

	{SMART_GET_VERSION,					"SMART_GET_VERSION"}, 
	{SMART_SEND_DRIVE_COMMAND,			"SMART_SEND_DRIVE_COMMAND"}, 
	{SMART_RCV_DRIVE_DATA,				"SMART_RCV_DRIVE_DATA"}, 

#if	(_WIN32_WINNT >= 0x0500)

// Added by wjb for Windows XP. 
	{IOCTL_DISK_GET_LENGTH_INFO,		"WINXP ****** IOCTL_DISK_GET_LENGTH_INFO (supported)"}, 
	{IOCTL_DISK_GET_PARTITION_INFO_EX,	"WINXP ****** IOCTL_DISK_GET_PARTITION_INFO_EX"}, 
	{IOCTL_STORAGE_GET_HOTPLUG_INFO,	"WINXP ****** IOCTL_STORAGE_GET_HOTPLUG_INFO"}, 
	{IOCTL_STORAGE_GET_DEVICE_NUMBER,	"WINXP ****** IOCTL_STORAGE_GET_DEVICE_NUMBER"}, 
	{FT_BALANCED_READ_MODE,				"WINXP ****** FT_BALANCED_READ_MODE"}, 
	{IOCTL_VOLUME_GET_GPT_ATTRIBUTES,	"WINXP ****** IOCTL_VOLUME_GET_GPT_ATTRIBUTES"}, 
	{IOCTL_VOLUME_ONLINE,				"WINXP ****** IOCTL_VOLUME_ONLINE"}, 
	{IOCTL_MOUNTDEV_QUERY_STABLE_GUID,	"WINXP ****** IOCTL_MOUNTDEV_QUERY_STABLE_GUID"}, 
// End wjb

	{IOCTL_DISK_UPDATE_DRIVE_SIZE,		"IOCTL_DISK_UPDATE_DRIVE_SIZE"}, 
	{IOCTL_DISK_GROW_PARTITION,			"IOCTL_DISK_GROW_PARTITION"}, 
	{IOCTL_DISK_GET_CACHE_INFORMATION,	"IOCTL_DISK_GET_CACHE_INFORMATION"}, 
	{IOCTL_DISK_SET_CACHE_INFORMATION,	"IOCTL_DISK_SET_CACHE_INFORMATION"}, 
	{IOCTL_DISK_DELETE_DRIVE_LAYOUT,	"IOCTL_DISK_INTERNAL_SET_VERIFY"}, 
	{IOCTL_DISK_FORMAT_DRIVE,			"IOCTL_DISK_FORMAT_DRIVE"}, 
	{IOCTL_DISK_SENSE_DEVICE,			"IOCTL_DISK_SENSE_DEVICE"}, 

	{IOCTL_DISK_INTERNAL_SET_VERIFY,	"IOCTL_DISK_INTERNAL_SET_VERIFY"}, 
	{IOCTL_DISK_INTERNAL_CLEAR_VERIFY,	"IOCTL_DISK_INTERNAL_CLEAR_VERIFY"}, 
	{IOCTL_DISK_INTERNAL_SET_NOTIFY,	"IOCTL_DISK_INTERNAL_SET_NOTIFY"}, 

#endif	// _WIN32_WINNT >= 0x5000

	{IOCTL_DISK_CHECK_VERIFY,			"IOCTL_DISK_CHECK_VERIFY"}, 
	{IOCTL_DISK_MEDIA_REMOVAL,			"IOCTL_DISK_MEDIA_REMOVAL"}, 
	{IOCTL_DISK_EJECT_MEDIA,			"IOCTL_DISK_EJECT_MEDIA"}, 
	{IOCTL_DISK_LOAD_MEDIA,				"IOCTL_DISK_LOAD_MEDIA"}, 
	{IOCTL_DISK_RESERVE,				"IOCTL_DISK_RESERVE"}, 
	{IOCTL_DISK_RELEASE,				"IOCTL_DISK_RELEASE"}, 
	{IOCTL_DISK_FIND_NEW_DEVICES,		"IOCTL_DISK_FIND_NEW_DEVICES"}, 
	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 

#if	(_WIN32_WINNT >= 0x0500)

	{IOCTL_MOUNTDEV_QUERY_DEVICE_NAME, "IOCTL_MOUNTDEV_QUERY_DEVICE_NAME"}, 
	{IOCTL_MOUNTDEV_QUERY_UNIQUE_ID,	"IOCTL_MOUNTDEV_QUERY_UNIQUE_ID"}, 

	{IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY, 
		"IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY"}, 

	{IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME, 
		"IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME"}, 

	{IOCTL_MOUNTDEV_LINK_CREATED,		"IOCTL_MOUNTDEV_LINK_CREATED"}, 
	{IOCTL_MOUNTDEV_LINK_DELETED,		"IOCTL_MOUNTDEV_LINK_DELETED"}, 

#endif	// _WIN32_WINNT >= 0x5000

	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 
	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 
	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 
	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 
	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 
	{IOCTL_DISK_GET_MEDIA_TYPES,		"IOCTL_DISK_GET_MEDIA_TYPES"}, 

	{IOCTL_STORAGE_CHECK_VERIFY,		"IOCTL_STORAGE_CHECK_VERIFY"}, 
	{IOCTL_STORAGE_MEDIA_REMOVAL,		"IOCTL_STORAGE_MEDIA_REMOVAL"}, 
	{IOCTL_STORAGE_EJECT_MEDIA,			"IOCTL_STORAGE_EJECT_MEDIA"}, 
	{IOCTL_STORAGE_LOAD_MEDIA,			"IOCTL_STORAGE_LOAD_MEDIA"}, 
	{IOCTL_STORAGE_RESERVE,				"IOCTL_STORAGE_RESERVE"}, 
	{IOCTL_STORAGE_RELEASE,				"IOCTL_STORAGE_RELEASE"}, 
	{IOCTL_STORAGE_FIND_NEW_DEVICES,	"IOCTL_STORAGE_FIND_NEW_DEVICES"}, 
	{IOCTL_STORAGE_GET_MEDIA_TYPES,		"IOCTL_STORAGE_GET_MEDIA_TYPES"}
};


// Class UConstantNamesDrvNT member functions

const char * 
UConstantNamesDrvNT::NameIrpMajorFunction(PGPUInt32 irpMajorFunc)
{
	return GetName(mIrpMajorFuncs, 
		sizeof(mIrpMajorFuncs) / sizeof(ConstantName), irpMajorFunc);
}

const char * 
UConstantNamesDrvNT::NameIoctlCode(PGPUInt32 ioctlCode)
{
	return GetName(mIoctlCodes, 
		sizeof(mIoctlCodes) / sizeof(ConstantName), ioctlCode);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -