2018年01月一覧

Windows7 の WindowsUpdate 適用済みディスクを作る (2018/01版)

当ブログで人気のある記事の1つに「Windows7SP1 ディスクに ロールアップKB3125574 を統合する」 がありますが、これは 2016 年夏のものでした。
今でもこの方法で、うまく結合できることは確認しましたが、ロールアップや累積的な更新プログラムが何度か出ているので、手順も更新したほうが良いと感じたのでまとめ直しました。
以降の内容では、 x64 版で作業していますが、 x86 版でもファイル名などの読み替え程度で適用できるようにしています。

関連記事

作業環境

Windows10 Professional 1703 x64 の環境で本記事の作業を行いました。それ以外の環境で当作業を行う場合には、 dism のバージョンが違うことによるオプションの違いが発生するかと思われます。
また、最後の起動ディスクイメージ作成に oscdimg を使用するために、 Windows ADK をインストールしてあります。この中に含まれる Deployment tools をインストールすると oscdimg が使用可能となりました。
USB メモリに起動ディスクを作成する場合には、 oscdimg は不要です。

続きを読む


DirectX11 でマルチフルスクリーン その3

DirectX11 でマルチディスプレイ環境で全てのディスプレイでフルスクリーンモードとしたいのに SetFullscreenState が失敗してしまう件の続報です。
この症状は、 Windows10 Creators Update 適用環境でも発生します。おそらく RTM 版から挙動は変わっていないのでは、と思います。詳しくは、前回までの記事を参照してもらうとして、今回は「どうしてもフルスクリーンモードを使いたいんだ」ということで、1つの提案を出してみたいと思います。

続きを読む



DirectX11 でマルチフルスクリーン

Windwos 10 になってから、 DirectX11 の挙動で妙な点を発見しました。
以前 Windows 8.0 で OpenGL をマルチディスプレイで使った際にも変な動きがありました。それについての詳細情報は以前の日記を参照してください。OpenGL での問題の動きは Windows10 1703 でも発生していないようです。
今回の問題は、 SetFullscreenState が失敗して、各ディスプレイでフルスクリーンに遷移できないというものです。

現挙動の確認

昔ながらのコードが悪いのかと思い、 IDXGIFactory2 を使用して、 CreateSwapChainForHwnd でスワップチェインを作成するようにしてみました。
また、 DXGI_SWAP_CHAIN_FULLSCREEN_DESC にも各ディスプレイから取得した情報で値をセットするようにし、 Windowed メンバを TRUE にした状態で、フルスクリーンのスワップチェインを作成するようにしました。もちろん、各画面に応じて別のウィンドウとなるため、ウィンドウ (HWND) は2つ作成しています。

これでアプリケーションを実行すると、一瞬フルスクリーンモードになるのですが、すぐに解除されてしまいウィンドウモードでの実行となってしまいました。 NVIDIA, Intel ともに同じ動きをしているので、 Microsoft Windows 側の仕様変更が疑われます。

GetFullscreenState で状態を確認して、フルスクリーンモードに再度遷移する、と実装を修正して実行を試みました。結果はある程度はフルスクリーンモード状態になって、その後解除され、再びフルスクリーンモードに遷移して・・・と繰り返す動きでした。

続きを読む