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

📄 winioctl.inc

📁 这是asm驱动的开发包
💻 INC
📖 第 1 页 / 共 2 页
字号:
    F3_20Pt8_512   equ 4	; 3.5",  20.8MB, 512 bytes/sector
    F3_720_512     equ 5	; 3.5",  720KB,  512 bytes/sector
    F5_360_512     equ 6	; 5.25", 360KB,  512 bytes/sector
    F5_320_512     equ 7	; 5.25", 320KB,  512 bytes/sector
    F5_320_1024    equ 8	; 5.25", 320KB,  1024 bytes/sector
    F5_180_512     equ 9	; 5.25", 180KB,  512 bytes/sector
    F5_160_512     equ 10	; 5.25", 160KB,  512 bytes/sector
    RemovableMedia equ 11	; Removable media other than floppy
    FixedMedia     equ 12	; Fixed hard disk media
    F3_120M_512    equ 13	; 3.5", 120M Floppy
    F3_640_512     equ 14	; 3.5" ,  640KB,  512 bytes/sector
    F5_640_512     equ 15	; 5.25",  640KB,  512 bytes/sector
    F5_720_512     equ 16	; 5.25",  720KB,  512 bytes/sector
    F3_1Pt2_512    equ 17	; 3.5" ,  1.2Mb,  512 bytes/sector
    F3_1Pt23_1024  equ 18	; 3.5" ,  1.23Mb, 1024 bytes/sector
    F5_1Pt23_1024  equ 19	; 5.25",  1.23MB, 1024 bytes/sector
    F3_128Mb_512   equ 20	; 3.5" MO 128Mb   512 bytes/sector
    F3_230Mb_512   equ 21	; 3.5" MO 230Mb   512 bytes/sector
    F8_256_128     equ 22	; 8",     256KB,  128 bytes/sector

; +
; The following structure is returned on an IOCTL_DISK_GET_DRIVE_GEOMETRY
; request and an array of them is returned on an IOCTL_DISK_GET_MEDIA_TYPES
; request.
; -

IFNDEF DISK_GEOMETRY	; because of winioctl
DISK_GEOMETRY STRUCT
	Cylinders			LARGE_INTEGER <>
	MediaType			SDWORD	?	; enum MEDIA_TYPE
	TracksPerCylinder	DWORD	?
	SectorsPerTrack		DWORD	?
	BytesPerSector		DWORD	?
DISK_GEOMETRY ENDS
PDISK_GEOMETRY	typedef PTR DISK_GEOMETRY
ENDIF

; +
; The following structure is returned on an IOCTL_DISK_GET_PARTITION_INFO
; and an IOCTL_DISK_GET_DRIVE_LAYOUT request.  It is also used in a request
; to change the drive layout, IOCTL_DISK_SET_DRIVE_LAYOUT.
; -

IFNDEF PARTITION_INFORMATION	; because of winioctl
PARTITION_INFORMATION STRUCT
	StartingOffset			LARGE_INTEGER	<>
	PartitionLength			LARGE_INTEGER	<>
	HiddenSectors			DWORD			?
	PartitionNumber			DWORD			?
	PartitionType			BYTE			?
	BootIndicator			BOOLEAN			?
	RecognizedPartition		BOOLEAN			?
	RewritePartition		BOOLEAN			?
							DWORD			?	; padding
PARTITION_INFORMATION ENDS
PPARTITION_INFORMATION typedef PTR PARTITION_INFORMATION
ENDIF

; +
; The following structure is used to change the partition type of a
; specified disk partition using an IOCTL_DISK_SET_PARTITION_INFO
; request.
; -

SET_PARTITION_INFORMATION STRUCT
	PartitionType	BYTE	?
SET_PARTITION_INFORMATION ENDS
PSET_PARTITION_INFORMATION typedef PTR SET_PARTITION_INFORMATION

; +
; The following structures is returned on an IOCTL_DISK_GET_DRIVE_LAYOUT
; request and given as input to an IOCTL_DISK_SET_DRIVE_LAYOUT request.
; -

DRIVE_LAYOUT_INFORMATION STRUCT
	PartitionCount	DWORD	?
	Signature		DWORD	?
	PartitionEntry	PARTITION_INFORMATION 1 dup(<>)
