people/sha0/winvblock.git
9 years ago[filedisk/grub4dos] Rename check_disk_match()...
Shao Miller [Sat, 22 Jan 2011 12:49:41 +0000 (07:49 -0500)]
[filedisk/grub4dos] Rename check_disk_match()...

...to WvFilediskG4dCheckDiskMatch_().

9 years ago[filedisk/grub4dos] Pend WvFilediskG4dIo_
Shao Miller [Sat, 22 Jan 2011 12:47:51 +0000 (07:47 -0500)]
[filedisk/grub4dos] Pend WvFilediskG4dIo_

If we attempt to perform ZwReadFile() in a thread
context where there is already a read happening
(such as when Windows' SETUPDD is attempting to
mount our disk), then we will deadlock.  So we
pend the IRP and execute it within our filedisk's
thread's context.  This probably has to do with IRQL.

9 years ago[filedisk/grub4dos] Return STATUS_DEVICE_NOT_READY...
Shao Miller [Sat, 22 Jan 2011 12:38:45 +0000 (07:38 -0500)]
[filedisk/grub4dos] Return STATUS_DEVICE_NOT_READY...

...instead of STATUS_NO_MEDIA_IN_DEVICE when we haven't
yet established a backing disk for a sector-mapped disk.

9 years ago[filedisk/grub4dos] Fix uninitialized array
Shao Miller [Sat, 22 Jan 2011 11:18:50 +0000 (06:18 -0500)]
[filedisk/grub4dos] Fix uninitialized array

The G4D sector-mapped-disk-to-filename association
array was not initialized to all-zero, but code tested
for a non-NULL file-path pointer.  D'oh.

9 years ago[project] Include binaries in git for dev releases
Shao Miller [Thu, 20 Jan 2011 14:06:59 +0000 (09:06 -0500)]
[project] Include binaries in git for dev releases

I might as well offer the checked development builds at
the end of each cycle where I push to the Etherboot
project's hosted WinVBlock repository (courtesy of that
project's leader, Marty Connor) as well as GitHub's
hosted WinVBlock repository (courtesy of... GitHub).

Then the fine booting enthusiasts at reboot.pro
(formerly Boot-Land) can download recent work from a
few more sources than just that forum's downloads.

9 years ago[filedisk] Add impersonation support for network files
Shao Miller [Thu, 20 Jan 2011 04:35:02 +0000 (23:35 -0500)]
[filedisk] Add impersonation support for network files

It should now be possible to attach a file-backed disk to
a file on a network share, assuming the share has been
mapped to a drive letter and assuming permissions allow.

A to-do item would be to allow attaching read-only media
(such as optical discs) without trying for write
permissions on the file.

As a bonus, this commit means that user "User" can't
open files belonging to user "Administrator".  That is
a big security win and something that was pretty bad
before now.

Some re-ordering of functions and function comments for
other filedisk functions were added, too.

9 years ago[libthread] WvlThreadStart() makes WvlThreadStateStarted
Shao Miller [Wed, 19 Jan 2011 04:01:48 +0000 (23:01 -0500)]
[libthread] WvlThreadStart() makes WvlThreadStateStarted

The function probably shouldn't return to the caller until
the started thread is actually ready for work.  It's no
longer a responsibility of a thread routine to set its
state to WvlThreadStateStarted; WvlThreadStart() will now
take care of that.

9 years ago[filedisk] Make all filedisks threaded
Shao Miller [Tue, 18 Jan 2011 13:24:06 +0000 (08:24 -0500)]
[filedisk] Make all filedisks threaded

We don't have any control over how long it will take
for file I/O to complete (network share, for example),
so we will pend all SCSI reads/writes and each filedisk's
thread will complete them.

Hot-swapping a sector-mapped disk to a file-backed disk
for any number of disks is done from a single, special
thread.  Since GRUB4DOS is the only case where such info
is passed, GRUB4DOS is the only caller for the function
which starts up this special thread.  It's really quite
messy right now and needs a major clean-up.

