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 34 #endif // (VER_PRODUCTBUILD < 2195) 39 typedef enum _DEVICE_STATE
55 #define VFD_DRIVER_EXTENSION_ID ((PVOID)DriverEntry) 311 #ifdef VFD_MOUNT_MANAGER 319 VfdMountMgrNotifyVolume(
323 VfdMountMgrMountPoint(
335 VfdMountDevDeviceName(
342 VfdMountDevSuggestedLink(
349 VfdMountDevLinkModified(
355 #endif // VFD_MOUNT_MANAGER 359 #endif // __cplusplus
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
PVFD_DRIVER_EXTENSION DriverExtension
VOID NTAPI VfdUnloadDriver(IN PDRIVER_OBJECT DriverObject)
NTSTATUS VfdLoadLink(IN PDEVICE_EXTENSION DeviceExtension, IN PWSTR RegistryPath)
NTSTATUS NTAPI VfdDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
VOID VfdFreeUnicode(IN OUT PUNICODE_STRING str)
NTSTATUS VfdQueryImage(IN PDEVICE_EXTENSION DeviceExtension, OUT PVFD_IMAGE_INFO ImageInfo, IN ULONG BufferLength, OUT PULONG ReturnLength)
VOID VfdReadData(IN PDEVICE_EXTENSION DeviceExtension, IN OUT PIRP Irp, IN ULONG Length, IN PLARGE_INTEGER Offset)
NTSTATUS VfdStoreLink(IN PDEVICE_EXTENSION DeviceExtension)
NTSTATUS VfdCreateDevice(IN PDRIVER_OBJECT DriverObject, OUT PVOID Parameter)
UNICODE_STRING DeviceName
const DISK_GEOMETRY * Geometry
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PWSTR VfdCopyUnicode(OUT PUNICODE_STRING dst, IN PUNICODE_STRING src)
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
VOID VfdIoCtlThread(IN PDEVICE_EXTENSION DeviceExtension, IN PIRP Irp, IN ULONG ControlCode)
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
NTSTATUS VfdFormatTrack(IN PDEVICE_EXTENSION DeviceExtension, IN PFORMAT_PARAMETERS FormatParams)
VOID NTAPI VfdDeviceThread(IN PVOID ThreadContext)
NTSTATUS VfdFormatCheck(IN PDEVICE_EXTENSION DeviceExtension, IN PFORMAT_PARAMETERS FormatParams, IN ULONG InputLength, IN ULONG ControlCode)
VOID VfdWriteData(IN PDEVICE_EXTENSION DeviceExtension, IN OUT PIRP Irp, IN ULONG Length, IN PLARGE_INTEGER Offset)
NTSTATUS VfdSetLink(IN PDEVICE_EXTENSION DeviceExtension, IN CHAR DriveLetter)
const DISK_GEOMETRY geom_tbl[VFD_MEDIA_MAX]
VOID VfdCloseImage(IN PDEVICE_EXTENSION DeviceExtension)
PSECURITY_CLIENT_CONTEXT SecurityContext
UNICODE_STRING InterfaceName
struct _DEVICE_EXTENSION DEVICE_EXTENSION
VOID VfdDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
_In_ ULONG _In_ ULONG Offset
NTSTATUS NTAPI VfdReadWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
PDEVICE_OBJECT DeviceObject
NTSTATUS VfdOpenImage(IN PDEVICE_EXTENSION DeviceExtension, IN PVFD_IMAGE_INFO ImageInfo)
UNICODE_STRING RegistryPath
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
struct _VFD_DRIVER_EXTENSION * PVFD_DRIVER_EXTENSION
NTSTATUS VfdOpenCheck(IN PDEVICE_EXTENSION DeviceExtension, IN PVFD_IMAGE_INFO ImageInfo, IN ULONG InputLength)
struct _DEVICE_EXTENSION * PDEVICE_EXTENSION
struct _VFD_DRIVER_EXTENSION VFD_DRIVER_EXTENSION
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
NTSTATUS NTAPI VfdCreateClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)