Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

123 lines
3.5 KiB

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
ixdat.c
Abstract:
Declares various data which is initialize data, or pagable data.
Author:
Environment:
Kernel mode only.
Revision History:
--*/
#include "pciport.h"
//
// PcipWorkdListLock - Lock to protect DeviceControl globals
// PcipControlWorkerList - List of slot control's which are pending for worker thread
// PcipControlDpcList - List of slot control's which are waiting, but are non-paged
// PcipWorkItem - Enqueue for DeviceControl worker thread
// PcipWorkDpc - Enqueue for DeviceControl DPC
//
FAST_MUTEX PcipMutex;
KSPIN_LOCK PcipSpinlock;
LIST_ENTRY PcipControlWorkerList;
LIST_ENTRY PcipControlDpcList;
LIST_ENTRY PcipCheckBusList;
ULONG PcipWorkerQueued;
WORK_QUEUE_ITEM PcipWorkItem;
KDPC PcipWorkDpc;
ULONG PcipDeviceHandlerObjectSize;
//
// DeviceControl dispatch table
//
#define B_EJECT BCTL_EJECT
#define B_ID BCTL_QUERY_DEVICE_ID
#define B_UID BCTL_QUERY_DEVICE_UNIQUE_ID
#define B_CAPABILITIES BCTL_QUERY_DEVICE_CAPABILITIES
#define B_RES BCTL_QUERY_DEVICE_RESOURCES
#define B_RES_REQ BCTL_QUERY_DEVICE_RESOURCE_REQUIREMENTS
#define B_QUERY_EJECT BCTL_QUERY_EJECT
#define B_SET_LOCK BCTL_SET_LOCK
#define B_SET_POWER BCTL_SET_POWER
#define B_SET_RESUME BCTL_SET_RESUME
#define B_SET_RES BCTL_SET_DEVICE_RESOURCES
#define B_ASSIGN_RES BCTL_ASSIGN_SLOT_RESOURCES
#define SIZE_BRES sizeof(CTL_ASSIGN_RESOURCES)
#define SIZE_CAP sizeof(BCTL_DEVICE_CAPABILITIES)
#define SIZE_CALL sizeof(PCALLBACK_OBJECT)
DEVICE_CONTROL_HANDLER PcipControl[] = {
B_EJECT, 0, PciBCtlEject, PciCtlEject,
B_ID, 128, PciBCtlSync, PciCtlQueryDeviceId,
B_UID, 128, PciBCtlSync, PciCtlQueryDeviceUniqueId,
B_CAPABILITIES, SIZE_CAP, PciBCtlSync, PciCtlForward, // bugbug
B_RES, sizeof(ULONG), PciBCtlSync, PciCtlQueryDeviceResources,
B_RES_REQ, sizeof(ULONG), PciBCtlSync, PciCtlQueryDeviceResourceRequirements,
B_QUERY_EJECT, SIZE_CALL, PciBCtlSync, PciCtlForward,
B_SET_LOCK, sizeof(BOOLEAN), PciBCtlLock, PciCtlLock,
B_SET_RESUME, sizeof(BOOLEAN), PciBCtlSync, PciCtlForward,
B_SET_POWER, sizeof(POWER_STATE), PciBCtlPower, PciCtlPower,
B_SET_RES, 0, PciBCtlSync, PciCtlSetDeviceResources,
B_ASSIGN_RES, SIZE_BRES, PciBCtlSync, PciCtlAssignSlotResources,
0, 0, NULL, NULL
};
#ifdef ALLOC_DATA_PRAGMA
#pragma data_seg("PAGE")
#endif
//
// PciDriverObject - the driver object for pciport.sys
//
PDRIVER_OBJECT PciDriverObject;
//
// PciCodeLock - Handle for locked code (only used during system
// Suspend/Hibernate/Resume procedure)
//
PVOID PciCodeLock;
//
// PciSuspendRegistration - A registration to the systems
// Suspend/Hibernate/Resume callback
//
HAL_CALLBACKS PciHalCallbacks;
//
// PciSuspendRegistration - A registration to the systems
// Suspend/Hibernate/Resume callback
//
PVOID PciSuspendRegistration;
//
// Some global strings
//
WCHAR rgzPCIDeviceName[] = L"\\Device\\PciBus_%d";
WCHAR rgzSuspendCallbackName[] = L"\\Callback\\SuspendHibernateSystem";
WCHAR PCI_ID[] = L"PCI\\%04x_%04x";
WCHAR PNP_VGA[] = L"PCI\\*PNP_VGA";
WCHAR PNP_IDE[] = L"PCI\\*PNP_IDE";