The reason why the hot-swapping thread is its own thread
is to avoid the dead-lock where NTFS is trying to mount
a partition, then if the same thread tries to open a
file (to test for an appropriate file-backing) on an
NTFS volume, NTFS is already "busy".

The unfortunate thing is that the hot-swapping thread
doesn't guarantee a file lock as early as possible.
This can be improved, some day.

9 years ago[filedisk,ramdisk] Set the ParentBus earlier
Shao Miller [Mon, 17 Jan 2011 00:02:54 +0000 (19:02 -0500)]
[filedisk,ramdisk] Set the ParentBus earlier

WvBusAddDev() calls WvlBusAddNode(), which will trigger
a device relations query on the bus before WvBusAddDev()
returns.  We must set the WVL_S_DISK_T::ParentBus
member a bit earlier so that when the disk is queried
for its capabilties, it is able to query the parent bus.

9 years ago[util] Spoof types for #include to succeed
Shao Miller [Sun, 16 Jan 2011 22:25:38 +0000 (17:25 -0500)]
[util] Spoof types for #include to succeed

This is a temporary hack and needs to be fixed.

9 years ago[build] Build httpdisk.exe with makeutils.bat
Shao Miller [Sun, 16 Jan 2011 22:20:14 +0000 (17:20 -0500)]
[build] Build httpdisk.exe with makeutils.bat

9 years ago[httpdisk_util] Work with bus device
Shao Miller [Sun, 16 Jan 2011 22:10:07 +0000 (17:10 -0500)]
[httpdisk_util] Work with bus device

Instead of with a particular HTTPDisk.

9 years ago[httpdisk] Handle IOCTL_HTTP_DISK_DISCONNECT
Shao Miller [Sun, 16 Jan 2011 17:42:26 +0000 (12:42 -0500)]
[httpdisk] Handle IOCTL_HTTP_DISK_DISCONNECT

For disconnecting HTTPDisk PDOs from the bus.

Also added a check during disk thread termination to
disconnect the HTTPDisk.

Also moved HttpDiskCreateDevice() out of INIT-section
code, so it would be available at all times.

9 years ago[httpdisk/bus] Handle IOCTL_HTTP_DISK_CONNECT
Shao Miller [Sat, 15 Jan 2011 05:57:30 +0000 (00:57 -0500)]
[httpdisk/bus] Handle IOCTL_HTTP_DISK_CONNECT

For creation of new HTTPDisks.  It works!

9 years ago[httpdisk] Change 'return' to 'break' in HttpDiskThread()
Shao Miller [Sat, 15 Jan 2011 05:12:33 +0000 (00:12 -0500)]
[httpdisk] Change 'return' to 'break' in HttpDiskThread()

Oops.  We don't wish to terminate the thread after a SCSI IRP.

9 years ago[httpdisk] Use WinVBlock disk library for SCSI IRPs
Shao Miller [Mon, 10 Jan 2011 08:33:00 +0000 (03:33 -0500)]
[httpdisk] Use WinVBlock disk library for SCSI IRPs

And tie the I/O routine to the new HttpdiskIo_().

9 years ago[httpdisk] Use WinVBlock disk library for PnP IRPs
Shao Miller [Mon, 10 Jan 2011 07:07:39 +0000 (02:07 -0500)]
[httpdisk] Use WinVBlock disk library for PnP IRPs

9 years ago[disk] Rename WV_S_DISK_OPS to WVL_S_DISK_OPS
Shao Miller [Mon, 10 Jan 2011 06:39:30 +0000 (01:39 -0500)]
[disk] Rename WV_S_DISK_OPS to WVL_S_DISK_OPS

9 years ago[disk] Rename WV_F_DISK_CLOSE to WVL_F_DISK_CLOSE
Shao Miller [Mon, 10 Jan 2011 06:38:01 +0000 (01:38 -0500)]
[disk] Rename WV_F_DISK_CLOSE to WVL_F_DISK_CLOSE

