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

📄 udynlink.h

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

        $Id: UDynLink.h,v 1.7 2002/08/06 20:10:46 dallen Exp $
____________________________________________________________________________*/

// FormatEx calling parameters and associated structures and enums originally
// reverse-engineered by Mark Russinovich (http://www.sysinternals.com).

#ifndef Included_UDynLink_h	// [
#define Included_UDynLink_h

#include "pgpClassesConfig.h"
#include <tchar.h>

_PGP_BEGIN

namespace UDynLink
{
	// From Lmcons.h.

	enum
	{
		NERR_Success	= 0, 		// Success

		LM20_NNLEN		= 12, 		// LM 2.0 Net name length
		MAXCOMMENTSZ	= 256, 		// Multipurpose comment length
		SHPWLEN			= 8			// Share password length (bytes)
	};

	// FormatEx: output command structure

	struct FormatExTextOutput 
	{
		DWORD	lines;
		PCHAR	output;
	};

	// FormatEx: callback command types

	enum FormatExCallbackCommand 
	{
		kFMIFS_ProgressCmd			= 0,
		kFMIFS_DoneWithStructureCmd	= 1,
		kFMIFS_Unknown2				= 2,
		kFMIFS_Unknown3				= 3,
		kFMIFS_Unknown4				= 4,
		kFMIFS_Unknown5				= 5,
		kFMIFS_InsufficientRights	= 6,
		kFMIFS_Unknown7				= 7,
		kFMIFS_Unknown8				= 8,
		kFMIFS_Unknown9				= 9,
		kFMIFS_UnknownA				= 10,
		kFMIFS_Done					= 11,
		kFMIFS_UnknownC				= 12,
		kFMIFS_UnknownB				= 13,
		kFMIFS_Output				= 14,
		kFMIFS_StructureProgress	= 15
	};

	// FormatEx: media type defines

	enum FormatExMediaType
	{
		kFMIFS_FloppyType	= 0x8, 
		kFMIFS_HardDiskType	= 0xC
	};

	// FormatEx: FMIFS callback definition

	typedef BOOLEAN (__stdcall *PFMIFSCALLBACK)(
		FormatExCallbackCommand command, DWORD subAction, PVOID actionInfo);

	// From Svrapi.h

	struct share_info_50 
	{
		char			shi50_netname[LM20_NNLEN+1];
		unsigned char 	shi50_type; 
		unsigned short	shi50_flags;
		char FAR *		shi50_remark;
		char FAR *		shi50_path;
		char			shi50_rw_password[SHPWLEN+1];
		char			shi50_ro_password[SHPWLEN+1];

	};

	// From Lmshare.h

	typedef struct _SHARE_INFO_2 
	{
		LPWSTR  shi2_netname;
		DWORD   shi2_type;
		LPWSTR  shi2_remark;
		DWORD   shi2_permissions;
		DWORD   shi2_max_uses;
		DWORD   shi2_current_uses;
		LPWSTR  shi2_path;
		LPWSTR  shi2_passwd;

	} SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2;


	// Functions

	long	BroadcastSystemMessage(DWORD dwFlags, LPDWORD lpdwRecipients, 
		UINT uiMessage, WPARAM wParam, LPARAM lParam);

	BOOL	GetDiskFreeSpaceEx(LPCTSTR lpDirectoryName, 
		PULARGE_INTEGER lpFreeBytesAvailableToCaller, 
		PULARGE_INTEGER lpTotalNumberOfBytes, 
		PULARGE_INTEGER lpTotalNumberOfFreeBytes);

	DWORD	Win95_NetShareGetInfo(const char FAR *pszServer, 
		const char FAR *pszNetName, short sLevel, char FAR *pbBuffer, 
		unsigned short cbBuffer, unsigned short FAR * pcbTotalAvail);
	DWORD	Win95_WNetCloseEnum(HANDLE hEnum);
	DWORD	Win95_WNetEnumResource(HANDLE hEnum, LPDWORD lpcCount, 
		LPVOID lpBuffer, LPDWORD lpBufferSize);
	BOOL	Win95_WNetGetUniversalName(LPCSTR szDrive, LPTSTR szUniv);
	DWORD	Win95_WNetOpenEnum(DWORD dwScope, DWORD dwType, 
		DWORD dwUsage, LPNETRESOURCE lpNetResource, LPHANDLE lphEnum);
	
	VOID	WinNT_FormatEx(PWCHAR driveRoot, DWORD mediaFlag, PWCHAR format, 
		PWCHAR label, BOOL quickFormat, DWORD clusterSize, 
		PFMIFSCALLBACK callback);
	DWORD	WinNT_NetApiBufferFree(LPVOID Buffer);
	DWORD	WinNT_NetShareGetInfo(LPWSTR servername, LPWSTR netname, 
		DWORD level, LPBYTE *bufptr);
	DWORD	WinNT_WNetGetUniversalName(LPCTSTR lpLocalPath, 
		DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize);

	BOOL	WinNT_OpenProcessToken(HANDLE ProcessHandle, 
		DWORD DesiredAccess, PHANDLE TokenHandle);
	BOOL	WinNT_OpenThreadToken(HANDLE ThreadHandle, DWORD DesiredAccess, 
		BOOL OpenAsSelf, PHANDLE TokenHandle);

	BOOL	WinNT_GetTokenInformation(HANDLE TokenHandle, 
		TOKEN_INFORMATION_CLASS TokenInformationClass, 
		LPVOID TokenInformation, DWORD TokenInformationLength, 
		PDWORD ReturnLength);

	BOOL	WinNT_AllocateAndInitializeSid(
		PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, 
		BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, 
		DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, 
		DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, 
		PSID *pSid);
	BOOL	WinNT_EqualSid(PSID pSid1, PSID pSid2);
	PVOID	WinNT_FreeSid(PSID pSid);

	BOOL	Win2k_GetVolumeNameForVolumeMountPoint(
		LPCTSTR lpszVolumeMountPoint, LPTSTR lpszVolumeName, 
		DWORD cchBufferLength);
	BOOL	Win2k_GetVolumePathName(LPCTSTR lpszFileName, 
		LPTSTR lpszVolumePathName, DWORD cchBufferLength);
	BOOL	Win2k_SetVolumeMountPoint(LPCTSTR lpszVolumeMountPoint, 
		LPCTSTR lpszVolumeName);
	BOOL	Win2k_DeleteVolumeMountPoint(LPCTSTR lpszVolumeMountPoint);
}

_PGP_END

#endif	// ] Included_UDynLink_h

⌨️ 快捷键说明

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