Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1
CrystalDiskMark を
Windows ストアに
登録してみた
プログラミング生放送勉強会 第46回
@株式会社DMM.comラボ(恵比寿)
宮崎 典行
Twitter: @openlibsys
http://crystalma...
2
自己紹介
CrystalDiskMark
Windows ストアへの道
CrystalDiskInfo
NVMe 対応への道
まとめ
3自己紹介
名前:宮崎 典行, hiyohiyo/ひよひよ
年齢:38歳
家族:愛妻, 愛娘, 愛息子
趣味:ソフトウェア開発 (約18年)
住所:北海道札幌市
所属:CLR/H
代表作: CrystalDiskInfo, CrystalDis...
4さっぽろ雪まつり (2/6-2/12)
FF7 REMAKE 楽しみ!!
5自作ソフトウェア紹介
CrystalDiskInfo CrystalDiskMark
CrystalMark 2004 CrystalCPUID
6念願の Windows ストアデビュー!!
Desktop App Converter サイコー
本日のメインテーマ
7AmorphousDiskMark
CrystalDiskMark の macOS 版!?
katsura シェアウェア
http://katsurashareware.com/index-j.html
AmorphousDiskMark b...
8CrazyDiskInfo
CrystalDiskInfo の Linux 版!?
CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems.
https://...
9
公式応援キャラクター
10公式サイトにて壁紙公開中!!
超高解像度(8K/7680x4320)壁紙
http://水晶雫.com/
11【宣伝】第二世代萌え駆動開発
http://www.slideshare.net/hiyohiyo/mddwin32
ソフトウェア開発で一番大切
なことを紹介しています!!
12
Windows ストアへの道
13UWP (Universal Windows Platform) アプリとは
Windows 10 を実行する全てのデバイスで
利用可能な共通アプリプラットフォーム
出典: https://msdn.microsoft.com/ja-jp/...
14UWP アプリの制限
自由なファイルアクセス 管理者権限での動作
プロセス間通信 低レイヤー API 使用
ループバック通信 データベースアクセス
高度なシステム系ツールの開発は実質不可能
従来のデスクトップアプリと長期間併存 (私見)
15Desktop Bridge
Windows デスクトップアプリ(Win32/WPFなど)
を UWP アプリパッケージに変換
• Desktop App Converter
• 3rd Party 製インストーラー
従来のデスクトップアプ...
16管理者権限が必要なアプリばかり…
CrystalDiskInfo CrystalDiskMark
CrystalMark 2004 CrystalCPUID
要管理者権限
要管理者権限 要管理者権限
17CrystalDiskMark (2007年リリース)
出典:窓の杜
http://www.forest.impress.co.jp/article/2007/04/03/crystaldiskmark.html
□プログラム名
Cryst...
18
Windows ストアへ登録
Desktop App Converter
Win32/.NET アプリ&インストーラー作成
Desktop App Converter セットアップ
AppX 形式に変換
開発者登録/特別な申請
19アプリ&インストーラー作成
サイレントモード対応のインストーラー必須
20Desktop App Converter セットアップ
https://www.microsoft.com/ja-jp/store/p/Desktop%20App%20Converter/9nblggh4skzw
Desktop App
...
21Desktop App Converter セットアップ
実行中の Windows 10 と同じバージョン
の BaseImage でセットアップ
22AppX 形式に変換
サイレントモードオプションを忘れずに!!
Inno Setup: “/VERYSILENT /SP-”
23AppX のインストール……
そのままではインストール出来ません!!
24システムへの登録
PS C:¥WINDOWS¥system32> Add-AppxPackage -Register
C:¥MyAppFolder¥CrystalDiskMark5¥PackageFiles¥AppxManifest.xml
25コード署名をすれば野良配布も可能!!
コードサイニング証明書
+
26
Windows ストアへ登録
Desktop App Converter
Win32/.NET アプリ&インストーラー作成
Desktop App Converter セットアップ
AppX 形式に変換
開発者登録/特別な申請
27Microsoft アカウントの取得
https://www.microsoft.com/ja-jp/msaccount/
28アカウント情報の登録
https://dev.windows.com/ja-jp/programs/join
29アカウント情報の登録
https://dev.windows.com/ja-jp/programs/join
30特別な申請
https://developer.microsoft.com/en-us/windows/projects/campaigns/desktop-bridge
デスクトップアプリをストア登録するため
の申請を英語で行います。
31待てど暮らせど・・・
全然連絡が来ない!!!!
32中の人降臨
US担当者に連絡取るので
詳細教えてもらえますか?
おぉ~ツイートがきっかけ!?
で中の人から連絡が!?
通常フローの待ち時間はわかりません。
関係者に連絡をすれば何とかなるかも……
33
Windows ストアへ登録
Desktop App Converter
Win32/.NET アプリ&インストーラー作成
Desktop App Converter セットアップ
AppX 形式に変換
開発者登録/特別な申請
34ストアへ登録
35統計データ
36レビュー
世界中からレビューいただきました!!
37審査はザルかもしれない…
DiskMark32.exe
DiskMark64.exe diskspd64.exe
diskspd32.exe32bit
64bit
DiskMark32.exe diskspd64.exe誤爆
UI Benc...
38つまり……
動かなくても審査には通るのかも!?
ごめんなさい m(_ _)m
すぐに修正版に更改しました。
39まとめ
Win32/WPF/WinForms アプリをお持ちの方は
ぜひチャレンジしてみてください!!
Windows ストアを盛り上げていきましょう!!
40
NVM Express
41NVMe とは
NVM Express (NVMe)
SSD 向け次世代インターフェース
最大の特徴
速い!!
42
0 500 1000 1500 2000 2500 3000 3500 4000
NVMe @PCIe 3.0x4
SATA/600
SATA/300
SATA/150
UDMA/100
UDMA/66
UDMA/33
転送レート (MB...
43AHCI vs NVMe
ベンチマーカー視点での最重要ポイント
AHCI NVMe
Queue 1 64K
Commands/Queue 32 64K
Q32T1 Q32T4 Q32T8
TOSHIBA PX04PMC080 800GB
ラ...
44
CrystalDiskInfo
45CrystalDiskInfo (2008年リリース)
出典:窓の杜
http://www.forest.impress.co.jp/article/2008/05/23/crystaldiskinfo.html
□プログラム名
Cryst...
46CrystalDiskInfo の開発コードネーム
1.0: Feena
2.0: Earthlight
3.0: Moonlight
4.0: Licia
5.0: Cynthia
6.0: Freesia
7.0: Marguerite...
47
CrystalDiskInfo 8
~ Marginality ~
開発は全く進んでいませんが……
© August
48NVMe 対応への道のり
CrystalDiskInfo 7
PATA/SATA RAID USB
(IEEE1394)
NVMe
49NVMe のコマンド体系
標準コマンド
必須3種類
Admin コマンド
必須10種類
50Intel SSD 750 1.2TB
51SAMSUNG SSD 950 PRO 512GB
NVMe 調査のために購入
52SAMSUNG SM951 128GB
NVMe 調査のためだけに購入
53TOSHIBA PX04PMC080 800GB
54S.M.A.R.T. | ATA
Microsoft 製 ATA Driver
ReadFile()
※Win32 API
ATA PASS THROUGH 経由で
直接 ATA コマンドを送る
ATA HDD/SSD
SMART READ...
55S.M.A.R.T. 情報の取得 (USBの場合)
56S.M.A.R.T. | NVMe (Win8.1)
Microsoft 製 NVMe Driver
(Win7/8/8.1/2012)
ReadFile()
※Win32 API
NVMe SSD
Get Log Page
※NVMe コ...
57
どうしたら・・・
NVMe SSD の S.M.A.R.T. 情報が
Windows 上から読めない!!!!!!!!!!
NVMe \(^o^)/オワタ
58神降臨
日本語の (*´Д`)ハァハァ ツイートに
韓国の神から反応が!!
グローバルな活動が呼んだ奇跡か!?
59神降臨
http://naraeon.net/
https://github.com/ebangin127/nvmetools
60
神プロジェクトは Delphi 製だったorz
ステップ実行のため体験版ゲット(>_<)
【余談】神は Delphi 使いだったorz
61S.M.A.R.T. | SAMSUNG SSD 950 PRO
Microsoft 製 NVMe Driver
(Win 7/8/8.1/10/2012)
ReadFile()
※Win32 API
SAMSUNG SSD 950 PRO...
62
::ZeroMemory(&sptwb, sizeof(SCSI_PASS_THROUGH_WITH_BUFFERS24));
sptwb.Spt.Length = sizeof(SCSI_PASS_THROUGH);
sptwb.Spt...
63隠しコマンド大好き!!
秘密の裏口
大好きです!!
隠しコマンドが
あるなんてビックリです‼
64S.M.A.R.T. | Samsung SM951
Samsung 製 NVMe Driver
ReadFile()
※Win32 API
Samsung SM951
データ読み出し S.M.A.R.T.
Get Log Page
※NV...
65S.M.A.R.T. | Intel
Intel 製 NVMe Driver
ReadFile()
※Win32 API
Intel SSD 750
データ読み出し S.M.A.R.T.
Get Log Page
※NVMe コマンド
Re...
66S.M.A.R.T. | Storage Query (Win10)
Microsoft 製 NVMe Driver
ReadFile()
※Win32 API
NVMe SSD
データ読み出し S.M.A.R.T.
Get Log Pag...
67
BOOL CAtaSmart::GetSmartAttributeNVMeStorageQuery
(INT physicalDriveId, INT scsiPort, INT scsiTargetId, ATA_SMART_INFO*...
68ついに NVMe に対応!!
69NVMe 対応状況
NVMe Driver
SSD
Microsoft
Intel Samsung
Win 10 Win 8.1
Intel SSD 750 〇 × 〇 -
SAMSUNG SSD 950 PRO 〇 〇 - 〇
SAMSU...
70まとめ
71懇親会もよろしくお願いします!!
キーワード:
NVMe, ベンチマーク, Benchmark, AHCI, SSD, HDD, CPU, CPUID, ビデオカード, メガデモ, Final
Reality, 3DMark, HDBENC...
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
Next
Upcoming SlideShare
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
Next
Download to read offline and view in fullscreen.

1

Share

20170211_pronama_CrystalDiskMark_UWP

Download to read offline

Desktop App Converter を使って Win32 アプリを UWP 化する方法を紹介します。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

20170211_pronama_CrystalDiskMark_UWP

  1. 1. 1 CrystalDiskMark を Windows ストアに 登録してみた プログラミング生放送勉強会 第46回 @株式会社DMM.comラボ(恵比寿) 宮崎 典行 Twitter: @openlibsys http://crystalmark.info/ 71PAGES
  2. 2. 2 自己紹介 CrystalDiskMark Windows ストアへの道 CrystalDiskInfo NVMe 対応への道 まとめ
  3. 3. 3自己紹介 名前:宮崎 典行, hiyohiyo/ひよひよ 年齢:38歳 家族:愛妻, 愛娘, 愛息子 趣味:ソフトウェア開発 (約18年) 住所:北海道札幌市 所属:CLR/H 代表作: CrystalDiskInfo, CrystalDiskMark 他(通称 Crystal シリーズ) パソコンがもっと好きになるソフトウェアを一貫して開発しています Microsoft MVP ・Visual C++ (Jan. 2014 – Sep. 2015) ・Visual Studio and Development Technologies (Oct. 2015 -)
  4. 4. 4さっぽろ雪まつり (2/6-2/12) FF7 REMAKE 楽しみ!!
  5. 5. 5自作ソフトウェア紹介 CrystalDiskInfo CrystalDiskMark CrystalMark 2004 CrystalCPUID
  6. 6. 6念願の Windows ストアデビュー!! Desktop App Converter サイコー 本日のメインテーマ
  7. 7. 7AmorphousDiskMark CrystalDiskMark の macOS 版!? katsura シェアウェア http://katsurashareware.com/index-j.html AmorphousDiskMark by @polydron
  8. 8. 8CrazyDiskInfo CrystalDiskInfo の Linux 版!? CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems. https://github.com/otakuto/CrazyDiskInfo CrazyDiskInfo by @otakuto5648
  9. 9. 9 公式応援キャラクター
  10. 10. 10公式サイトにて壁紙公開中!! 超高解像度(8K/7680x4320)壁紙 http://水晶雫.com/
  11. 11. 11【宣伝】第二世代萌え駆動開発 http://www.slideshare.net/hiyohiyo/mddwin32 ソフトウェア開発で一番大切 なことを紹介しています!!
  12. 12. 12 Windows ストアへの道
  13. 13. 13UWP (Universal Windows Platform) アプリとは Windows 10 を実行する全てのデバイスで 利用可能な共通アプリプラットフォーム 出典: https://msdn.microsoft.com/ja-jp/library/windows/apps/dn894631.aspx
  14. 14. 14UWP アプリの制限 自由なファイルアクセス 管理者権限での動作 プロセス間通信 低レイヤー API 使用 ループバック通信 データベースアクセス 高度なシステム系ツールの開発は実質不可能 従来のデスクトップアプリと長期間併存 (私見)
  15. 15. 15Desktop Bridge Windows デスクトップアプリ(Win32/WPFなど) を UWP アプリパッケージに変換 • Desktop App Converter • 3rd Party 製インストーラー 従来のデスクトップアプリと同じように動作 ※管理者権限では動作出来ないなど制限あり 出典: https://developer.microsoft.com/ja-jp/windows/bridges/desktop 変換方法
  16. 16. 16管理者権限が必要なアプリばかり… CrystalDiskInfo CrystalDiskMark CrystalMark 2004 CrystalCPUID 要管理者権限 要管理者権限 要管理者権限
  17. 17. 17CrystalDiskMark (2007年リリース) 出典:窓の杜 http://www.forest.impress.co.jp/article/2007/04/03/crystaldiskmark.html □プログラム名 CrystalDiskMark (くりすたるでぃすくまーく) □人気 ★ ★ ★ ★ ☆ 年間200万DL以上 (Shizuku Edition 含む) □開発動機 ストレージに特化すれば良いもの作れる? □アピールポイント • 縮小スクリーンショットでも全てがわかる • とにかくシンプル • 多言語対応 (40言語以上) □リスペクト • FDBENCH (EP82改/かず 氏) □ひとこと • 国内外でHDD/SSDの新製品評価に活用
  18. 18. 18 Windows ストアへ登録 Desktop App Converter Win32/.NET アプリ&インストーラー作成 Desktop App Converter セットアップ AppX 形式に変換 開発者登録/特別な申請
  19. 19. 19アプリ&インストーラー作成 サイレントモード対応のインストーラー必須
  20. 20. 20Desktop App Converter セットアップ https://www.microsoft.com/ja-jp/store/p/Desktop%20App%20Converter/9nblggh4skzw Desktop App Converter で検索 http://aka.ms/converterimages Windows 10 Base Image が必要です!!
  21. 21. 21Desktop App Converter セットアップ 実行中の Windows 10 と同じバージョン の BaseImage でセットアップ
  22. 22. 22AppX 形式に変換 サイレントモードオプションを忘れずに!! Inno Setup: “/VERYSILENT /SP-”
  23. 23. 23AppX のインストール…… そのままではインストール出来ません!!
  24. 24. 24システムへの登録 PS C:¥WINDOWS¥system32> Add-AppxPackage -Register C:¥MyAppFolder¥CrystalDiskMark5¥PackageFiles¥AppxManifest.xml
  25. 25. 25コード署名をすれば野良配布も可能!! コードサイニング証明書 +
  26. 26. 26 Windows ストアへ登録 Desktop App Converter Win32/.NET アプリ&インストーラー作成 Desktop App Converter セットアップ AppX 形式に変換 開発者登録/特別な申請
  27. 27. 27Microsoft アカウントの取得 https://www.microsoft.com/ja-jp/msaccount/
  28. 28. 28アカウント情報の登録 https://dev.windows.com/ja-jp/programs/join
  29. 29. 29アカウント情報の登録 https://dev.windows.com/ja-jp/programs/join
  30. 30. 30特別な申請 https://developer.microsoft.com/en-us/windows/projects/campaigns/desktop-bridge デスクトップアプリをストア登録するため の申請を英語で行います。
  31. 31. 31待てど暮らせど・・・ 全然連絡が来ない!!!!
  32. 32. 32中の人降臨 US担当者に連絡取るので 詳細教えてもらえますか? おぉ~ツイートがきっかけ!? で中の人から連絡が!? 通常フローの待ち時間はわかりません。 関係者に連絡をすれば何とかなるかも……
  33. 33. 33 Windows ストアへ登録 Desktop App Converter Win32/.NET アプリ&インストーラー作成 Desktop App Converter セットアップ AppX 形式に変換 開発者登録/特別な申請
  34. 34. 34ストアへ登録
  35. 35. 35統計データ
  36. 36. 36レビュー 世界中からレビューいただきました!!
  37. 37. 37審査はザルかもしれない… DiskMark32.exe DiskMark64.exe diskspd64.exe diskspd32.exe32bit 64bit DiskMark32.exe diskspd64.exe誤爆 UI Benchmark
  38. 38. 38つまり…… 動かなくても審査には通るのかも!? ごめんなさい m(_ _)m すぐに修正版に更改しました。
  39. 39. 39まとめ Win32/WPF/WinForms アプリをお持ちの方は ぜひチャレンジしてみてください!! Windows ストアを盛り上げていきましょう!!
  40. 40. 40 NVM Express
  41. 41. 41NVMe とは NVM Express (NVMe) SSD 向け次世代インターフェース 最大の特徴 速い!!
  42. 42. 42 0 500 1000 1500 2000 2500 3000 3500 4000 NVMe @PCIe 3.0x4 SATA/600 SATA/300 SATA/150 UDMA/100 UDMA/66 UDMA/33 転送レート (MB/s)
  43. 43. 43AHCI vs NVMe ベンチマーカー視点での最重要ポイント AHCI NVMe Queue 1 64K Commands/Queue 32 64K Q32T1 Q32T4 Q32T8 TOSHIBA PX04PMC080 800GB ランダム4KiBリード結果 (MB/s) テストサイズ: 1GiB
  44. 44. 44 CrystalDiskInfo
  45. 45. 45CrystalDiskInfo (2008年リリース) 出典:窓の杜 http://www.forest.impress.co.jp/article/2008/05/23/crystaldiskinfo.html □プログラム名 CrystalDiskInfo (くりすたるでぃすくいんふぉ) □人気 ★ ★ ★ ★ ★ 年間400万DL以上 (Shizuku Edition 含む) □開発のきっかけ CrystalCPUID の開発が頓挫し打ちひしがれ ていた頃に出会った「月のお姫さまがホームス テイ」という設定のゲームに出てくる「司祭の お嬢さん」があまりにツボだったため。 □アピールポイント • NVMe対応 • 一部のUSB/RAID接続に対応 • スクリーンショットで概要を把握 • 多言語対応 (30言語以上) □リスペクト • なし □ひとこと • ディスク系ツールならメンテナンス不要と 考えていたのですが、SSDベンダーが多数 出現し個別対応が必要に……
  46. 46. 46CrystalDiskInfo の開発コードネーム 1.0: Feena 2.0: Earthlight 3.0: Moonlight 4.0: Licia 5.0: Cynthia 6.0: Freesia 7.0: Marguerite © August 第 一 世 代 第 二 世 代 萌える想いをコードに変換!!
  47. 47. 47 CrystalDiskInfo 8 ~ Marginality ~ 開発は全く進んでいませんが…… © August
  48. 48. 48NVMe 対応への道のり CrystalDiskInfo 7 PATA/SATA RAID USB (IEEE1394) NVMe
  49. 49. 49NVMe のコマンド体系 標準コマンド 必須3種類 Admin コマンド 必須10種類
  50. 50. 50Intel SSD 750 1.2TB
  51. 51. 51SAMSUNG SSD 950 PRO 512GB NVMe 調査のために購入
  52. 52. 52SAMSUNG SM951 128GB NVMe 調査のためだけに購入
  53. 53. 53TOSHIBA PX04PMC080 800GB
  54. 54. 54S.M.A.R.T. | ATA Microsoft 製 ATA Driver ReadFile() ※Win32 API ATA PASS THROUGH 経由で 直接 ATA コマンドを送る ATA HDD/SSD SMART READ DATA ※ATA コマンド READ **** ※ATA コマンド データ読み出し S.M.A.R.T.
  55. 55. 55S.M.A.R.T. 情報の取得 (USBの場合)
  56. 56. 56S.M.A.R.T. | NVMe (Win8.1) Microsoft 製 NVMe Driver (Win7/8/8.1/2012) ReadFile() ※Win32 API NVMe SSD Get Log Page ※NVMe コマンド Read ※NVMe 標準コマンド データ読み出し S.M.A.R.T. Admin コマンド を通さない!!
  57. 57. 57 どうしたら・・・ NVMe SSD の S.M.A.R.T. 情報が Windows 上から読めない!!!!!!!!!! NVMe \(^o^)/オワタ
  58. 58. 58神降臨 日本語の (*´Д`)ハァハァ ツイートに 韓国の神から反応が!! グローバルな活動が呼んだ奇跡か!?
  59. 59. 59神降臨 http://naraeon.net/ https://github.com/ebangin127/nvmetools
  60. 60. 60 神プロジェクトは Delphi 製だったorz ステップ実行のため体験版ゲット(>_<) 【余談】神は Delphi 使いだったorz
  61. 61. 61S.M.A.R.T. | SAMSUNG SSD 950 PRO Microsoft 製 NVMe Driver (Win 7/8/8.1/10/2012) ReadFile() ※Win32 API SAMSUNG SSD 950 PRO データ読み出し S.M.A.R.T. Security Command (SCSI) Get Log Page ※NVMe コマンド 秘密の裏口 からアクセス Read ※NVMe 標準コマンド SCSI PASS THROUGH 経由で 特殊な SCSI コマンドを送る
  62. 62. 62 ::ZeroMemory(&sptwb, sizeof(SCSI_PASS_THROUGH_WITH_BUFFERS24)); sptwb.Spt.Length = sizeof(SCSI_PASS_THROUGH); sptwb.Spt.PathId = 0; sptwb.Spt.TargetId = 0; sptwb.Spt.Lun = 0; sptwb.Spt.SenseInfoLength = 24; sptwb.Spt.DataTransferLength = IDENTIFY_BUFFER_SIZE; sptwb.Spt.TimeOutValue = 2; sptwb.Spt.DataBufferOffset = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS24, DataBuf); sptwb.Spt.SenseInfoOffset = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS24, SenseBuf); sptwb.Spt.CdbLength = 16; sptwb.Spt.Cdb[0] = 0xB5; // SECURITY PROTOCOL IN sptwb.Spt.Cdb[1] = 0xFE; // SAMSUNG PROTOCOL sptwb.Spt.Cdb[3] = 6; // Get Log Page sptwb.Spt.Cdb[9] = 0x40; // Transfer Length sptwb.Spt.DataIn = SCSI_IOCTL_DATA_OUT; sptwb.DataBuf[0] = 2; // SMART Health Information sptwb.DataBuf[4] = 0xFF; sptwb.DataBuf[5] = 0xFF; sptwb.DataBuf[6] = 0xFF; sptwb.DataBuf[7] = 0xFF; length = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS24, DataBuf) + sptwb.Spt.DataTransferLength; bRet = ::DeviceIoControl(hIoCtrl, IOCTL_SCSI_PASS_THROUGH, &sptwb, length, &sptwb, length, &dwReturned, NULL); 秘密の裏口 | SAMSUNG SSD 950 PRO 一部抜粋 //SMART Health Information
  63. 63. 63隠しコマンド大好き!! 秘密の裏口 大好きです!! 隠しコマンドが あるなんてビックリです‼
  64. 64. 64S.M.A.R.T. | Samsung SM951 Samsung 製 NVMe Driver ReadFile() ※Win32 API Samsung SM951 データ読み出し S.M.A.R.T. Get Log Page ※NVMe コマンド Read ※NVMe 標準コマンド NVMe PASS THROUGH (SM951専用) 経由で NVMe コマンドを送る
  65. 65. 65S.M.A.R.T. | Intel Intel 製 NVMe Driver ReadFile() ※Win32 API Intel SSD 750 データ読み出し S.M.A.R.T. Get Log Page ※NVMe コマンド Read ※NVMe 標準コマンド NVMe PASS THROUGH (Intel専用) 経由で NVMe コマンドを送る
  66. 66. 66S.M.A.R.T. | Storage Query (Win10) Microsoft 製 NVMe Driver ReadFile() ※Win32 API NVMe SSD データ読み出し S.M.A.R.T. Get Log Page ※NVMe コマンド Read ※NVMe 標準コマンド NVMe Storage Query 経由で NVMe コマンドを送る
  67. 67. 67 BOOL CAtaSmart::GetSmartAttributeNVMeStorageQuery (INT physicalDriveId, INT scsiPort, INT scsiTargetId, ATA_SMART_INFO* asi) { CString path; path.Format(L"¥¥¥¥.¥¥PhysicalDrive%d", physicalDriveId); HANDLE hIoCtrl = CreateFile(path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); BOOL bRet = 0; StorageQuery::TStorageQueryWithBuffer nptwb; ZeroMemory(&nptwb, sizeof(nptwb)); nptwb.ProtocolSpecific.ProtocolType = StorageQuery::ProtocolTypeNvme; nptwb.ProtocolSpecific.DataType = StorageQuery::NVMeDataTypeLogPage; nptwb.ProtocolSpecific.ProtocolDataRequestValue = 2; // SMART Health Information nptwb.ProtocolSpecific.ProtocolDataRequestSubValue = 0xFFFFFFFF; nptwb.ProtocolSpecific.ProtocolDataOffset = sizeof(StorageQuery::TStorageProtocolSpecificData); nptwb.ProtocolSpecific.ProtocolDataLength = 4096; nptwb.Query.PropertyId = StorageQuery::StorageAdapterProtocolSpecificProperty; nptwb.Query.QueryType = StorageQuery::PropertyStandardQuery; DWORD dwReturned = 0; bRet = DeviceIoControl(hIoCtrl, IOCTL_STORAGE_QUERY_PROPERTY, &nptwb, sizeof(nptwb), &nptwb, sizeof(nptwb), &dwReturned, NULL); CloseHandle(hIoCtrl); memcpy_s(&(asi->SmartReadData), 512, nptwb.Buffer, 512); return bRet; } Win10新機能 | NVMe Storage Query 一部抜粋
  68. 68. 68ついに NVMe に対応!!
  69. 69. 69NVMe 対応状況 NVMe Driver SSD Microsoft Intel Samsung Win 10 Win 8.1 Intel SSD 750 〇 × 〇 - SAMSUNG SSD 950 PRO 〇 〇 - 〇 SAMSUNG SM951 〇 × - 〇 TOSHIBA PX04PMC080 〇 × - - TOSHIBA XG3 〇 × - - ZOTAC SONIX 〇 × - - 裏口: SAMSUNG SSD 950 PROのみ
  70. 70. 70まとめ
  71. 71. 71懇親会もよろしくお願いします!! キーワード: NVMe, ベンチマーク, Benchmark, AHCI, SSD, HDD, CPU, CPUID, ビデオカード, メガデモ, Final Reality, 3DMark, HDBENCH, WCPUID, Direct3D, OpenGL, MIDI, GS, XG, Photoshop, HiDPI, 8K, 5K, 4K, Displayport 1.3, Thunderbolt 3, HDMI 2.0, BIOS, EFI, SMBIOS, Firmware, 逆アセンブル, 逆コンパイル, カーネルモードドライバ, コードサイニング証明書, デジタル署名, x64, x86, i386, Win32, Win64, MFC, Visual C++, Visual C#, WinForms, WPF, DirectWrite, Windows 10, GDI, GDI+, リソースリーク, ハンドルリーク, メモリーリーク, クラッシュ, ブルースクリーン, S.M.A.R.T., PCI, PCIExpress, 10GbE, 10GBase-T, ダブルフォルト, 8月
  • masalice

    Feb. 12, 2017

Desktop App Converter を使って Win32 アプリを UWP 化する方法を紹介します。

Views

Total views

6,289

On Slideshare

0

From embeds

0

Number of embeds

4,304

Actions

Downloads

5

Shares

0

Comments

0

Likes

1

×