Hello, Rfranfeul. If I understand your questions, the answer is yes to both.
This cmdlet uses Windows APIs to read the NTFS block table and uses in-band SCSI UNMAP commands to punch/release each free range. Care is taken to ensure NTFS does not allocate space in the empty ranges during the operation. I believe that WS2012 can do this natively, but earlier versions of Windows benefit from running this cmdlet regularly so that thin-provisioned LUNs remain space-efficient.
Re: Invoke-NaHostVolumeSpaceReclaim - How does it work?
There are multiple ways to unmap blocks in ONTAP, including the standard UNMAP, an earlier vendor-specific SCSI CDB, and out-of-band ONTAP APIs. The cmdlet uses UNMAP but can fall back to the older CDB if necessary. I don't know which method SnapDrive uses. I do know that when I wrote the cmdlet, it was much faster than SDW, but that may have changed.