9 years ago[disk] Rename WV_F_DISK_MAX_XFER_LEN...
Shao Miller [Mon, 10 Jan 2011 06:36:33 +0000 (01:36 -0500)]
[disk] Rename WV_F_DISK_MAX_XFER_LEN...

to WVL_F_DISK_MAX_XFER_LEN.

9 years ago[disk] Rename WV_S_DISK_T to WVL_S_DISK_T
Shao Miller [Mon, 10 Jan 2011 06:32:14 +0000 (01:32 -0500)]
[disk] Rename WV_S_DISK_T to WVL_S_DISK_T

9 years ago[disk,aoe,filedisk,ramdisk] Remove Dev member
Shao Miller [Mon, 10 Jan 2011 06:26:06 +0000 (01:26 -0500)]
[disk,aoe,filedisk,ramdisk] Remove Dev member

At last!  The disk library should no longer depend on
anything else in the WinVBlock driver!

9 years ago[disk,libdisk] Split more non-library out of library
Shao Miller [Mon, 10 Jan 2011 06:11:48 +0000 (01:11 -0500)]
[disk,libdisk] Split more non-library out of library

Although perhaps a bit confusing, driver.h declares
non-library code from both bus.c and disk.c, while
bus.h and disk.h declare libbus and libdisk code.

9 years ago[driver,disk] Move some disk code into disk.c
Shao Miller [Mon, 10 Jan 2011 02:57:23 +0000 (21:57 -0500)]
[driver,disk] Move some disk code into disk.c

A new source file for WinVBlock driver disk code.

9 years ago[disk->libdisk] Continue librarization process
Shao Miller [Mon, 10 Jan 2011 02:48:30 +0000 (21:48 -0500)]
[disk->libdisk] Continue librarization process

9 years ago[filedisk,ramdisk] Remove unused *__get_ptr() macros
Shao Miller [Mon, 10 Jan 2011 02:39:55 +0000 (21:39 -0500)]
[filedisk,ramdisk] Remove unused *__get_ptr() macros

9 years ago[disk/pnp] Independence from WV_S_DISK_T
Shao Miller [Mon, 10 Jan 2011 02:34:05 +0000 (21:34 -0500)]
[disk/pnp] Independence from WV_S_DISK_T

At long last.  This involved tracking state in the disk
structure with WV_E_DISK_STATE, introducing WvDiskPnp()
for the IRP major function handling tables, and renaming
disk_pnp__dispatch() to WvlDiskPnp().

Oh, and an item on a to-do list was simultaneously
addressed: Don't do anything special on IRP_MJ_PNP:
IRP_MN_REMOVE_DEVICE except note the state.  PDOs should
not disappear unless detached by the user-land utility
or possibly other internal functions, but we should just
leave them intact from Device Manager / SetupAPI functions.

9 years ago[disk] Use new PnpQueryDevText member of WV_S_DISK_T
Shao Miller [Mon, 10 Jan 2011 01:59:49 +0000 (20:59 -0500)]
[disk] Use new PnpQueryDevText member of WV_S_DISK_T

To satisfy IRP_MJ_PNP:IRP_MN_QUERY_DEVICE_TEXT.

9 years ago[disk] Use new PnpQueryId member of WV_S_DISK_T
Shao Miller [Mon, 10 Jan 2011 00:17:06 +0000 (19:17 -0500)]
[disk] Use new PnpQueryId member of WV_S_DISK_T

To satisfy IRP_MJ_PNP:IRP_MN_QUERY_ID.

This breaks the IRP_MN_QUERY_DEVICE_TEXT handling in
disk_pnp__query_dev_text_() (for now).

9 years ago[disk] New ParentBus member
Shao Miller [Sun, 9 Jan 2011 22:53:22 +0000 (17:53 -0500)]
[disk] New ParentBus member

Which allows for disk_pnp__query_capabilities_() to
become independent of WV_S_DEV_T and so it is renamed
to WvlDiskPnpQueryCapabilities_().

9 years ago[aoe] Use new Pdo member in AOE_S_DISK
Shao Miller [Sun, 9 Jan 2011 22:37:53 +0000 (17:37 -0500)]
[aoe] Use new Pdo member in AOE_S_DISK

