if( Platforms::iswin32() ) {
    my $inst;
    my( $filesys );

    $args{"_eval"} = "disk";
    do "_evaluator";
    $args{"object"} = "LogicalDisk";
    do "_perflib";
    @fs = split(",",$args{"fs"} );
    my $perflib = $memory{"perflib_$args{host}_$args{frequency}"};
    $perflib->check( "LogicalDisk" );
    @fs = ();
    my $instance;
    foreach $instance (@{$uxmon::monitor_variables{$args{"alias"}}->{"perflib.LogicalDisk.Instances"}}) {
	if( $uxmon::monitor_variables{$args{"alias"}}->{"perflib.LogicalDisk.$instance.InstanceName"} eq "_Total" ) {
	    $inst = $instance;
	}
    }

    my $red=$args{"red"}?$args{"red"}:20;
    my $yellow=$args{"yellow"}?$args{"yellow"}:10;
    $args{"_evaluator"}->add_check( "disk", sub {
	my( $vars ) = @_;
	my $text .= "%busy ";
	if( ! defined $vars->{"perflib.LogicalDisk.$inst.%_Disk_Time"} ){
	    return( 2, "$filesys (no data available)" );
	}
	my $load = int($vars->{"perflib.LogicalDisk.$inst.%_Disk_Time"}+0.5);
	if( $load >= $red ) {
	    return( 0, $text."(>>) $load" );
	}
	elsif( $load >= $yellow ) {
	    return( 1, $text."(>) $load" );
	}
	return( 3, $text."= $load" );
      } );
}
else {
    my $sar;

    unless( $sar = $memory{"sar_$args{frequency}"} ) {
	&uxmon::load_module( "sar" );
	&uxmon::checker(
	    $memory{"sar_$args{frequency}"} = $sar = Monitor::sar->new 
	    );
	$sar->sched_frequency( $args{"frequency"} );
    }

    $sar->add_check( "%busy", $uxmon::hostname.".disk", undef, undef, $args{"yellow"}?$args{"yellow"}:10, $args{"red"}?$args{"red"}:20 );
}
