PpDeviceRegistration
NTSTATUS __stdcall PpDeviceRegistration(
_UNICODE_STRING *DeviceInstancePath,
UINT8 Add,
_UNICODE_STRING *ServiceKeyName,
UINT8 LockHeld){
_ETHREAD *CurrentThread;
NTSTATUS v9;
if( !LockHeld )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceExclusiveLite((UINT64)&PnpReplaceEvent + 6688, 1, (INT64)ServiceKeyName);
}
v9 = PiDeviceRegistration(DeviceInstancePath, Add, ServiceKeyName);
if( !LockHeld )
{
ExReleaseResourceLite((PERESOURCE)((char *)&PnpReplaceEvent + 6688));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}
return v9;
}Referenced by:
IoReportDetectedDevice
IopInitializeDeviceInstanceKey
PiCMCreateDevice
PiCMDeleteDevice
PiProcessNewDeviceNode
PnpCleanupDeviceRegistryValues
PpDevCfgProcessDevices