@@ -256,43 +256,43 @@ Windows Updates run, you can disable those in gpedit.msc
256256
257257 ✅ Compile ZFS on top of ZFS
258258
259- ❎ Scrooge McDuck style swim in cash
259+ ✅ Async vdev_disk.c I/O
260260
261- ---
261+ ✅ posix.c substantially complete
262262
263- # Design issues that need addressing.
263+ ✅ DriveLetter dataset property (zfs set driveletter=Z pool)
264+ * Assigned first-available letter if set to "?:"
265+ * Imported Unix pools default to drive-letter mount
264266
265- * Windows does not handle EFI labels, for now they are parsed with
266- libefi, and we send offset and size with the filename, that both
267- libzfs and kernel will parse out and use. This works for a proof
268- of concept.
267+ ✅ ZFS delegation (zfs allow / zfs unallow)
269268
270- Possibly a more proper solution would be to write a thin virtual
271- hard disk driver, which reads the EFI label and present just the
272- partitions.
269+ ✅ Windows Security Descriptor / ACL integration
270+ * SeAccessCheck on parent SD authoritative for IRP_MJ_CREATE
271+ * ZFS POSIX ACL checked via uid=0 credential bypass
273272
274- * vdev_disk.c spawns a thread to get around that IoCompletionRoutine
275- is called in a different context, to sleep until signalled. Is there
276- a better way to do async in Windows?
273+ ✅ UAC elevation relay for privileged operations
277274
278- * ThreadId should be checked, using PsGetCurrentThreadId() but
279- it makes zio_taskq_member(taskq_member()) crash. Investigate.
275+ ✅ xattrs and alternate data streams (NTFS ADS)
276+ * Stream rename not yet supported
280277
281- * Functions in posix.c need sustenance.
278+ ❎ Scrooge McDuck style swim in cash
282279
283- Add dataset property DriveLetter, which is ignored on Unix system.
284- So for a simple drive letter dataset:
280+ ---
285281
286- zfs set driveletter=Z pool
282+ # Design issues that need addressing.
287283
288- The default creating of a new pool, AND, importing a UNIX pool, would
289- set the root dataset to
284+ * Windows does not natively handle EFI disk labels. The current
285+ workaround encodes partition offset and size in the device filename,
286+ which is parsed by both libzfs and the kernel driver. This is
287+ functional but not ideal; a cleaner solution would be a thin virtual
288+ disk driver that presents EFI partitions directly to Windows. This
289+ remains an open item.
290290
291- driveletter=?:
291+ * Alternate data streams (xattrs / NTFS ADS) are implemented.
292+ Renaming streams is not yet supported.
292293
293- So it is assigned first-available drive letter. All lower datasets
294- will be mounted inside the drive letter. If pool's WinDriveLetter is
295- not set, it will mount "/pool" as "C:/pool".
294+ * cmdbox/console text colour attributes (ANSI escape sequences) are
295+ not yet wired up in posix.c.
296296
297297---
298298
0 commit comments