DRIVE_LAYOUT_INFORMATION ENDS
PDRIVE_LAYOUT_INFORMATION typedef PTR DRIVE_LAYOUT_INFORMATION

; +
; The following structure is passed in on an IOCTL_DISK_VERIFY request.
; The offset and length parameters are both given in bytes.
; -

VERIFY_INFORMATION STRUCT
	StartingOffset	LARGE_INTEGER	<>
	_Length			DWORD			?	; original field name Length
					DWORD			?	; padding
VERIFY_INFORMATION ENDS
PVERIFY_INFORMATION typedef PTR VERIFY_INFORMATION

; bDriverError values

SMART_NO_ERROR          equ 0       ; No error
SMART_IDE_ERROR         equ 1       ; Error from IDE controller
SMART_INVALID_FLAG      equ 2       ; Invalid command flag
SMART_INVALID_COMMAND   equ 3       ; Invalid command byte
SMART_INVALID_BUFFER    equ 4       ; Bad buffer (null, invalid addr..)
SMART_INVALID_DRIVE     equ 5       ; Drive number not valid
SMART_INVALID_IOCTL     equ 6       ; Invalid IOCTL
SMART_ERROR_NO_MEM      equ 7       ; Could not lock user's buffer
SMART_INVALID_REGISTER  equ 8       ; Some IDE Register not valid
SMART_NOT_SUPPORTED     equ 9       ; Invalid cmd flag set
SMART_NO_IDE_DEVICE     equ 10      ; Cmd issued to device not present
                                        ; although drive number is valid
READ_ATTRIBUTE_BUFFER_SIZE  equ 512
IDENTIFY_BUFFER_SIZE        equ 512
READ_THRESHOLD_BUFFER_SIZE  equ 512

; Feature register defines for SMART "sub commands"

READ_ATTRIBUTES         equ 0D0h
READ_THRESHOLDS         equ 0D1h
ENABLE_DISABLE_AUTOSAVE equ 0D2h
SAVE_ATTRIBUTE_VALUES   equ 0D3h
EXECUTE_OFFLINE_DIAGS   equ 0D4h
ENABLE_SMART            equ 0D8h
DISABLE_SMART           equ 0D9h
RETURN_SMART_STATUS     equ 0DAh
;#endif /* _WIN32_WINNT >= 0x0400 */


IOCTL_CHANGER_BASE                equ FILE_DEVICE_CHANGER

