Server Service: IRP Stack Size

Microsoft.Windows.FileServices.Service.SMB.6.3.StackSizeConfig (UnitMonitor)

This object monitors the IRP stack size and generates an alert if the stack size is too small.

Knowledge Base article:

Summary

This object monitors the IRP stack size and generates an alert if the stack size is too small.

The monitor checks whether the IRPStackSize parameter is large enough to allow the server to access local devices. The IRPStackSize parameter specifies how many stack locations the service establishes for I/O Request Packets (IRPs).

Causes

This monitor can enter a Critical health state if the IRPStackSize parameter is too small for the Server service to properly administer shared directories on some of the physical drives.

If the health state is unknown, it means that monitoring has not yet begun for this object.

Resolutions

To perform this procedure, you must be an Administrator on the local computer, or you must have been delegated the appropriate authority.

Update the default IRP stack size

To resolve this issue on the affected server, try updating the default IRP stack size as follows:

1. Click Start, click Run, type regedit, and then click OK.

2. Locate and then click to select the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

3. If the IRPStackSize parameter exists, go to step 4. If it does not, do the following:

● On the Edit menu, point to New, and then click DWORD Value.

● Type IRPStackSize, and then press ENTER.

4. Right-click IRPStackSize and then click Modify.

5. Under Base, select Decimal. In the Value data box, type the desired value (between 25 and 50), and then click OK.

6. At an elevated command prompt, type net stop server and then press ENTER. If you are prompted to confirm the operation, type y.

7. Type net start server and then press ENTER.

Note You may have to restart additional dependent services that were stopped together with the Server service.

Verification

To verify the Server service is running, in the Operations Console, use the following procedure:

Click the Query Server Service Status task.

After resolving this issue, reset the monitor in the Operations console to a Healthy state.

Additional

Server Event 2011 (http://go.microsoft.com/fwlink/?LinkId=183116)

Element properties:

TargetMicrosoft.Windows.FileServices.Service.SMB.6.3
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.RepeatedEventLogTimer2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Server Service: Default IRP Stack Size Is Too Small
The server's default configuration parameter "irpstacksize" is too small for the server to use a local device.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.FileServices.Service.SMB.6.3.StackSizeConfig" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.FileServices.Service.SMB.6.3" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.RepeatedEventLogTimer2StateMonitorType" ConfirmDelivery="true">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.FileServices.Service.SMB.6.3.StackSizeConfig.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="RepeatedEventRaised" MonitorTypeStateID="RepeatedEventRaised" HealthState="Error"/>
<OperationalState ID="TimerEventRaised" MonitorTypeStateID="TimerEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<RepeatedComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</RepeatedComputerName>
<RepeatedLogName>System</RepeatedLogName>
<RepeatedExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2011</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">srv</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</RepeatedExpression>
<Consolidator>
<ConsolidationProperties/>
<TimeControl>
<WithinTimeSchedule>
<Interval>60</Interval>
</WithinTimeSchedule>
</TimeControl>
<CountingCondition>
<Count>2</Count>
<CountMode>OnNewItemTestOutputRestart_OnTimerSlideByOne</CountMode>
</CountingCondition>
</Consolidator>
<TimerWaitInSeconds>180</TimerWaitInSeconds>
</Configuration>
</UnitMonitor>