Miscellaneous PREEMPTIVE_OS Wait Types in SQL Server

The remaining one-API preemptive waits do not warrant a page each, so this reference covers them together. All share the standard mechanics: the thread runs under Windows control (state RUNNING) until the call returns, and the wait measures that external time.

  • PREEMPTIVE_OS_DEVICEIOCONTROL and DEVICEOPS: device control calls, seen around storage and volume operations.
  • PREEMPTIVE_OS_RSFXDEVICEOPS: FILESTREAM filter driver (RsFx) device operations; FILESTREAM workloads generate these.
  • PREEMPTIVE_OS_VSSOPS: Volume Shadow Copy Service interactions, active around VSS snapshot backups.
  • PREEMPTIVE_OS_PROCESSOPS: process-related calls (creating or querying processes).
  • PREEMPTIVE_OS_SERVICEOPS: Windows service control operations.
  • PREEMPTIVE_OS_COMOPS and GENERICOPS: catch-all buckets for COM and uncategorised Windows calls.
  • PREEMPTIVE_OS_FORMATMESSAGE: formatting Windows error messages, fires when errors are being reported.
  • PREEMPTIVE_OS_WSASETLASTERROR: setting socket error state, a trivial bookkeeping call.
  • PREEMPTIVE_OS_SQMLAUNCH: telemetry (SQM) related launches.
  • PREEMPTIVE_OS_PDH_WMI_INIT: performance data helper / WMI initialisation, seen at startup.
  • PREEMPTIVE_FSRECOVER_UNCONDITIONALUNDO: rolling back a FILESTREAM operation on the file system during recovery paths.

Are They a Problem?

None has been a noticeable contention point. They exist so external call time is attributed somewhere, and their totals stay in the noise on healthy systems. When one grows unusually, the diagnosis is always the same shape: identify the feature exercising the API (FILESTREAM for RsFx, VSS backups for VSSOPS, error storms for FORMATMESSAGE) and assess that feature’s health rather than the wait.

What To Do

  1. Filter them in routine analysis.
  2. Treat unusual growth in any member as a pointer to its owning feature, and investigate there.

How To See It

Rank waits with Get-WaitStatistics; this page is the lookup destination when one of these names appears.


Part of the SQL Server Wait Types Library.
Related deep dive: SOS_SCHEDULER_YIELD Wait Type.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *