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

📄 ntifs.inc

📁 这是asm驱动的开发包
💻 INC
📖 第 1 页 / 共 5 页
字号:

; 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 + -