This command is used to create or open a file or a directory, when EAs or an SD must be applied to the file.
| Request Parameter Block Encoding =================================== |
Description ================================ |
| ULONG Flags; | Creation flags (see below) |
| ULONG RootDirectoryFid; | Optional directory for relative open |
| ACCESS_MASK DesiredAccess; | Desired access |
| LARGE_INTEGER AllocationSize; | The initial allocation size in bytes, if file created |
| ULONG ExtFileAttributes; | The extended file attributes |
| ULONG ShareAccess; | The share access |
| ULONG CreateDisposition; | Action to take if file exists or not |
| ULONG CreateOptions; | Options for creating a new file |
| ULONG SecurityDescriptorLength; | Length of SD in bytes |
| ULONG EaLength; | Length of EA in bytes |
| ULONG NameLength; | Length of name in characters |
| ULONG ImpersonationLevel; | Security QOS information |
| UCHAR SecurityFlags; | Security QOS information |
| STRING Name[NameLength]; | The name of the file (not NULL terminated) |
| Data Block Encoding =================================== |
Description ================================ |
| UCHAR SecurityDescriptor[ SecurityDescriptorLength]; | |
| UCHAR ExtendedAttributes[EaLength]; |
| Creation Flag Name ========================== |
Value ====== |
Description ================================== |
| NT_CREATE_REQUEST_OPLOCK | 0x02 | Level I oplock requested |
| NT_CREATE_REQUEST_OPBATCH | 0x04 | Batch oplock requested |
| NT_CREATE_OPEN_TARGET_DIR | 0x08 | Target for open is a directory |
| Output Parameter Block Encoding ================================== |
Description ================================== |
| UCHAR OplockLevel; | The oplock level granted |
| UCHAR Reserved; | |
| USHORT Fid; | The file ID |
| ULONG CreateAction; | The action taken |
| ULONG EaErrorOffset; | Offset of the EA error |
| TIME CreationTime; | The time the file was created |
| TIME LastAccessTime; | The time the file was accessed |
| TIME LastWriteTime; | The time the file was last written |
| TIME ChangeTime; | The time the file was last changed |
| ULONG ExtFileAttributes; | The file attributes |
| LARGE_INTEGER AllocationSize; | The number of byes allocated |
| LARGE_INTEGER EndOfFile; | The end of file offset |
| USHORT FileType; | |
| USHORT DeviceState; | state of IPC device (e.g. pipe) |
| BOOLEAN Directory; | TRUE if this is a directory |
See the description of NT_CREATE_ANDX for the definition of the parameters.