StorPortQueryDpcWatchdogInformation function (storport.h)
StorPortQueryDpcWatchdogInformation queries DPC watchdog timer values for the current processor.
Syntax
ULONG StorPortQueryDpcWatchdogInformation(
[in] PVOID HwDeviceExtension,
[out] PSTOR_DPC_WATCHDOG_INFORMATION DpcWatchdogInformation
);
Parameters
[in] HwDeviceExtension
A pointer to the miniport's device extension.
[out] DpcWatchdogInformation
Pointer to a STOR_DPC_WATCHDOG_INFORMATION structure in which the DPC watchdog information will be written.
Return value
This function returns one of the following status codes.
Return code | Description |
---|---|
STOR_STATUS_SUCCESS | The DPC watchdog information was successfully queried. |
STOR_STATUS_INVALID_PARAMETER | A parameter is invalid; for example, DpcWatchdogInformation is NULL. |
STOR_STATUS_UNSUCCESSFUL | Returned for other internal system reasons. |
Remarks
A miniport can call StorPortQueryDpcWatchdogInformation at IRQL=DISPATCH_LEVEL to determine the amount of time that remains before a deferred procedure call (DPC) time-out occurs. The operating system implements a DPC watchdog timer to detect when a single DPC routine runs for too long, or when a series of queued DPC routines runs back-to-back for too long. If DPC time-out errors are enabled, and if either a DPC routine exceeds the time limit for a single routine, or a series of DPC routines exceeds the aggregate time limit, a DPC_WATCHDOG_VIOLATION (0x133) bug check occurs.
StorPortQueryDpcWatchdogInformation must be called while a DPC is running or invoked at IRQL= DISPATCH_LEVEL or higher on the current processor. Otherwise, the call fails and returns STOR_STATUS_UNSUCCESSFUL.
DPC routines should run only for brief periods, and should delegate as much processing as possible to worker threads. To avoid degrading system responsiveness, a typical DPC routine should run for no more than 100 microseconds each time it is called. For general information, see Guidelines for Writing DPC Routines.
Requirements
Requirement | Value |
---|---|
Minimum supported server | Windows Server 2022 |
Header | storport.h |
IRQL | DISPATCH_LEVEL |