00032 :
00033
00034 The function locates
the address of
the exception dispatch and user APC
00035 delivery routine in
the system DLL and stores
the respective addresses
00036 in
the PCR.
00037
00038 Arguments:
00039
00040 None.
00041
00042 Return Value:
00043
00044
NTSTATUS
00045
00046 --*/
00047
00048 {
00049
00050
NTSTATUS Status;
00051 PSZ EntryName;
00052
00053
00054
00055
00056
00057 EntryName =
"KiUserExceptionDispatcher";
00058
Status =
PspLookupSystemDllEntryPoint(EntryName,
00059 (PVOID *)&KeUserExceptionDispatcher);
00060
if (
NT_SUCCESS(Status) ==
FALSE) {
00061 KdPrint((
"Ps: Cannot find user exception dispatcher address\n"));
00062
return Status;
00063 }
00064
00065
00066
00067
00068
00069 EntryName =
"KiUserApcDispatcher";
00070
Status =
PspLookupSystemDllEntryPoint(EntryName,
00071 (PVOID *)&KeUserApcDispatcher);
00072
if (
NT_SUCCESS(Status) ==
FALSE) {
00073 KdPrint((
"Ps: Cannot find user apc dispatcher address\n"));
00074
return Status;
00075 }
00076
00077
00078
00079
00080
00081 EntryName =
"KiUserCallbackDispatcher";
00082
Status =
PspLookupSystemDllEntryPoint(EntryName,
00083 (PVOID *)&KeUserCallbackDispatcher);
00084
if (
NT_SUCCESS(Status) ==
FALSE) {
00085 KdPrint((
"Ps: Cannot find user callback dispatcher address\n"));
00086
return Status;
00087 }
00088
00089
00090
00091
00092
00093 EntryName =
"KiRaiseUserExceptionDispatcher";
00094
Status =
PspLookupSystemDllEntryPoint(EntryName,
00095 (PVOID *)&KeRaiseUserExceptionDispatcher);
00096
if (
NT_SUCCESS(Status) ==
FALSE) {
00097 KdPrint((
"Ps: Cannot find raise user exception dispatcher address\n"));
00098
return Status;
00099 }
00100
00101
return Status;
00102 }
}