📄 ntifs.inc
字号:
; begin_winnt
ES_SYSTEM_REQUIRED equ 00000001
ES_DISPLAY_REQUIRED equ 00000002
ES_USER_PRESENT equ 00000004
ES_CONTINUOUS equ 80000000h
EXECUTION_STATE typedef DWORD
;typedef enum _LATENCY_TIME {
LT_DONT_CARE equ 0
LT_LOWEST_LATENCY equ 1
;endif // !_PO_DDK_
; Define the various device type values. Note that values used by Microsoft
; Corporation are in the range 0-32767, and 32768-65535 are reserved for use
; by customers.
DEVICE_TYPE typedef DWORD
FILE_DEVICE_BEEP equ 00000001
FILE_DEVICE_CD_ROM equ 00000002
FILE_DEVICE_CD_ROM_FILE_SYSTEM equ 00000003
FILE_DEVICE_CONTROLLER equ 00000004
FILE_DEVICE_DATALINK equ 00000005
FILE_DEVICE_DFS equ 00000006
FILE_DEVICE_DISK equ 00000007
FILE_DEVICE_DISK_FILE_SYSTEM equ 00000008
FILE_DEVICE_FILE_SYSTEM equ 00000009
FILE_DEVICE_INPORT_PORT equ 0000000ah
FILE_DEVICE_KEYBOARD equ 0000000bh
FILE_DEVICE_MAILSLOT equ 0000000ch
FILE_DEVICE_MIDI_IN equ 0000000dh
FILE_DEVICE_MIDI_OUT equ 0000000eh
FILE_DEVICE_MOUSE equ 0000000fh
FILE_DEVICE_MULTI_UNC_PROVIDER equ 00000010h
FILE_DEVICE_NAMED_PIPE equ 00000011h
FILE_DEVICE_NETWORK equ 00000012h
FILE_DEVICE_NETWORK_BROWSER equ 00000013h
FILE_DEVICE_NETWORK_FILE_SYSTEM equ 00000014h
FILE_DEVICE_NULL equ 00000015h
FILE_DEVICE_PARALLEL_PORT equ 00000016h
FILE_DEVICE_PHYSICAL_NETCARD equ 00000017h
FILE_DEVICE_PRINTER equ 00000018h
FILE_DEVICE_SCANNER equ 00000019h
FILE_DEVICE_SERIAL_MOUSE_PORT equ 0000001ah
FILE_DEVICE_SERIAL_PORT equ 0000001bh
FILE_DEVICE_SCREEN equ 0000001ch
FILE_DEVICE_SOUND equ 0000001dh
FILE_DEVICE_STREAMS equ 0000001eh
FILE_DEVICE_TAPE equ 0000001fh
FILE_DEVICE_TAPE_FILE_SYSTEM equ 00000020h
FILE_DEVICE_TRANSPORT equ 00000021h
FILE_DEVICE_UNKNOWN equ 00000022h
FILE_DEVICE_VIDEO equ 00000023h
FILE_DEVICE_VIRTUAL_DISK equ 00000024h
FILE_DEVICE_WAVE_IN equ 00000025h
FILE_DEVICE_WAVE_OUT equ 00000026h
FILE_DEVICE_8042_PORT equ 00000027h
FILE_DEVICE_NETWORK_REDIRECTOR equ 00000028h
FILE_DEVICE_BATTERY equ 00000029h
FILE_DEVICE_BUS_EXTENDER equ 0000002ah
FILE_DEVICE_MODEM equ 0000002bh
FILE_DEVICE_VDM equ 0000002ch
FILE_DEVICE_MASS_STORAGE equ 0000002dh
FILE_DEVICE_SMB equ 0000002eh
FILE_DEVICE_KS equ 0000002fh
FILE_DEVICE_CHANGER equ 00000030h
FILE_DEVICE_SMARTCARD equ 00000031h
FILE_DEVICE_ACPI equ 00000032h
FILE_DEVICE_DVD equ 00000033h
FILE_DEVICE_FULLSCREEN_VIDEO equ 00000034h
FILE_DEVICE_DFS_FILE_SYSTEM equ 00000035h
FILE_DEVICE_DFS_VOLUME equ 00000036h
FILE_DEVICE_SERENUM equ 00000037h
FILE_DEVICE_TERMSRV equ 00000038h
FILE_DEVICE_KSEC equ 00000039h
; Macro definition for defining IOCTL and FSCTL function control codes. Note
; that function codes 0-2047 are reserved for Microsoft Corporation, and
; 2048-4095 are reserved for customers.
IFNDEF CTL_CODE
CTL_CODE MACRO DeviceType:=<0>, Function:=<0>, Method:=<0>, Access:=<0>
EXITM %(((DeviceType) SHL 16) OR ((Access) SHL 14) OR ((Function) SHL 2) OR (Method))
ENDM
ENDIF
; Macro to extract device type out of the device io control code
IFNDEF DEVICE_TYPE_FROM_CTL_CODE
DEVICE_TYPE_FROM_CTL_CODE MACRO ctrlCode:REQ
EXITM %(((ctrlCode) AND 0ffff0000h) SHR 16)
ENDM
ENDIF
; Define the method codes for how buffers are passed for I/O and FS controls
METHOD_BUFFERED equ 0
METHOD_IN_DIRECT equ 1
METHOD_OUT_DIRECT equ 2
METHOD_NEITHER equ 3
; +
; Define the access check value for any access
;
; The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
; ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
; constants *MUST* always be in sync.
;
; FILE_SPECIAL_ACCESS is checked by the NT I/O system the same as FILE_ANY_ACCESS.
; The file systems, however, may add additional access checks for I/O and FS controls
; that use this value.
; -
FILE_ANY_ACCESS equ 0
FILE_SPECIAL_ACCESS equ FILE_ANY_ACCESS
FILE_READ_ACCESS equ 1 ; file & pipe
FILE_WRITE_ACCESS equ 2 ; file & pipe
; begin_winnt
; Define access rights to files and directories
; The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in
; devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these
; constants *MUST* always be in sync.
; The values are redefined in devioctl.h because they must be available to
; both DOS and NT.
FILE_READ_DATA equ 0001 ; file & pipe
FILE_LIST_DIRECTORY equ 0001 ; directory
FILE_WRITE_DATA equ 0002 ; file & pipe
FILE_ADD_FILE equ 0002 ; directory
FILE_APPEND_DATA equ 0004 ; file
FILE_ADD_SUBDIRECTORY equ 0004 ; directory
FILE_CREATE_PIPE_INSTANCE equ 0004 ; named pipe
FILE_READ_EA equ 0008 ; file & directory
FILE_WRITE_EA equ 0010h ; file & directory
FILE_EXECUTE equ 0020h ; file
FILE_TRAVERSE equ 0020h ; directory
FILE_DELETE_CHILD equ 0040h ; directory
FILE_READ_ATTRIBUTES equ 0080h ; all
FILE_WRITE_ATTRIBUTES equ 0100h ; all
FILE_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 1FFh)
FILE_GENERIC_READ equ (STANDARD_RIGHTS_READ or FILE_READ_DATA or FILE_READ_ATTRIBUTES or FILE_READ_EA or SYNCHRONIZE)
FILE_GENERIC_WRITE equ (STANDARD_RIGHTS_WRITE or FILE_WRITE_DATA or FILE_WRITE_ATTRIBUTES or FILE_WRITE_EA or FILE_APPEND_DATA or SYNCHRONIZE)
FILE_GENERIC_EXECUTE equ (STANDARD_RIGHTS_EXECUTE or FILE_READ_ATTRIBUTES or FILE_EXECUTE or SYNCHRONIZE)
; end_winnt
; Define share access rights to files and directories
FILE_SHARE_READ equ 1 ; winnt
FILE_SHARE_WRITE equ 2 ; winnt
FILE_SHARE_DELETE equ 4 ; winnt
FILE_SHARE_VALID_FLAGS equ 7
; +
; Define the file attributes values
;
; Note: 0x00000008 is reserved for use for the old DOS VOLID (volume ID)
; and is therefore not considered valid in NT.
;
; Note: 0x00000010 is reserved for use for the old DOS SUBDIRECTORY flag
; and is therefore not considered valid in NT. This flag has
; been disassociated with file attributes since the other flags are
; protected with READ_ and WRITE_ATTRIBUTES access to the file.
;
; Note: Note also that the order of these flags is set to allow both the
; FAT and the Pinball File Systems to directly set the attributes
; flags in attributes words without having to pick each flag out
; individually. The order of these flags should not be changed!
; -
FILE_ATTRIBUTE_READONLY equ 00000001h ; winnt
FILE_ATTRIBUTE_HIDDEN equ 00000002h ; winnt
FILE_ATTRIBUTE_SYSTEM equ 00000004h ; winnt
;OLD DOS VOLID 0x00000008
FILE_ATTRIBUTE_DIRECTORY equ 00000010h ; winnt
FILE_ATTRIBUTE_ARCHIVE equ 00000020h ; winnt
FILE_ATTRIBUTE_DEVICE equ 00000040h ; winnt
FILE_ATTRIBUTE_NORMAL equ 00000080h ; winnt
FILE_ATTRIBUTE_TEMPORARY equ 00000100h ; winnt
FILE_ATTRIBUTE_SPARSE_FILE equ 00000200h ; winnt
FILE_ATTRIBUTE_REPARSE_POINT equ 00000400h ; winnt
FILE_ATTRIBUTE_COMPRESSED equ 00000800h ; winnt
FILE_ATTRIBUTE_OFFLINE equ 00001000h ; winnt
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED equ 00002000h ; winnt
FILE_ATTRIBUTE_ENCRYPTED equ 00004000h ; winnt
; This definition is old and will disappear shortly
FILE_ATTRIBUTE_CONTENT_INDEXED equ FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
FILE_ATTRIBUTE_VALID_FLAGS equ 00007fb7h
FILE_ATTRIBUTE_VALID_SET_FLAGS equ 000031a7h
; Define the create disposition values
FILE_SUPERSEDE equ 0
FILE_OPEN equ 1
FILE_CREATE equ 2
FILE_OPEN_IF equ 3
FILE_OVERWRITE equ 4
FILE_OVERWRITE_IF equ 5
FILE_MAXIMUM_DISPOSITION equ 5
; Define the create/open option flags
FILE_DIRECTORY_FILE equ 00000001h
FILE_WRITE_THROUGH equ 00000002h
FILE_SEQUENTIAL_ONLY equ 00000004h
FILE_NO_INTERMEDIATE_BUFFERING equ 00000008h
FILE_SYNCHRONOUS_IO_ALERT equ 00000010h
FILE_SYNCHRONOUS_IO_NONALERT equ 00000020h
FILE_NON_DIRECTORY_FILE equ 00000040h
FILE_CREATE_TREE_CONNECTION equ 00000080h
FILE_COMPLETE_IF_OPLOCKED equ 00000100h
FILE_NO_EA_KNOWLEDGE equ 00000200h
FILE_OPEN_FOR_RECOVERY equ 00000400h
FILE_RANDOM_ACCESS equ 00000800h
FILE_DELETE_ON_CLOSE equ 00001000h
FILE_OPEN_BY_FILE_ID equ 00002000h
FILE_OPEN_FOR_BACKUP_INTENT equ 00004000h
FILE_NO_COMPRESSION equ 00008000h
FILE_RESERVE_OPFILTER equ 00100000h
FILE_OPEN_REPARSE_POINT equ 00200000h
FILE_OPEN_NO_RECALL equ 00400000h
FILE_OPEN_FOR_FREE_SPACE_QUERY equ 00800000h
FILE_COPY_STRUCTURED_STORAGE equ 00000041h
FILE_STRUCTURED_STORAGE equ 00000441h
FILE_VALID_OPTION_FLAGS equ 00ffffffh
FILE_VALID_PIPE_OPTION_FLAGS equ 00000032h
FILE_VALID_MAILSLOT_OPTION_FLAGS equ 00000032h
FILE_VALID_SET_FLAGS equ 00000036h
; Define the I/O status information return values for NtCreateFile/NtOpenFile
FILE_SUPERSEDED equ 0
FILE_OPENED equ 1
FILE_CREATED equ 2
FILE_OVERWRITTEN equ 3
FILE_EXISTS equ 4
FILE_DOES_NOT_EXIST equ 5
; end_ntddk end_wdm end_nthal
; Define the I/O status information return values for requests for oplocks
; via NtFsControlFile
FILE_OPLOCK_BROKEN_TO_LEVEL_2 equ 00000007
FILE_OPLOCK_BROKEN_TO_NONE equ 00000008
; Define the I/O status information return values for NtCreateFile/NtOpenFile
; when the sharing access fails but a batch oplock break is in progress
FILE_OPBATCH_BREAK_UNDERWAY equ 00000009
; Define the filter flags for NtNotifyChangeDirectoryFile
FILE_NOTIFY_CHANGE_FILE_NAME equ 00000001 ; winnt
FILE_NOTIFY_CHANGE_DIR_NAME equ 00000002 ; winnt
FILE_NOTIFY_CHANGE_NAME equ 00000003
FILE_NOTIFY_CHANGE_ATTRIBUTES equ 00000004 ; winnt
FILE_NOTIFY_CHANGE_SIZE equ 00000008 ; winnt
FILE_NOTIFY_CHANGE_LAST_WRITE equ 00000010h ; winnt
FILE_NOTIFY_CHANGE_LAST_ACCESS equ 00000020h ; winnt
FILE_NOTIFY_CHANGE_CREATION equ 00000040h ; winnt
FILE_NOTIFY_CHANGE_EA equ 00000080h
FILE_NOTIFY_CHANGE_SECURITY equ 00000100h ; winnt
FILE_NOTIFY_CHANGE_STREAM_NAME equ 00000200h
FILE_NOTIFY_CHANGE_STREAM_SIZE equ 00000400h
FILE_NOTIFY_CHANGE_STREAM_WRITE equ 00000800h
FILE_NOTIFY_VALID_MASK equ 00000fffh
; Define the file action type codes for NtNotifyChangeDirectoryFile
FILE_ACTION_ADDED equ 00000001 ; winnt
FILE_ACTION_REMOVED equ 00000002 ; winnt
FILE_ACTION_MODIFIED equ 00000003 ; winnt
FILE_ACTION_RENAMED_OLD_NAME equ 00000004 ; winnt
FILE_ACTION_RENAMED_NEW_NAME equ 00000005 ; winnt
FILE_ACTION_ADDED_STREAM equ 00000006
FILE_ACTION_REMOVED_STREAM equ 00000007
FILE_ACTION_MODIFIED_STREAM equ 00000008
FILE_ACTION_REMOVED_BY_DELETE equ 00000009
FILE_ACTION_ID_NOT_TUNNELLED equ 0000000Ah
FILE_ACTION_TUNNELLED_ID_COLLISION equ 0000000Bh
; Define the NamedPipeType flags for NtCreateNamedPipeFile
FILE_PIPE_BYTE_STREAM_TYPE equ 00000000
FILE_PIPE_MESSAGE_TYPE equ 00000001
; Define the CompletionMode flags for NtCreateNamedPipeFile
FILE_PIPE_QUEUE_OPERATION equ 00000000
FILE_PIPE_COMPLETE_OPERATION equ 00000001
; Define the ReadMode flags for NtCreateNamedPipeFile
FILE_PIPE_BYTE_STREAM_MODE equ 00000000
FILE_PIPE_CONNECTED_STATE equ 00000003
; Define special ByteOffset parameters for read and write operations
FILE_WRITE_TO_END_OF_FILE equ 0ffffffffh
FILE_USE_FILE_POINTER_POSITION equ 0fffffffeh
; Define alignment requirement values
FILE_BYTE_ALIGNMENT equ 00000000
FILE_WORD_ALIGNMENT equ 00000001
FILE_LONG_ALIGNMENT equ 00000003
FILE_QUAD_ALIGNMENT equ 00000007
FILE_OCTA_ALIGNMENT equ 0000000fh
FILE_32_BYTE_ALIGNMENT equ 0000001fh
FILE_64_BYTE_ALIGNMENT equ 0000003fh
FILE_128_BYTE_ALIGNMENT equ 0000007fh
FILE_256_BYTE_ALIGNMENT equ 000000ffh
FILE_512_BYTE_ALIGNMENT equ 000001ffh
; Define the maximum length of a filename string
MAXIMUM_FILENAME_LENGTH equ 256
; end_ntddk end_wdm end_nthal
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -