ウィンドウ表示モードのデバイスの Microsoft Direct3D ランタイムが、ユーザーモード ディスプレイ ドライバーの関数を呼び出して、回転したプライマリ サーフェスをロックしたり、回転したプライマリ サーフェスにレンダリングしたり、回転プライマリとの間でビット ブロック転送 (bitblt) を実行したりすることはありません。 つまり、こうした状況はすべて、ウィンドウ表示モードのデバイスの Direct3D ランタイムが処理します。
ウィンドウ表示モードのデバイスの Direct3D ランタイムは、共有プライマリ サーフェスを開き、プライマリ サーフェスの向きをユーザー モードディスプレイ ドライバーに通知するために、ユーザーモード ディスプレイ ドライバーの OpenResource 関数を呼び出さない場合があります。 ただし、デスクトップ ウィンドウ マネージャー (DWM) が実行されていない場合は、Direct3D ランタイムが OpenResource を呼び出すので、ユーザーモード ディスプレイ ドライバーはプライマリの向きについての通知を受けます。 ユーザーモード ディスプレイ ドライバーは、ドライバーが (bitbltまたはロックを介して) 独自の目的でプライマリ サーフェスにアクセスする必要がある場合にのみ、プライマリ サーフェスの向きを認識する必要があります。ウィンドウ表示モードのデバイスの Direct3D ランタイムが、回転したプライマリ サーフェスへのアクセスをユーザーモード ディスプレイ ドライバーに要求することはありません。 そのため、ユーザー モード ディスプレイ ドライバーが独自の内部的な目的でプライマリ サーフェスにアクセスする必要がある場合、ドライバーには OpenResource 関数の呼び出しに加えて別の機構が必要です。OpenResource が常に呼び出されるとは限らないからです。
DWM またはディスプレイ ミニポート ドライバーの DxgkDdiPresent 関数は、ウィンドウ表示モードのデータを回転します。