windows-nt/Source/XPSP1/NT/base/pnp/hotplug/devicecol.h
2020-09-26 16:20:57 +08:00

146 lines
3.2 KiB
C

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 2001
//
// File: devicecol.h
//
// Description: This header exposes support for device collections.
//
//--------------------------------------------------------------------------
typedef enum {
CT_SAFE_REMOVAL_NOTIFICATION,
CT_VETOED_REMOVAL_NOTIFICATION,
CT_SURPRISE_REMOVAL_WARNING,
CT_BLOCKED_DRIVER_NOTIFICATION
} COLLECTION_TYPE, *PCOLLECTION_TYPE;
typedef struct {
LIST_ENTRY Link;
TCHAR DeviceInstanceId[MAX_DEVICE_ID_LEN+1];
PTSTR DeviceFriendlyName;
ULONG Capabilities;
GUID ClassGuid;
} DEVICE_COLLECTION_ENTRY, *PDEVICE_COLLECTION_ENTRY;
typedef struct {
HMACHINE hMachine;
LIST_ENTRY DeviceListHead;
INT NumDevices;
BOOL DockInList;
SP_CLASSIMAGELIST_DATA ClassImageList;
} DEVICE_COLLECTION, *PDEVICE_COLLECTION;
typedef enum {
VETOED_EJECT = 1,
VETOED_REMOVAL,
VETOED_UNDOCK,
VETOED_STANDBY,
VETOED_HIBERNATE,
VETOED_WARM_EJECT,
VETOED_WARM_UNDOCK
} VETOED_OPERATION;
typedef struct {
DEVICE_COLLECTION dc;
PNP_VETO_TYPE VetoType;
VETOED_OPERATION VetoedOperation;
} VETO_DEVICE_COLLECTION, *PVETO_DEVICE_COLLECTION;
typedef struct {
DEVICE_COLLECTION dc;
BOOL SuppressSurprise;
ULONG DialogTicker;
ULONG MaxWaitForDock;
} SURPRISE_WARN_COLLECTION, *PSURPRISE_WARN_COLLECTION;
BOOL
DeviceCollectionBuildFromPipe(
IN HANDLE ReadPipe,
IN COLLECTION_TYPE CollectionType,
OUT PDEVICE_COLLECTION DeviceCollection
);
VOID
DeviceCollectionDestroy(
IN PDEVICE_COLLECTION DeviceCollection
);
VOID
DeviceCollectionSuppressSurprise(
IN PDEVICE_COLLECTION DeviceCollection
);
VOID
DeviceCollectionPopulateListView(
IN PDEVICE_COLLECTION DeviceCollection,
IN HWND ListHandle
);
BOOL
DeviceCollectionGetDockDeviceIndex(
IN PDEVICE_COLLECTION DeviceCollection,
OUT ULONG *DockDeviceIndex
);
BOOL
DeviceCollectionFormatDeviceText(
IN PDEVICE_COLLECTION DeviceCollection,
IN ULONG Index,
IN PTSTR FormatString,
IN ULONG BufferCharSize,
OUT PTSTR BufferText
);
BOOL
DeviceCollectionFormatServiceText(
IN PDEVICE_COLLECTION DeviceCollection,
IN ULONG Index,
IN PTSTR FormatString,
IN ULONG BufferCharSize,
OUT PTSTR BufferText
);
PTSTR
DeviceCollectionGetDeviceInstancePath(
IN PDEVICE_COLLECTION DeviceCollection,
IN ULONG Index
);
BOOL
DeviceCollectionGetGuid(
IN PDEVICE_COLLECTION DeviceCollection,
IN OUT LPGUID Guid,
IN ULONG Index
);
#if BUBBLES
BOOL
DeviceCollectionCheckIfAllPresent(
IN PDEVICE_COLLECTION DeviceCollection
);
#endif // BUBBLES
BOOL
DeviceCollectionCheckIfAllRemoved(
IN PDEVICE_COLLECTION DeviceCollection
);