IOCTL_CHANGER_GET_PARAMETERS         equ CTL_CODE(IOCTL_CHANGER_BASE, 0000, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_GET_STATUS             equ CTL_CODE(IOCTL_CHANGER_BASE, 0001, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_GET_PRODUCT_DATA       equ CTL_CODE(IOCTL_CHANGER_BASE, 0002, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_SET_ACCESS             equ CTL_CODE(IOCTL_CHANGER_BASE, 0004, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS)
IOCTL_CHANGER_GET_ELEMENT_STATUS     equ CTL_CODE(IOCTL_CHANGER_BASE, 0005, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS)
IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS  equ CTL_CODE(IOCTL_CHANGER_BASE, 0006, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_SET_POSITION           equ CTL_CODE(IOCTL_CHANGER_BASE, 0007, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_EXCHANGE_MEDIUM        equ CTL_CODE(IOCTL_CHANGER_BASE, 0008, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_MOVE_MEDIUM            equ CTL_CODE(IOCTL_CHANGER_BASE, 0009, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_REINITIALIZE_TRANSPORT equ CTL_CODE(IOCTL_CHANGER_BASE, 000Ah, METHOD_BUFFERED, FILE_READ_ACCESS)
IOCTL_CHANGER_QUERY_VOLUME_TAGS      equ CTL_CODE(IOCTL_CHANGER_BASE, 000Bh, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS)

; Possible ActionCode values. See Features0 of CHANGER_GET_PARAMETERS for compatibility with
; the current device.

SEARCH_ALL         equ 0 ; Translate - search all defined volume tags.
SEARCH_PRIMARY     equ 1 ; Translate - search only primary volume tags.
SEARCH_ALTERNATE   equ 2 ; Translate - search only alternate volume tags.
SEARCH_ALL_NO_SEQ  equ 4 ; Translate - search all defined volume tags but ignore sequence numbers.
SEARCH_PRI_NO_SEQ  equ 5 ; Translate - search only primary volume tags but ignore sequence numbers.
SEARCH_ALT_NO_SEQ  equ 6 ; Translate - search only alternate volume tags but ignore sequence numbers.

ASSERT_PRIMARY     equ 8 ; Assert - as the primary volume tag - if tag now undefined.
ASSERT_ALTERNATE   equ 9 ; Assert - as the alternate volume tag - if tag now undefined.

REPLACE_PRIMARY    equ Ah ; Replace - the primary volume tag - current tag ignored.
REPLACE_ALTERANTE  equ Bh ; Replace - the alternate volume tag - current tag ignored.

UNDEFINE_PRIMARY   equ Ch ; Undefine - the primary volume tag - current tag ignored.
UNDEFINE_ALTERNATE equ Dh ; Undefine - the alternate volume tag - current tag ignored.

IOCTL_SERIAL_LSRMST_INSERT      equ CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)

; The following values follow the escape designator in the
; data stream if the LSRMST_INSERT mode has been turned on.

SERIAL_LSRMST_ESCAPE		equ 00	; BYTE

; Following this value is the contents of the line status
; register, and then the character in the RX hardware when
; the line status register was encountered.

SERIAL_LSRMST_LSR_DATA		equ 01	; BYTE

; Following this value is the contents of the line status
; register.  No error character follows

SERIAL_LSRMST_LSR_NODATA	equ 02	; BYTE

; Following this value is the contents of the modem status
; register.

SERIAL_LSRMST_MST			equ 03	; BYTE

IFNDEF _FILESYSTEMFSCTL_
_FILESYSTEMFSCTL_ equ 1

; The following is a list of the native file system fsctls followed by
; additional network file system fsctls.  Some values have been
; decommissioned.

FSCTL_REQUEST_OPLOCK_LEVEL_1    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  0, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_REQUEST_OPLOCK_LEVEL_2    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  1, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_REQUEST_BATCH_OPLOCK      equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  2, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE  equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  3, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_OPBATCH_ACK_CLOSE_PENDING equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  4, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_OPLOCK_BREAK_NOTIFY       equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  5, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_LOCK_VOLUME               equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  6, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_UNLOCK_VOLUME             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  7, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_DISMOUNT_VOLUME           equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  8, METHOD_BUFFERED, FILE_ANY_ACCESS)
; decommissioned fsctl value                                              9
FSCTL_IS_VOLUME_MOUNTED         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_IS_PATHNAME_VALID         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) ; PATHNAME_BUFFER,
FSCTL_MARK_VOLUME_DIRTY         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
; decommissioned fsctl value                                             13
FSCTL_QUERY_RETRIEVAL_POINTERS  equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS)
FSCTL_GET_COMPRESSION           equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_SET_COMPRESSION           equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA + FILE_WRITE_DATA)
; decommissioned fsctl value                                             17
; decommissioned fsctl value                                             18
FSCTL_MARK_AS_SYSTEM_HIVE       equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS)
FSCTL_OPLOCK_BREAK_ACK_NO_2     equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_INVALIDATE_VOLUMES        equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_QUERY_FAT_BPB             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) ; , FSCTL_QUERY_FAT_BPB_BUFFER
FSCTL_REQUEST_FILTER_OPLOCK     equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_FILESYSTEM_GET_STATISTICS equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) ; , FILESYSTEM_STATISTICS
;#if(_WIN32_WINNT >= 0x0400)
FSCTL_GET_NTFS_VOLUME_DATA      equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) ; , NTFS_VOLUME_DATA_BUFFER
FSCTL_GET_NTFS_FILE_RECORD      equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) ; NTFS_FILE_RECORD_INPUT_BUFFER, NTFS_FILE_RECORD_OUTPUT_BUFFER
FSCTL_GET_VOLUME_BITMAP         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) ; STARTING_LCN_INPUT_BUFFER, VOLUME_BITMAP_BUFFER
FSCTL_GET_RETRIEVAL_POINTERS    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) ; STARTING_VCN_INPUT_BUFFER, RETRIEVAL_POINTERS_BUFFER
FSCTL_MOVE_FILE                 equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_ANY_ACCESS) ; MOVE_FILE_DATA,
FSCTL_IS_VOLUME_DIRTY           equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_GET_HFS_INFORMATION       equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
FSCTL_ALLOW_EXTENDED_DASD_IO    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER,  FILE_ANY_ACCESS)
;#endif /* _WIN32_WINNT >= 0x0400 */

