/*++

Copyright (c) 1989  Microsoft Corporation

Module Name:

    StrucHdr.h

Abstract:

    This module predefines the strucs for important data structures so that we can always talk about 'em....
    even tho they're not defined yet.

Author:

    Joe Linn     [joelinn]    8-19-94

Revision History:

--*/

#ifndef _RDBSSSTRUCHDR_
#define _RDBSSSTRUCHDR_

#define IMPORTANT_STRUCTURE(x) struct _##x; typedef struct _##x *P##x

IMPORTANT_STRUCTURE(NODE_TYPE_CODE_AND_SIZE);

IMPORTANT_STRUCTURE(RX_PREFIX_ENTRY);
IMPORTANT_STRUCTURE(RX_PREFIX_TABLE);

IMPORTANT_STRUCTURE(RX_FSD_DISPATCH_VECTOR);
IMPORTANT_STRUCTURE(RDBSS_DATA);
IMPORTANT_STRUCTURE(RDBSS_EXPORTS);
IMPORTANT_STRUCTURE(VCB);
IMPORTANT_STRUCTURE(RDBSS_DEVICE_OBJECT);
IMPORTANT_STRUCTURE(DSCB);

IMPORTANT_STRUCTURE(FILE_NAME_NODE);
IMPORTANT_STRUCTURE(REPINNED_BCBS);
IMPORTANT_STRUCTURE(RDBSS_IO_CONTEXT);
IMPORTANT_STRUCTURE(IO_RUNS);
IMPORTANT_STRUCTURE(DELETE_CONTEXT);
IMPORTANT_STRUCTURE(FLOPPY_FLUSH_CONTEXT);
IMPORTANT_STRUCTURE(CLOSE_CONTEXT);
IMPORTANT_STRUCTURE(CLEAN_AND_DIRTY_VOLUME_PACKET);


IMPORTANT_STRUCTURE(SRV_CALL);
IMPORTANT_STRUCTURE(NET_ROOT);
IMPORTANT_STRUCTURE(V_NET_ROOT);
IMPORTANT_STRUCTURE(NON_PAGED_FCB);
IMPORTANT_STRUCTURE(FCB);
IMPORTANT_STRUCTURE(SRV_OPEN);
IMPORTANT_STRUCTURE(FOBX);
IMPORTANT_STRUCTURE(RX_CONTEXT);
IMPORTANT_STRUCTURE(LOWIO_CONTEXT);

IMPORTANT_STRUCTURE(EA_RANGE);

IMPORTANT_STRUCTURE(MINIRDR_DISPATCH);
IMPORTANT_STRUCTURE(RDBSS_EXPORTS);
IMPORTANT_STRUCTURE(MRX_SRVCALL_CALLBACK_CONTEXT);
IMPORTANT_STRUCTURE(MRX_SRVCALLDOWN_STRUCTURE);
IMPORTANT_STRUCTURE(MRX_CREATENETROOT_CONTEXT);


#endif // _RDBSSSTRUCHDR_