Instead of the Self member of WV_S_DEV_T.

9 years ago[aoe] Use new Boot member of AOE_S_DISK
Shao Miller [Sun, 9 Jan 2011 22:13:04 +0000 (17:13 -0500)]
[aoe] Use new Boot member of AOE_S_DISK

Instead of the one in WV_S_DEV_T.

9 years ago[aoe] Use new BusNode member of AOE_S_DISK
Shao Miller [Sun, 9 Jan 2011 22:10:20 +0000 (17:10 -0500)]
[aoe] Use new BusNode member of AOE_S_DISK

Instead of the one in WV_S_DEV_T.

9 years ago[aoe] AoeBusAddDev() now takes an AOE_SP_DISK
Shao Miller [Sun, 9 Jan 2011 22:02:14 +0000 (17:02 -0500)]
[aoe] AoeBusAddDev() now takes an AOE_SP_DISK

9 years ago[aoe] Move AOE_S_DISK_ into header
Shao Miller [Sun, 9 Jan 2011 21:50:40 +0000 (16:50 -0500)]
[aoe] Move AOE_S_DISK_ into header

And remove the underscore suffix from its type name.

9 years ago[aoe] Move AOE_E_SEARCH_STATE_ into header
Shao Miller [Sun, 9 Jan 2011 21:42:29 +0000 (16:42 -0500)]
[aoe] Move AOE_E_SEARCH_STATE_ into header

And remove the underscore suffix from its type name
and its enumeration values.

9 years ago[aoe] Remove unused 'prev_free' member
Shao Miller [Sun, 9 Jan 2011 21:37:59 +0000 (16:37 -0500)]
[aoe] Remove unused 'prev_free' member

9 years ago[disk,aoe,ramdisk,filedisk] Remove unused 'tracking' member
Shao Miller [Sun, 9 Jan 2011 21:27:32 +0000 (16:27 -0500)]
[disk,aoe,ramdisk,filedisk] Remove unused 'tracking' member

9 years ago[disk,aoe] Move SpinLock and SearchEvent member into AoE
Shao Miller [Sun, 9 Jan 2011 21:25:17 +0000 (16:25 -0500)]
[disk,aoe] Move SpinLock and SearchEvent member into AoE

At long last.

9 years ago[disk,aoe,filedisk,ramdisk] Move Dev back out of WV_S_DISK_T
Shao Miller [Sun, 9 Jan 2011 21:02:05 +0000 (16:02 -0500)]
[disk,aoe,filedisk,ramdisk] Move Dev back out of WV_S_DISK_T

But a pointer place-holder remains (for now).

9 years ago[disk] Remove Init member from WV_S_DISK_T
Shao Miller [Sun, 9 Jan 2011 20:42:23 +0000 (15:42 -0500)]
[disk] Remove Init member from WV_S_DISK_T

Disk providers should be responsible for initialization.

9 years ago[disk/pnp,driver] More independence from WV_S_DEV_T
Shao Miller [Sun, 9 Jan 2011 20:34:29 +0000 (15:34 -0500)]
[disk/pnp,driver] More independence from WV_S_DEV_T

Including WvDiskPnp() for IRP major function handling tables.

9 years ago[disk/scsi] Independence from WV_S_DEV_T
Shao Miller [Sun, 9 Jan 2011 14:15:35 +0000 (09:15 -0500)]
[disk/scsi] Independence from WV_S_DEV_T

For the sake of librarization.

9 years ago[disk/scsi] Remove more WV_S_DEV_T dependence
Shao Miller [Sun, 9 Jan 2011 13:46:29 +0000 (08:46 -0500)]
[disk/scsi] Remove more WV_S_DEV_T dependence

9 years ago[aoe] Remove more WV_S_DEV_T usage
Shao Miller [Sun, 9 Jan 2011 13:32:20 +0000 (08:32 -0500)]
[aoe] Remove more WV_S_DEV_T usage

9 years ago[aoe] Avoid disk__get_ptr and WvDevFromDevObj...
Shao Miller [Sun, 9 Jan 2011 13:02:15 +0000 (08:02 -0500)]
[aoe] Avoid disk__get_ptr and WvDevFromDevObj...

during node iteration for a "show" request.

9 years ago[disk] Use WV_S_DEV_T-independent I/O routine
Shao Miller [Sun, 9 Jan 2011 12:54:23 +0000 (07:54 -0500)]
[disk] Use WV_S_DEV_T-independent I/O routine

9 years ago[disk] Introduce I/O function prototype without...
Shao Miller [Sun, 9 Jan 2011 12:27:04 +0000 (07:27 -0500)]
[disk] Introduce I/O function prototype without...

use of WV_S_DEV_T.

9 years ago[aoe] Wrap an I/O routine taking a disk instead of dev
Shao Miller [Sun, 9 Jan 2011 12:16:08 +0000 (07:16 -0500)]
[aoe] Wrap an I/O routine taking a disk instead of dev

9 years ago[aoe] Use AOE_SP_DISK_ instead of WV_SP_DEV_T for...
Shao Miller [Sun, 9 Jan 2011 12:02:20 +0000 (07:02 -0500)]
[aoe] Use AOE_SP_DISK_ instead of WV_SP_DEV_T for...

work tags and disk searches.

9 years ago[disk] Remove unused disk__create()
Shao Miller [Sun, 9 Jan 2011 11:29:47 +0000 (06:29 -0500)]
[disk] Remove unused disk__create()

9 years ago[disk/dev_ctl,driver] Rename disk_dev_ctl__dispatch()
Shao Miller [Sun, 9 Jan 2011 11:21:51 +0000 (06:21 -0500)]
[disk/dev_ctl,driver] Rename disk_dev_ctl__dispatch()

To WvlDiskDevCtl().  It was also made independent of
WV_S_DEV_T, so that meant adding a WvDiskDevCtl()
function to the WinVBlock driver, in order for its
IRP major function handler tables to have something to
work with.

9 years ago[disk/dev_ctl] Change disk_dev_ctl__scsi_get_address_
Shao Miller [Sun, 9 Jan 2011 10:41:33 +0000 (05:41 -0500)]
[disk/dev_ctl] Change disk_dev_ctl__scsi_get_address_

To WvlDiskDevCtlScsiGetAddr().
Now independent from WV_S_DEV_T.

9 years ago[device] Remove DevNum member
Shao Miller [Sun, 9 Jan 2011 10:38:27 +0000 (05:38 -0500)]
[device] Remove DevNum member

Disks can use WvlDiskUnitNum(), instead.  For other
devices, use WvlBusGetNodeNum().

9 years ago[disk] Introduce UnitNum operation
Shao Miller [Sun, 9 Jan 2011 10:23:27 +0000 (05:23 -0500)]
[disk] Introduce UnitNum operation

To fetch the unit number.  A disk driver should implement it.

9 years ago[disk/dev_ctl] Change disk_dev_ctl__get_geom_()
Shao Miller [Sun, 9 Jan 2011 09:37:42 +0000 (04:37 -0500)]
[disk/dev_ctl] Change disk_dev_ctl__get_geom_()

To WvlDiskDevCtlGetGeom_().
Now independent from WV_S_DEV_T.

9 years ago[disk/dev_ctl] Change disk_dev_ctl__storage_query_prop_()
Shao Miller [Sun, 9 Jan 2011 09:33:16 +0000 (04:33 -0500)]
[disk/dev_ctl] Change disk_dev_ctl__storage_query_prop_()

To WvlDiskDevCtlStorageQueryProp_().
Now independent from WV_S_DEV_T.

9 years ago[disk/dev_ctl] Get the disk pointer in the dispatcher
Shao Miller [Sun, 9 Jan 2011 09:24:57 +0000 (04:24 -0500)]
[disk/dev_ctl] Get the disk pointer in the dispatcher