;#if(_WIN32_WINNT >= 0x0500)
FSCTL_READ_PROPERTY_DATA        equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
FSCTL_WRITE_PROPERTY_DATA       equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
FSCTL_FIND_FILES_BY_SID         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
; decommissioned fsctl value                                             36
FSCTL_DUMP_PROPERTY_DATA        equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS)
FSCTL_SET_OBJECT_ID             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_WRITE_DATA) ; FILE_OBJECTID_BUFFER
FSCTL_GET_OBJECT_ID             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) ; , FILE_OBJECTID_BUFFER
FSCTL_DELETE_OBJECT_ID          equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_WRITE_DATA)
FSCTL_SET_REPARSE_POINT         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_WRITE_DATA) ; REPARSE_DATA_BUFFER,
FSCTL_GET_REPARSE_POINT         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) ; , REPARSE_DATA_BUFFER
FSCTL_DELETE_REPARSE_POINT      equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_WRITE_DATA) ; REPARSE_DATA_BUFFER,
FSCTL_ENUM_USN_DATA             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44,  METHOD_NEITHER, FILE_READ_DATA)  ; MFT_ENUM_DATA,
FSCTL_SECURITY_ID_CHECK         equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45,  METHOD_NEITHER, FILE_READ_DATA)  ; BULK_SECURITY_TEST_DATA,
FSCTL_READ_USN_JOURNAL          equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46,  METHOD_NEITHER, FILE_READ_DATA)  ; READ_USN_JOURNAL_DATA, USN
FSCTL_SET_OBJECT_ID_EXTENDED    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_WRITE_DATA)
FSCTL_CREATE_OR_GET_OBJECT_ID   equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) ; , FILE_OBJECTID_BUFFER
FSCTL_SET_SPARSE                equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_WRITE_DATA)
FSCTL_SET_ZERO_DATA             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) ; FILE_ZERO_DATA_INFORMATION,
FSCTL_QUERY_ALLOCATED_RANGES    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51,  METHOD_NEITHER, FILE_READ_DATA)  ; FILE_ALLOCATED_RANGE_BUFFER, FILE_ALLOCATED_RANGE_BUFFER
FSCTL_ENABLE_UPGRADE            equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
FSCTL_SET_ENCRYPTION            equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_BUFFERED, FILE_ANY_ACCESS) ; ENCRYPTION_BUFFER,
FSCTL_ENCRYPTION_FSCTL_IO       equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54,  METHOD_NEITHER, FILE_ANY_ACCESS)
FSCTL_WRITE_RAW_ENCRYPTED       equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55,  METHOD_NEITHER, FILE_ANY_ACCESS) ; ENCRYPTED_DATA_INFO,
FSCTL_READ_RAW_ENCRYPTED        equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56,  METHOD_NEITHER, FILE_ANY_ACCESS) ; REQUEST_RAW_ENCRYPTED_DATA, ENCRYPTED_DATA_INFO
FSCTL_CREATE_USN_JOURNAL        equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57,  METHOD_NEITHER, FILE_READ_DATA)  ; CREATE_USN_JOUNRAL_DATA,
FSCTL_READ_FILE_USN_DATA        equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58,  METHOD_NEITHER, FILE_READ_DATA)  ; Read the Usn Record for a file
FSCTL_WRITE_USN_CLOSE_RECORD    equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59,  METHOD_NEITHER, FILE_READ_DATA)  ; Generate Close Usn Record
FSCTL_EXTEND_VOLUME             equ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
;#endif /* _WIN32_WINNT >= 0x0500 */

ENDIF ; _FILESYSTEMFSCTL_

ENDIF ; _WINIOCTL_

⌨️ 快捷键说明

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