summaryrefslogtreecommitdiff
path: root/cpan/Win32API-File/README
blob: 056bfb28d520409fa5a6b70ad0360ddf9e8572d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Win32API::File v0.1200 -- Low-level access to Win32 API calls for files.

New since v0.07:

	GetHandleInformation	SetHandleInformation
	HANDLE_FLAG_INHERIT	HANDLE_FLAG_PROTECT_FROM_CLOSE
	fileConstant		fileLastError

Low-level and full-power access to the following routines are provided:

	CloseHandle		CopyFile		CreateFile
	DefineDosDevice		DeleteFile		DeviceIoControl
	GetDriveType		GetFileType		GetHandleInformation
	GetLogicalDrives	GetLogicalDriveStrings	GetVolumeInformation
	IsRecognizedPartition	IsContainerPartition	MoveFile
	MoveFileEx		QueryDosDevice		ReadFile
	SetFilePointer		SetErrorMode		SetHandleInformation
	WriteFile

Plus the Unicode versions:

	CopyFileW		CreateFileW		DefineDosDeviceW
	DeleteFileW		GetDriveTypeW		GetLogicalDriveStringsW
	GetVolumeInformationW	MoveFileW		MoveFileExW
	QueryDosDeviceW

Full conversion between Win32-native file handles and Perl file handles is
also supported.  Access to the following C run-time library routines [or at
least the Perl run-time library wrappers for them] is provided:

	_get_osfhandle or win32_get_osfhandle	as FdGetOsFHandle		
	_open_osfhandle or win32_open_osfhandle	as OsFHandleOpenFd		

The following Perl-friendly wrappers and helper functions are also provided:

	OsFHandleOpen		GetOsFHandle		attrLetsToBits
	createFile		fileConstant		fileLastError
	getLogicalDrives

