Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998-1999 Microsoft Corporation
Module Name:
control.h
Abstract:
This is a local header file for control.c
Author:
Paul McDaniel (paulmcd) 23-Jan-2000 Revision History:
--*/
#ifndef _CONTROL_H_
#define _CONTROL_H_
#define SR_CONTROL_OBJECT_CONTEXT ULongToPtr(SR_CONTROL_OBJECT_TAG)
#define IS_VALID_CONTROL_OBJECT(pObject) \
(((pObject) != NULL) && ((pObject)->RefCount > 0) && ((pObject)->Signature == SR_CONTROL_OBJECT_TAG))
//
// locked by global->ControlResource
//
typedef struct _SR_CONTROL_OBJECT { //
// NonPagedPool
//
//
// SR_CONTROL_OBJECT_TAG
//
ULONG Signature;
//
// a zero-based reference count
//
LONG RefCount;
//
// the Options passed into SrCreateMonitor
//
ULONG Options;
//
// Irps that have not been completed yet are placed on IrpListHead
//
LIST_ENTRY IrpListHead;
//
// Notify Records that have not been completed to irps are placed on
// NotifyRecordListHead
//
LIST_ENTRY NotifyRecordListHead;
//
// The process that created this control object
//
PEPROCESS pProcess;
} SR_CONTROL_OBJECT, *PSR_CONTROL_OBJECT;
NTSTATUS SrCreateControlObject ( OUT PSR_CONTROL_OBJECT * ppControlObject, IN ULONG Options );
NTSTATUS SrDeleteControlObject ( IN PSR_CONTROL_OBJECT pControlObject );
NTSTATUS SrCancelControlIo ( IN PSR_CONTROL_OBJECT pControlObject );
VOID SrReferenceControlObject ( IN PSR_CONTROL_OBJECT pControlObject );
VOID SrDereferenceControlObject ( IN PSR_CONTROL_OBJECT pControlObject );
#endif // _CONTROL_H_
|