PoStartDeviceBusy 関数 (wdm.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 ルーチンを呼び出して、ビジー期間の開始時と終了時にアイドル状態の通知を無効にして有効にすることができます。 ただし、 通常、PoStartDeviceBusy と PoEndDeviceBusy は、この目的に使用する方が便利です。これらのルーチンは、Windows 7 以降のバージョンの Windows 用に記述する新しいコードで使用することを検討する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル |