32 if (SystemTime ==
NULL)
63 if (SystemTime ==
NULL)
86#define ULONG_ROUND_UP(x) ROUND_UP((x), (sizeof(ULONG)))
205 DeviceExt->FatInfo.BytesPerCluster);
239 DeviceExt->FatInfo.BytesPerCluster);
313 DeviceExt->FatInfo.BytesPerCluster);
337 DeviceExt->FatInfo.BytesPerCluster);
420 DeviceExt->FatInfo.BytesPerCluster);
489 WCHAR ShortNameBuffer[13];
502 IrpContext->
Irp->MdlAddress ==
NULL &&
503 IrpContext->
Irp->UserBuffer !=
NULL)
542 if (pSearchPattern &&
597 DirContext.LongNameU.MaximumLength =
sizeof(LongNameBuffer);
598 DirContext.ShortNameU.Buffer = ShortNameBuffer;
599 DirContext.ShortNameU.MaximumLength =
sizeof(ShortNameBuffer);
712 Stack->Parameters.NotifyDirectory.CompletionFilter,
718 IrpContext->
Flags &= ~IRPCONTEXT_COMPLETE;
746 DPRINT(
"Unexpected minor function %x in VFAT driver\n",
struct _DOSTIME * PDOSTIME
struct _DOSDATE * PDOSDATE
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT DirContext
#define NT_SUCCESS(StatCode)
#define IRPCONTEXT_COMPLETE
#define IRPCONTEXT_CANWAIT
static NTSTATUS VfatGetFileBothInformation(PVFAT_DIRENTRY_CONTEXT DirContext, PDEVICE_EXTENSION DeviceExt, PFILE_BOTH_DIR_INFORMATION pInfo, ULONG BufferLength, PULONG Written, BOOLEAN First)
#define ULONG_ROUND_UP(x)
NTSTATUS VfatNotifyChangeDirectory(PVFAT_IRP_CONTEXT IrpContext)
BOOLEAN FsdDosDateTimeToSystemTime(PDEVICE_EXTENSION DeviceExt, USHORT DosDate, USHORT DosTime, PLARGE_INTEGER SystemTime)
NTSTATUS VfatDirectoryControl(PVFAT_IRP_CONTEXT IrpContext)
static NTSTATUS VfatGetFileFullDirectoryInformation(PVFAT_DIRENTRY_CONTEXT DirContext, PDEVICE_EXTENSION DeviceExt, PFILE_FULL_DIR_INFORMATION pInfo, ULONG BufferLength, PULONG Written, BOOLEAN First)
static NTSTATUS VfatGetFileNamesInformation(PVFAT_DIRENTRY_CONTEXT DirContext, PFILE_NAMES_INFORMATION pInfo, ULONG BufferLength, PULONG Written, BOOLEAN First)
BOOLEAN FsdSystemTimeToDosDateTime(PDEVICE_EXTENSION DeviceExt, PLARGE_INTEGER SystemTime, PUSHORT pDosDate, PUSHORT pDosTime)
static NTSTATUS DoQuery(PVFAT_IRP_CONTEXT IrpContext)
static NTSTATUS VfatGetFileDirectoryInformation(PVFAT_DIRENTRY_CONTEXT DirContext, PDEVICE_EXTENSION DeviceExt, PFILE_DIRECTORY_INFORMATION pInfo, ULONG BufferLength, PULONG Written, BOOLEAN First)
NTSTATUS VfatLockUserBuffer(IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation)
PVOID VfatGetUserBuffer(IN PIRP Irp, IN BOOLEAN Paging)
BOOLEAN RtlTimeToTimeFields(IN PLARGE_INTEGER Time, IN PTIME_FIELDS TimeFields)
BOOLEAN RtlTimeFieldsToTime(IN PTIME_FIELDS TimeFields, IN PLARGE_INTEGER Time)
#define ExLocalTimeToSystemTime(LocTime, SysTime)
UNICODE_STRING * PUNICODE_STRING
#define ExAllocatePoolWithTag(hernya, size, tag)
#define ExAcquireResourceExclusiveLite(res, wait)
#define ExSystemTimeToLocalTime(SysTime, LocTime)
#define ExAcquireResourceSharedLite(res, wait)
#define ROUND_UP(n, align)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
#define BooleanFlagOn(F, SF)
@ FileDirectoryInformation
@ FileFullDirectoryInformation
@ FileBothDirectoryInformation
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
struct _FILE_NAMES_INFORMATION * PFILE_NAMES_INFORMATION
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
static PTIME_FIELDS TimeFields
_In_ UINT _In_ UINT BytesToCopy
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
#define FILE_ATTRIBUTE_DIRECTORY
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
VOID NTAPI FsRtlNotifyFullChangeDirectory(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext, IN PSTRING FullDirectoryName, IN BOOLEAN WatchTree, IN BOOLEAN IgnoreBuffer, IN ULONG CompletionFilter, IN PIRP NotifyIrp, IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL, IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL)
#define STATUS_INVALID_INFO_CLASS
#define IRP_MN_QUERY_DIRECTORY
#define IRP_MN_NOTIFY_CHANGE_DIRECTORY
#define STATUS_BUFFER_OVERFLOW
PDEVICE_EXTENSION DeviceExt
UNICODE_STRING SearchPattern
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_NO_SUCH_FILE
#define STATUS_INSUFFICIENT_RESOURCES
#define STATUS_NO_MORE_FILES
struct _LARGE_INTEGER::@2299 u
struct _VFATFCB * PVFATFCB
#define LONGNAME_MAX_LENGTH
struct _VFATCCB * PVFATCCB
FORCEINLINE BOOLEAN vfatVolumeIsFatX(PDEVICE_EXTENSION DeviceExt)
FORCEINLINE NTSTATUS VfatMarkIrpContextForQueue(PVFAT_IRP_CONTEXT IrpContext)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
#define SL_INDEX_SPECIFIED
#define SL_RETURN_SINGLE_ENTRY