/*++

Copyright (c) 1998  Microsoft Corporation

Module Name:

    spuddata.h

Abstract:

    This module declares global data for SPUD.

Author:

    John Ballard (jballard)     21-Oct-1996

Revision History:

--*/


#ifndef _SPUDDATA_H_
#define _SPUDDATA_H_


extern SPUD_COUNTERS SpudCounters;
extern PSPUD_NONPAGED_DATA SpudNonpagedData;

extern PVOID SpudCompletionPort;
extern ULONG SpudCompletionPortRefCount;
extern KSPIN_LOCK SpudCompletionPortLock;

extern PEPROCESS SpudOwningProcess;
extern PDEVICE_OBJECT SpudSelfDeviceObject;
extern HANDLE SpudSelfHandle;

extern PDEVICE_OBJECT SpudAfdDeviceObject;
extern PFAST_IO_DEVICE_CONTROL SpudAfdFastIoDeviceControl;

#if DBG
extern BOOLEAN SpudUsePrivateAssert;
#endif

#if ENABLE_OB_TRACING
extern struct _TRACE_LOG *SpudTraceLog;
#endif


//
// The following three globals are defined in the assembly-language code
// generated by gensrv.exe. For example, the x86 version is built into
// daytona\i386\systable.asm.
//

extern ULONG_PTR SpudServiceTable[];
extern ULONG SpudServiceLimit;
extern UCHAR SpudArgumentTable[];


#endif  // _SPUDDATA_H_

