Leaked source code of windows server 2003
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.
 
 
 
 
 
 

88 lines
2.5 KiB

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
partmgrp.h
Abstract:
This file defines the public interfaces for the PARTMGR driver.
Author:
norbertk
Revision History:
--*/
//
// Define IOCTL so that volume managers can get another crack at
// partitions that are unclaimed.
//
#define IOCTL_PARTMGR_CHECK_UNCLAIMED_PARTITIONS CTL_CODE('p', 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
//
// This IOCTL is for clusters to tell the volume managers for the
// given disk to stop using it. You can undo this operation with
// IOCTL_PARTMGR_CHECK_UNCLAIMED_PARTITIONS.
//
#define IOCTL_PARTMGR_EJECT_VOLUME_MANAGERS CTL_CODE('p', 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
//
// This IOCTL usually just returns the MBR disk signature that is contained
// on the disk but may return a 'future' version of the disk signature during
// boot. This separate call is needed so that if the signature on the boot
// disk is not unique or 0, that it still stays as the old value long enough
// for the system to find it from the loader block.
//
#define IOCTL_PARTMGR_QUERY_DISK_SIGNATURE CTL_CODE('p', 2, METHOD_BUFFERED, FILE_READ_ACCESS)
//
// This IOCTL is to allow notification requests to be queued against PartMgr
// which will be completed later when PartMgr spots an 'interesting' change
// to a disk.
//
#define IOCTL_PARTMGR_NOTIFY_SIGNATURE_CHECK CTL_CODE('p', 3, METHOD_BUFFERED, FILE_READ_ACCESS)
//
// This structure is the return value for IOCTL_PARTMGR_QUERY_DISK_SIGNATURE.
//
typedef struct _PARTMGR_DISK_SIGNATURE {
ULONG Signature;
} PARTMGR_DISK_SIGNATURE, *PPARTMGR_DISK_SIGNATURE;
//
// This structure is used to request the list of disk numbers that have
// become active since the specificed epoch and is the input paramter for
// IOCTL_PARTMGR_NOTIFY_SIGNATURE_CHECK
//
typedef struct _PARTMGR_SIGNATURE_CHECK_EPOCH {
ULONG RequestEpoch;
} PARTMGR_SIGNATURE_CHECK_EPOCH, *PPARTMGR_SIGNATURE_CHECK_EPOCH;
#define PARTMGR_REQUEST_CURRENT_DISK_EPOCH (0xFFFFFFFF)
//
// This structure describes the output for IOCTL_PARTMGR_NOTIFY_SIGNATURE_CHECK
//
typedef struct _PARTMGR_SIGNATURE_CHECK_DISKS {
ULONG CurrentEpoch;
ULONG HighestDiskEpochReturned;
ULONG DiskNumbersReturned;
ULONG DiskNumber [1];
} PARTMGR_SIGNATURE_CHECK_DISKS, *PPARTMGR_SIGNATURE_CHECK_DISKS;