Plus the following constants:

	CREATE_ALWAYS		CREATE_NEW		FILE_BEGIN
	FILE_CURRENT		FILE_END		INVALID_HANDLE_VALUE
	OPEN_ALWAYS		OPEN_EXISTING		TRUNCATE_EXISTING

	DDD_EXACT_MATCH_ON_REMOVE			DDD_RAW_TARGET_PATH
	DDD_REMOVE_DEFINITION

	DRIVE_UNKNOWN		DRIVE_NO_ROOT_DIR	DRIVE_REMOVABLE
	DRIVE_FIXED		DRIVE_REMOTE		DRIVE_CDROM
	DRIVE_RAMDISK

	FILE_READ_DATA			FILE_LIST_DIRECTORY
	FILE_WRITE_DATA			FILE_ADD_FILE
	FILE_APPEND_DATA		FILE_ADD_SUBDIRECTORY
	FILE_CREATE_PIPE_INSTANCE	FILE_READ_EA
	FILE_WRITE_EA			FILE_EXECUTE
	FILE_TRAVERSE			FILE_DELETE_CHILD
	FILE_READ_ATTRIBUTES		FILE_WRITE_ATTRIBUTES
	FILE_ALL_ACCESS			FILE_GENERIC_READ
	FILE_GENERIC_WRITE		FILE_GENERIC_EXECUTE

	FILE_ATTRIBUTE_ARCHIVE		FILE_ATTRIBUTE_COMPRESSED
	FILE_ATTRIBUTE_HIDDEN		FILE_ATTRIBUTE_NORMAL
	FILE_ATTRIBUTE_OFFLINE		FILE_ATTRIBUTE_READONLY
	FILE_ATTRIBUTE_SYSTEM		FILE_ATTRIBUTE_TEMPORARY

	FILE_FLAG_BACKUP_SEMANTICS	FILE_FLAG_DELETE_ON_CLOSE
	FILE_FLAG_NO_BUFFERING		FILE_FLAG_OVERLAPPED
	FILE_FLAG_POSIX_SEMANTICS	FILE_FLAG_RANDOM_ACCESS
	FILE_FLAG_SEQUENTIAL_SCAN	FILE_FLAG_WRITE_THROUGH

	FILE_SHARE_DELETE	FILE_SHARE_READ		FILE_SHARE_WRITE

	FILE_TYPE_CHAR		FILE_TYPE_DISK		FILE_TYPE_PIPE
	FILE_TYPE_UNKNOWN

	FS_CASE_IS_PRESERVED		FS_CASE_SENSITIVE
	FS_UNICODE_STORED_ON_DISK	FS_PERSISTENT_ACLS 
	FS_FILE_COMPRESSION		FS_VOL_IS_COMPRESSED

	HANDLE_FLAG_INHERIT		HANDLE_FLAG_PROTECT_FROM_CLOSE

	IOCTL_STORAGE_CHECK_VERIFY	IOCTL_STORAGE_MEDIA_REMOVAL
	IOCTL_STORAGE_EJECT_MEDIA	IOCTL_STORAGE_LOAD_MEDIA
	IOCTL_STORAGE_RESERVE		IOCTL_STORAGE_RELEASE
	IOCTL_STORAGE_FIND_NEW_DEVICES	IOCTL_STORAGE_GET_MEDIA_TYPES

	IOCTL_DISK_GET_DRIVE_GEOMETRY	IOCTL_DISK_GET_PARTITION_INFO
	IOCTL_DISK_SET_PARTITION_INFO	IOCTL_DISK_GET_DRIVE_LAYOUT
	IOCTL_DISK_SET_DRIVE_LAYOUT	IOCTL_DISK_VERIFY
	IOCTL_DISK_FORMAT_TRACKS	IOCTL_DISK_REASSIGN_BLOCKS
	IOCTL_DISK_PERFORMANCE		IOCTL_DISK_IS_WRITABLE
	IOCTL_DISK_LOGGING		IOCTL_DISK_FORMAT_TRACKS_EX
	IOCTL_DISK_HISTOGRAM_STRUCTURE	IOCTL_DISK_HISTOGRAM_DATA
	IOCTL_DISK_HISTOGRAM_RESET	IOCTL_DISK_REQUEST_STRUCTURE
	IOCTL_DISK_REQUEST_DATA

	GENERIC_ALL			GENERIC_EXECUTE
	GENERIC_READ			GENERIC_WRITE

	Unknown			F5_1Pt2_512		F3_1Pt44_512
	F3_2Pt88_512		F3_20Pt8_512		F3_720_512
	F5_360_512		F5_320_512		F5_320_1024
	F5_180_512		F5_160_512		RemovableMedia
	FixedMedia		F3_120M_512

	MOVEFILE_COPY_ALLOWED		MOVEFILE_DELAY_UNTIL_REBOOT
	MOVEFILE_REPLACE_EXISTING	MOVEFILE_WRITE_THROUGH

	SECURITY_ANONYMOUS		SECURITY_CONTEXT_TRACKING
	SECURITY_DELEGATION		SECURITY_EFFECTIVE_ONLY
	SECURITY_IDENTIFICATION		SECURITY_IMPERSONATION
	SECURITY_SQOS_PRESENT

	SEM_FAILCRITICALERRORS		SEM_NOGPFAULTERRORBOX
	SEM_NOALIGNMENTFAULTEXCEPT	SEM_NOOPENFILEERRORBOX

	PARTITION_ENTRY_UNUSED		PARTITION_FAT_12
	PARTITION_XENIX_1		PARTITION_XENIX_2
	PARTITION_FAT_16		PARTITION_EXTENDED
	PARTITION_HUGE			PARTITION_IFS
	PARTITION_FAT32			PARTITION_FAT32_XINT13
	PARTITION_XINT13		PARTITION_XINT13_EXTENDED
	PARTITION_PREP			PARTITION_UNIX
	VALID_NTFT			PARTITION_NTFT

Comments, additions, and bug reports are welcomed.  Please address
technical questions that are not full bug reports to 

http://perlmonks.org/index.pl?node=Seekers%20of%20Perl%20Wisdom

Tye McQueen, tye@metronet.com, http://perlmonks.org/?node=tye.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.