120 lines
2.8 KiB
C++
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
|
||
|
//
|
||
|
//--------------------------------------------------------------------
|