9 years ago[disk/pnp] Don't call IoDeleteDevice()
Shao Miller [Sun, 9 Jan 2011 08:55:16 +0000 (03:55 -0500)]
[disk/pnp] Don't call IoDeleteDevice()

Now that RAM, file-backed, and AoE disks all store their
data in the device object's extension, we only need to
free that data from one place: The particular disk's
WV_S_DEV_T::Ops.Free() implementation.

9 years ago[aoe] Change AoeDiskCreate_ to AoeDiskCreatePdo_()
Shao Miller [Sun, 9 Jan 2011 08:50:29 +0000 (03:50 -0500)]
[aoe] Change AoeDiskCreate_ to AoeDiskCreatePdo_()

And create the PDO.  The aBFT scanner and the AoE "mount"
IRP handler are responsible for calling it, initializing
the AoE disk, then adding it to the AoE bus.

9 years ago[aoe] Use disk IRP handlers
Shao Miller [Sun, 9 Jan 2011 08:03:06 +0000 (03:03 -0500)]
[aoe] Use disk IRP handlers

9 years ago[disk] Export disk IRP handlers as library functions
Shao Miller [Sun, 9 Jan 2011 07:50:47 +0000 (02:50 -0500)]
[disk] Export disk IRP handlers as library functions

9 years ago[aoe] Don't track AoE disks globally
Shao Miller [Sun, 9 Jan 2011 07:40:37 +0000 (02:40 -0500)]
[aoe] Don't track AoE disks globally

9 years ago[aoe] Put the WV_S_DISK_T inside AOE_S_DISK_
Shao Miller [Sun, 9 Jan 2011 07:38:53 +0000 (02:38 -0500)]
[aoe] Put the WV_S_DISK_T inside AOE_S_DISK_

9 years ago[aoe/bus] Allow the caller to create the PDO
Shao Miller [Sun, 9 Jan 2011 07:30:36 +0000 (02:30 -0500)]
[aoe/bus] Allow the caller to create the PDO

9 years ago[ramdisk] Use RAM disk PDO creation function
Shao Miller [Sun, 9 Jan 2011 03:07:02 +0000 (22:07 -0500)]
[ramdisk] Use RAM disk PDO creation function

ramdisk__create() replaced by WvRamdiskCreatePdo().

9 years ago[ramdisk/memdisk] Note the media type before creation
Shao Miller [Sun, 9 Jan 2011 02:51:25 +0000 (21:51 -0500)]
[ramdisk/memdisk] Note the media type before creation

9 years ago[ramdisk/grub4dos] Note the media type before creation
Shao Miller [Sun, 9 Jan 2011 02:46:40 +0000 (21:46 -0500)]
[ramdisk/grub4dos] Note the media type before creation

9 years ago[ramdisk/grub4dos] Minor, cosmetic changes
Shao Miller [Sun, 9 Jan 2011 00:43:45 +0000 (19:43 -0500)]
[ramdisk/grub4dos] Minor, cosmetic changes

9 years ago[ramdisk] Minor, cosmetic changes
Shao Miller [Sun, 9 Jan 2011 00:25:22 +0000 (19:25 -0500)]
[ramdisk] Minor, cosmetic changes

9 years ago[ramdisk] Don't track RAM disks globally
Shao Miller [Sat, 8 Jan 2011 23:50:57 +0000 (18:50 -0500)]
[ramdisk] Don't track RAM disks globally

9 years ago[bus] Add null operation check for WV_S_DEV_T::Ops.Init()
Shao Miller [Sat, 8 Jan 2011 23:46:14 +0000 (18:46 -0500)]
[bus] Add null operation check for WV_S_DEV_T::Ops.Init()

9 years ago[disk,filedisk] Export IRP handlers, create filedisk PDO
Shao Miller [Sat, 8 Jan 2011 23:44:51 +0000 (18:44 -0500)]
[disk,filedisk] Export IRP handlers, create filedisk PDO

Shuffled things around so that a new filedisk actually is
the device extension of a newly-created PDO.  The same is
intended for RAM disks, soon.

