Please see other gists for updated information. https://gist.github.com/XenoPanther/15d8fad49fbd51c6bd946f2974084ef8
- ゲストで
sdelete -z
→シャットダウンして→Optimize-VHD -Mode Prezeroed
- ホストで
Mount-VHD
→sdelete -z
→Dismount-VHD
→Optimize-VHD -Mode Prezeroed
これらは時間と書き込み量を浪費しているだけだから今すぐ止めて
Mount-VHD <VHD> [-NoDriveLetter] -ReadOnly -Passthru | Optimize-VHD [-Mode {Quick|Full}] -Passthru | Dismount-VHD
を使うべき。
読み取り専用でマウントしている時に Optimize-VHD をすればディスクイメージ内の NTFS から得られる空き領域情報を利用するから。
あなたが探している情報はこちらではないね?
Windows 10 の新機能の一つで FAT16/FAT32/exFAT で EFS(Encrypting File System) が使用可能になりました。 公式にはバージョン 1607 からとありますが実際には FAT16/FAT32 ではバージョン 1507 から exFAT ではバージョン 1511 から使用可能でした。 暗号化されたファイルは Windows 10 以外からはファイル名の末端に .PFILE が付きます。 Windows 10 の EFS 以外でファイル名の末端を .PFILE に変えても Windows 10 で EFS として扱われることはありません。
NTFS の EFS の場合と同じ方法で可能です。
<# | |
.SYNOPSIS | |
ファイル名、ディレクトリ名のUNICODE結合文字を、普通の1文字に変換する | |
.DESCRIPTION | |
ファイル名、ディレクトリ名のUNICODE結合文字になっている部分を、普通の1文字に変換する。 | |
例えば、「か + ゛(濁点記号)」を、「が」に変換する。 | |
Macは、ファイル名をUNICODE結合文字で保存するが、Windowsは、普通の1文字で保存するので、 | |
MacからWindowsに、USBメモリーでファイルをコピーした際など、MacとWindowsのファイル交換時に |
#include <fenv.h> | |
#include <stdint.h> | |
#include <stdio.h> | |
extern "C" int64_t fto132proc(/* Passing by ST(0) */); | |
int main() | |
{ | |
double f = UINT32_MAX + 0.9; | |
uint32_t h, l; |
#define WIN32_LEAN_AND_MEAN | |
#define WIL_SUPPRESS_EXCEPTIONS | |
#include <windows.h> | |
#include <cstdio> | |
#include <cstdlib> | |
#include <wil/resource.h> | |
int wmain(int, PWSTR argv[]) | |
{ | |
wil::unique_hfile d(CreateFileW(argv[1], FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, nullptr)); |
TLDR IsWow64Process2()
使え。
WowA64ではIsWow64Process()
やGetNativeSystemInfo()
を使うとx86版Windowsと誤認するようになっている。
バグではなく意図的な仕様と考えられる。(理由考察は省略)
しかしそれらのAPIで得られる値やIsWow64Process2()
以外のAPIでも一部の挙動がx86版Windowsと違う。
AMD64 | x86 | Arm64 | |||
---|---|---|---|---|---|
IsWow64Process() | *Wow64Process | TRUE | 0 | 0 |
char a = <...>;
2130466 >> a & 1;
とは
https://twitter.com/kumagi/status/1014953960237436928
x86のシフト命令は下位5ビットしか見ない
The count operand can be an immediate value or the CL register. The count is masked to 5 bits (or 6 bits if in 64-bit mode and REX.W is used). The count range is limited to 0 to 31 (or 63 if 64-bit mode and REX.W is used).