12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package winapi
- //sys NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb *IOStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) = ntdll.NtCreateFile
- //sys NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) = ntdll.NtSetInformationFile
- //sys NtOpenDirectoryObject(handle *uintptr, accessMask uint32, oa *ObjectAttributes) (status uint32) = ntdll.NtOpenDirectoryObject
- //sys NtQueryDirectoryObject(handle uintptr, buffer *byte, length uint32, singleEntry bool, restartScan bool, context *uint32, returnLength *uint32)(status uint32) = ntdll.NtQueryDirectoryObject
- const (
- FileLinkInformationClass = 11
- FileDispositionInformationExClass = 64
- FILE_READ_ATTRIBUTES = 0x0080
- FILE_WRITE_ATTRIBUTES = 0x0100
- DELETE = 0x10000
- FILE_OPEN = 1
- FILE_CREATE = 2
- FILE_LIST_DIRECTORY = 0x00000001
- FILE_DIRECTORY_FILE = 0x00000001
- FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020
- FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000
- FILE_OPEN_REPARSE_POINT = 0x00200000
- FILE_DISPOSITION_DELETE = 0x00000001
- OBJ_DONT_REPARSE = 0x1000
- STATUS_MORE_ENTRIES = 0x105
- STATUS_NO_MORE_ENTRIES = 0x8000001a
- )
- type FileDispositionInformationEx struct {
- Flags uintptr
- }
- type IOStatusBlock struct {
- Status, Information uintptr
- }
- type ObjectAttributes struct {
- Length uintptr
- RootDirectory uintptr
- ObjectName uintptr
- Attributes uintptr
- SecurityDescriptor uintptr
- SecurityQoS uintptr
- }
- type ObjectDirectoryInformation struct {
- Name UnicodeString
- TypeName UnicodeString
- }
- type FileLinkInformation struct {
- ReplaceIfExists bool
- RootDirectory uintptr
- FileNameLength uint32
- FileName [1]uint16
- }
|