9 years ago[filedisk] Shuffle code around in WvFilediskAttach()
Shao Miller [Sat, 8 Jan 2011 21:34:28 +0000 (16:34 -0500)]
[filedisk] Shuffle code around in WvFilediskAttach()

Moving towards allocating the filedisk with the device
extension when the PDO is created.

9 years ago[bus] Allow a WvBusAddDev() caller to create PDO
Shao Miller [Sat, 8 Jan 2011 20:36:15 +0000 (15:36 -0500)]
[bus] Allow a WvBusAddDev() caller to create PDO

They must set the 'Self' member to notify of this.

9 years ago[disk] Zero out a disk during initialization
Shao Miller [Sat, 8 Jan 2011 20:31:25 +0000 (15:31 -0500)]
[disk] Zero out a disk during initialization

9 years ago[disk] Split WvDiskCreatePdo_() for WV_S_DEV_T independence
Shao Miller [Sat, 8 Jan 2011 20:27:08 +0000 (15:27 -0500)]
[disk] Split WvDiskCreatePdo_() for WV_S_DEV_T independence

The independent portion is now in WvlDiskCreatePdo().

9 years ago[disk] Don't track disks globally
Shao Miller [Sat, 8 Jan 2011 18:44:59 +0000 (13:44 -0500)]
[disk] Don't track disks globally

9 years ago[disk] Split disk initialization out of disk__create()
Shao Miller [Sat, 8 Jan 2011 18:38:33 +0000 (13:38 -0500)]
[disk] Split disk initialization out of disk__create()

And into WvDiskInit(), instead.  Leave device initialization
in disk__create(), since it is specific to WinVBlock devices.

9 years ago[disk] Cosmetic changes and NULL disk operation checks
Shao Miller [Sat, 8 Jan 2011 18:24:20 +0000 (13:24 -0500)]
[disk] Cosmetic changes and NULL disk operation checks

9 years ago[disk] Rename WV_E_DISK_IO_MODE to WVL_E_DISK_IO_MODE
Shao Miller [Sat, 8 Jan 2011 17:49:27 +0000 (12:49 -0500)]
[disk] Rename WV_E_DISK_IO_MODE to WVL_E_DISK_IO_MODE

Along with its enumeration values from WvDiskIoMode* to
WvlDiskIoMode*

9 years ago[disk] Rename WV_A_DISK_BOOT_SECT to WVL_A_DISK_BOOT_SECT
Shao Miller [Sat, 8 Jan 2011 17:41:39 +0000 (12:41 -0500)]
[disk] Rename WV_A_DISK_BOOT_SECT to WVL_A_DISK_BOOT_SECT

9 years ago[httpdisk] Handle IRP_MJ_PNP:IRP_MN_START_DEVICE
Shao Miller [Sat, 8 Jan 2011 17:38:03 +0000 (12:38 -0500)]
[httpdisk] Handle IRP_MJ_PNP:IRP_MN_START_DEVICE

9 years ago[disk] Rename WV_E_DISK_MEDIA_TYPE to WVL_E_DISK_MEDIA_TYPE
Shao Miller [Sat, 8 Jan 2011 17:37:30 +0000 (12:37 -0500)]
[disk] Rename WV_E_DISK_MEDIA_TYPE to WVL_E_DISK_MEDIA_TYPE

Along with its enumeration values from WvDiskMediaType* to
WvlDiskMediaType*

9 years ago[httpdisk] Debug-messages for unsupported IRP major codes
Shao Miller [Sat, 8 Jan 2011 10:00:34 +0000 (05:00 -0500)]
[httpdisk] Debug-messages for unsupported IRP major codes

9 years ago[httpdisk] IRP_MJ_SCSI handling skeleton
Shao Miller [Sat, 8 Jan 2011 09:48:03 +0000 (04:48 -0500)]
[httpdisk] IRP_MJ_SCSI handling skeleton

Just debugging messages, for now.

