windows-nt/Source/XPSP1/NT/com/svcdlls/trksvcs/trkwks/disttrk.hxx
2020-09-26 16:20:57 +08:00

120 lines
2.8 KiB
C++

// Copyright (c) 1996-1999 Microsoft Corporation
//+-------------------------------------------------------------------------
//
//
// File: disttrk.hxx
//
// Contents: Base link tracking types and types used for kernel to
// Tracking (Workstation) Service communication.
//
// Classes:
//
// Functions:
//
//
//
// History: 18-Nov-96 BillMo Created.
//
// Notes:
//
// Codework:
//
//--------------------------------------------------------------------------
//--------------------------------------------------------------------
//
// Beginning of declarations common between kernel and user modes
//
#define TRKWKS_PORT_NAME TEXT("\\Security\\TRKWKS_PORT")
#define TRKWKS_PORT_EVENT_NAME TEXT("\\Security\\TRKWKS_EVENT")
#define TRKWKS_LOCK_VOLUME_ENTERED TEXT("\\Security\\TRKWKS_LOCK_EVENT")
// Structure sent by the kernel on moves
typedef struct
{
LINK_TRACKING_INFORMATION SourceVolumeId; // src vol type & id
FILE_OBJECTID_BUFFER SourceObjectId; // src obj id & birth info
LINK_TRACKING_INFORMATION TargetVolumeId; // tgt vol type & id
GUID TargetObjectId; // tgt obj id
GUID MachineId;
} MOVE_MESSAGE, *PMOVE_MESSAGE;
//
// TRKWKS_REQUEST, TRKWKS_REPLY are used by NTOS to send notifications
// to our port.
//
enum TRKWKS_RQ_ENUM
{
TRKWKS_RQ_MOVE_NOTIFY = 0,
TRKWKS_RQ_EXIT_PORT_THREAD = 1,
TRKWKS_RQ_MAX = 2
};
// Structure sent by the kernel
typedef struct
{
NTSTATUS Status;
DWORD dwRequest;
union
{
MOVE_MESSAGE MoveMessage;
};
} TRKWKS_REQUEST;
typedef struct
{
PORT_MESSAGE PortMessage;
TRKWKS_REQUEST Request;
} TRKWKS_PORT_REQUEST;
// Response from trkwks service
typedef struct _LINK_TRACKING_RESPONSE {
NTSTATUS Status;
} LINK_TRACKING_RESPONSE, *PLINK_TRACKING_RESPONSE;
typedef struct
{
PORT_MESSAGE PortMessage;
LINK_TRACKING_RESPONSE Reply;
} TRKWKS_PORT_REPLY;
// Structure sent by trkwks service to itself during shutdown
typedef struct
{
DWORD dwRequest;
} TRKWKS_CONNECTION_INFO;
typedef struct
{
PORT_MESSAGE PortMessage;
TRKWKS_CONNECTION_INFO Info;
} TRKWKS_PORT_CONNECT_REQUEST;
//
// End of declarations common between kernel and user modes
//
//--------------------------------------------------------------------
//--------------------------------------------------------------------
//
// Beginning of declarations common between domain controller and workstations
//
//
#define TRK_RPC_PROTOCOL_DEBUG "ncacn_ip_tcp" /* Allows ws to be out of the DC's domain */
//
// End of declarations common between domain controller and workstations
//
//--------------------------------------------------------------------