42 *
Flags = TESTENTRY_NO_EXCLUSIVE_DEVICE |
43 TESTENTRY_BUFFERED_IO_DEVICE |
44 TESTENTRY_NO_READONLY_DEVICE;
75 DPRINT(
"IRP %x/%x\n", IoStack->MajorFunction, IoStack->MinorFunction);
80 Irp->IoStatus.Information = 0;
87 if (IoStack->FileObject->FileName.Length >= 2 *
sizeof(
WCHAR))
92 if (IoStack->FileObject->FileName.Length >= 2 *
sizeof(
WCHAR) &&
93 IoStack->FileObject->FileName.Buffer[1] ==
'M')
109 else if (IoStack->FileObject->FileName.Length >= 2 *
sizeof(
WCHAR) &&
110 IoStack->FileObject->FileName.Buffer[1] ==
'S')
138 FsRtlSetupAdvancedHeader(&
Fcb->
Header, &
Fcb->HeaderMutex);
141 Fcb->
Header.ValidDataLength.QuadPart = 0;
142 IoStack->FileObject->FsContext =
Fcb;
156 IoStack->FileObject->FsContext =
NULL;
static UNICODE_STRING DocumentsAndSettings
struct _TEST_FCB * PTEST_FCB
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
return STATUS_NOT_SUPPORTED
VOID TestUnload(_In_ PDRIVER_OBJECT DriverObject)
#define OBJ_CASE_INSENSITIVE
FSRTL_ADVANCED_FCB_HEADER Header
IN BOOLEAN OUT PSTR Buffer
struct _REPARSE_DATA_BUFFER::@310::@312 SymbolicLinkReparseBuffer
#define UNREFERENCED_PARAMETER(P)
#define FILE_DIRECTORY_FILE
#define IOCTL_DISABLE_SYMLINK
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
#define SL_STOP_ON_SYMLINK
static PFILE_OBJECT TestFileObject
#define IOCTL_CALL_CREATE
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
#define OBJ_KERNEL_HANDLE
#define STATUS_STOPPED_ON_SYMLINK
#define IO_STOP_ON_SYMLINK
#define IO_REPARSE_TAG_MOUNT_POINT
_In_ PDEVICE_OBJECT DeviceObject
#define FILE_SYNCHRONOUS_IO_ALERT
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
#define IO_NO_PARAMETER_CHECKING
static KMT_MESSAGE_HANDLER TestMessageHandler
static UNICODE_STRING FileObjectFileName
#define IoCompleteRequest
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
NTSTATUS KmtRegisterIrpHandler(IN UCHAR MajorFunction, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN PKMT_IRP_HANDLER IrpHandler)
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ ULONG Flags
NTSTATUS KmtRegisterMessageHandler(IN ULONG ControlCode OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN PKMT_MESSAGE_HANDLER MessageHandler)
#define NT_SUCCESS(StatCode)
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
#define ObDereferenceObject
SECTION_OBJECT_POINTERS SectionObjectPointers
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
#define FILE_ATTRIBUTE_NORMAL
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
FSRTL_ADVANCED_FCB_HEADER Header
static KMT_IRP_HANDLER TestIrpHandler
POBJECT_TYPE IoFileObjectType
#define InterlockedExchange
PRTL_UNICODE_STRING_BUFFER Path
#define KeInitializeEvent(pEvt, foo, foo2)
BOOLEAN NTAPI CcUninitializeCacheMap(IN PFILE_OBJECT FileObject, IN OPTIONAL PLARGE_INTEGER TruncateSize, IN OPTIONAL PCACHE_UNINITIALIZE_EVENT UninitializeEvent)
struct _REPARSE_DATA_BUFFER::@310::@313 MountPointReparseBuffer
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
static OUT PIO_STATUS_BLOCK IoStatusBlock
NTSTATUS NTAPI IoCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength, IN CREATE_FILE_TYPE CreateFileType, IN PVOID ExtraCreateParameters OPTIONAL, IN ULONG Options)
static PDEVICE_OBJECT TestDeviceObject
NTSTATUS TestEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PCUNICODE_STRING RegistryPath, _Out_ PCWSTR *DeviceName, _Inout_ INT *Flags)
#define RtlZeroMemory(Destination, Length)
#define InitializeObjectAttributes(p, n, a, r, s)
#define RtlCopyMemory(Destination, Source, Length)
static NTSTATUS TestIoCreateFile(IN PUNICODE_STRING Path)
#define ok_eq_hex(value, expected)
#define ExFreePoolWithTag(_P, _T)
#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE
#define FILE_OPEN_REPARSE_POINT
#define IO_REPARSE_TAG_SYMLINK
SECTION_OBJECT_POINTERS SectionObjectPointers
static volatile long gNoLinks
struct _REPARSE_DATA_BUFFER * PREPARSE_DATA_BUFFER
struct _TEST_FCB TEST_FCB
#define RTL_CONSTANT_STRING(s)
PULONG MinorVersion OPTIONAL