9 years ago[httpdisk] Debug-messages for a few more PnP IRP types
Shao Miller [Sat, 8 Jan 2011 09:43:59 +0000 (04:43 -0500)]
[httpdisk] Debug-messages for a few more PnP IRP types

9 years ago[httpdisk] Support disk PnP ID queries
Shao Miller [Sat, 8 Jan 2011 09:24:22 +0000 (04:24 -0500)]
[httpdisk] Support disk PnP ID queries

This allows for the disks to be enumerated and
installed in Device Manager.  They won't function, yet.

9 years ago[httpdisk] Add IRP_MJ_PNP handler
Shao Miller [Sat, 8 Jan 2011 07:57:16 +0000 (02:57 -0500)]
[httpdisk] Add IRP_MJ_PNP handler

Though it doesn't exactly handle anything, yet.

9 years ago[libbus/pnp] Add check for NULL QueryDevText member
Shao Miller [Sat, 8 Jan 2011 07:44:01 +0000 (02:44 -0500)]
[libbus/pnp] Add check for NULL QueryDevText member

9 years ago[libbus] Add check for NULL bus FDO
Shao Miller [Sat, 8 Jan 2011 07:35:50 +0000 (02:35 -0500)]
[libbus] Add check for NULL bus FDO

9 years ago[httpdisk/bus] Add pre-made devices to the bus
Shao Miller [Sat, 8 Jan 2011 07:34:33 +0000 (02:34 -0500)]
[httpdisk/bus] Add pre-made devices to the bus

9 years ago[httpdisk/bus] Delete bus FDO on PnP removal
Shao Miller [Sat, 8 Jan 2011 07:12:41 +0000 (02:12 -0500)]
[httpdisk/bus] Delete bus FDO on PnP removal

If we delete the FDO before returning from handling an
IRP_MJ_PNP:IRP_MN_REMOVE_DEVICE IRP, then the driver's
unload routine will be called if there aren't any more
devices.  That is, we should be able to be unloaded from
Device Manager.

9 years ago[httpdisk/bus] Actually handle the IRPs in commit 6081ace4
Shao Miller [Sat, 8 Jan 2011 03:02:32 +0000 (22:02 -0500)]
[httpdisk/bus] Actually handle the IRPs in commit 6081ace4

And now the bus device installs in Device Manager.

9 years ago[httpdisk/bus] Establish the bus state as started
Shao Miller [Sat, 8 Jan 2011 02:54:19 +0000 (21:54 -0500)]
[httpdisk/bus] Establish the bus state as started

9 years ago[httpdisk] Revert portion of commit 0d63d646
Shao Miller [Sat, 8 Jan 2011 02:49:18 +0000 (21:49 -0500)]
[httpdisk] Revert portion of commit 0d63d646

Not sure why I was trying to handle IRP_MJ_[CREATE|CLOSE]
for the bus.  The WinVBlock driver is almost as simple as
Bo's handler in his driver.

9 years ago[httpdisk] Send a few IRP majors to the bus
Shao Miller [Sat, 8 Jan 2011 02:43:52 +0000 (21:43 -0500)]
[httpdisk] Send a few IRP majors to the bus

IRP_MJ_PNP
IRP_MJ_POWER
IRP_MJ_SYSTEM_CONTROL

9 years ago[httpdisk] Add success debug message to DriverEntry()
Shao Miller [Sat, 8 Jan 2011 02:32:31 +0000 (21:32 -0500)]
[httpdisk] Add success debug message to DriverEntry()

9 years ago[httpdisk] Change DEVICE_BASE_NAME to \HttpDisks
Shao Miller [Sat, 8 Jan 2011 02:28:03 +0000 (21:28 -0500)]
[httpdisk] Change DEVICE_BASE_NAME to \HttpDisks

To avoid an object namespace conflict with the bus. :)

9 years ago[httpdisk/bus] Report bus IRPs
Shao Miller [Sat, 8 Jan 2011 02:24:46 +0000 (21:24 -0500)]
[httpdisk/bus] Report bus IRPs

Though don't exactly handle any, yet.