PoStartDeviceBusy 関数 (ntifs.h)

PoStartDeviceBusy ルーチンは、デバイスがビジー状態の期間の開始をマークします。

構文

void PoStartDeviceBusy(
  [in, out] PULONG IdlePointer
);

パラメーター

[in, out] IdlePointer

アイドル 状態のカウンターへのポインター。 これは、 以前に PoRegisterDeviceForIdleDetection ルーチンによって返されたポインター値です。 PoRegisterDeviceForIdleDetection は NULL ポインターを返す可能性があるため、呼び出し元は PoStartDeviceBusy を呼び出す前に、ポインターが NULL 以外であることを確認する必要があります。

戻り値

なし

解説

PoStartDeviceBusy ルーチンと PoEndDeviceBusy ルーチンは、デバイスがビジー状態の期間の開始と終了をマークします。 PoStartDeviceBusy の各呼び出しの後に、対応する PoEndDeviceBusy の呼び出しが続く必要があります。

各デバイスについて、 電源マネージャー は、対応する PoEndDeviceBusy 呼び出しをまだ受信していない未処理の PoStartDeviceBusy 呼び出しの数を保持します。 PoStartDeviceBusy 呼び出しでは、ビジー数が 1 ずつ増加します。 PoEndDeviceBusy 呼び出しは、ビジー数を 1 ずつデクリメントします。 0 以外のビジー数を指定すると、デバイスのアイドル カウンターが無効になります。 ビジー数が 0 に達すると、電源マネージャーはアイドル 状態のカウンターをタイムアウト期間にリセットし、カウンターを有効にします。

PoStartDeviceBusy ルーチンと PoEndDeviceBusy ルーチンを使用してアイドル 状態のカウンターをリセットするのではなく、PoSetDeviceBusyEx ルーチン (または PoSetDeviceBusy マクロ) を呼び出すことができます。 長時間ビジー期間中にアイドル カウンターを無効にするには、ドライバーは PoRegisterDeviceForIdleDetection ルーチンを呼び出して、ビジー期間の開始時と終了時にアイドル状態の通知を無効にして有効にすることができます。 ただし、 通常、PoStartDeviceBusyPoEndDeviceBusy は、この目的で使用する方が便利です。これらのルーチンは、Windows 7 以降のバージョンの Windows 用に記述する新しいコードで使用することを検討する必要があります。

要件

要件
サポートされている最小のクライアント Windows 7。
対象プラットフォーム ユニバーサル
Header ntifs.h (Wdm.h、Ntddk.h、Ntifs.h を含みます)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy