15#pragma message("Compiled as C++ for testing purpose.")
25#define VFD_POOL_TAG 'DFVx'
32#if (VER_PRODUCTBUILD < 2195)
33#error Cannot build a PnP version with the Windows NT DDK
39typedef enum _DEVICE_STATE
55#define VFD_DRIVER_EXTENSION_ID ((PVOID)DriverEntry)
311#ifdef VFD_MOUNT_MANAGER
319VfdMountMgrNotifyVolume(
323VfdMountMgrMountPoint(
335VfdMountDevDeviceName(
342VfdMountDevSuggestedLink(
349VfdMountDevLinkModified(
DRIVER_INITIALIZE DriverEntry
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
const DISK_GEOMETRY * Geometry
PDEVICE_OBJECT DeviceObject
PVFD_DRIVER_EXTENSION DriverExtension
UNICODE_STRING InterfaceName
PSECURITY_CLIENT_CONTEXT SecurityContext
UNICODE_STRING DeviceName
UNICODE_STRING RegistryPath
NTSTATUS VfdFormatTrack(IN PDEVICE_EXTENSION DeviceExtension, IN PFORMAT_PARAMETERS FormatParams)
struct _VFD_DRIVER_EXTENSION VFD_DRIVER_EXTENSION
struct _VFD_DRIVER_EXTENSION * PVFD_DRIVER_EXTENSION
VOID NTAPI VfdDeviceThread(IN PVOID ThreadContext)
struct _DEVICE_EXTENSION DEVICE_EXTENSION
VOID VfdDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS VfdFormatCheck(IN PDEVICE_EXTENSION DeviceExtension, IN PFORMAT_PARAMETERS FormatParams, IN ULONG InputLength, IN ULONG ControlCode)
NTSTATUS NTAPI VfdDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS VfdQueryImage(IN PDEVICE_EXTENSION DeviceExtension, OUT PVFD_IMAGE_INFO ImageInfo, IN ULONG BufferLength, OUT PULONG ReturnLength)
VOID NTAPI VfdUnloadDriver(IN PDRIVER_OBJECT DriverObject)
VOID VfdReadData(IN PDEVICE_EXTENSION DeviceExtension, IN OUT PIRP Irp, IN ULONG Length, IN PLARGE_INTEGER Offset)
VOID VfdFreeUnicode(IN OUT PUNICODE_STRING str)
NTSTATUS VfdLoadLink(IN PDEVICE_EXTENSION DeviceExtension, IN PWSTR RegistryPath)
NTSTATUS NTAPI VfdReadWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PWSTR VfdCopyUnicode(OUT PUNICODE_STRING dst, IN PUNICODE_STRING src)
VOID VfdCloseImage(IN PDEVICE_EXTENSION DeviceExtension)
NTSTATUS NTAPI VfdCreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS VfdCreateDevice(IN PDRIVER_OBJECT DriverObject, OUT PVOID Parameter)
const DISK_GEOMETRY geom_tbl[VFD_MEDIA_MAX]
NTSTATUS VfdStoreLink(IN PDEVICE_EXTENSION DeviceExtension)
NTSTATUS VfdSetLink(IN PDEVICE_EXTENSION DeviceExtension, IN CHAR DriveLetter)
NTSTATUS VfdOpenImage(IN PDEVICE_EXTENSION DeviceExtension, IN PVFD_IMAGE_INFO ImageInfo)
struct _DEVICE_EXTENSION * PDEVICE_EXTENSION
VOID VfdIoCtlThread(IN PDEVICE_EXTENSION DeviceExtension, IN PIRP Irp, IN ULONG ControlCode)
VOID VfdWriteData(IN PDEVICE_EXTENSION DeviceExtension, IN OUT PIRP Irp, IN ULONG Length, IN PLARGE_INTEGER Offset)
NTSTATUS VfdOpenCheck(IN PDEVICE_EXTENSION DeviceExtension, IN PVFD_IMAGE_INFO ImageInfo, IN ULONG InputLength)
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
_Inout_opt_ PVOID Parameter