IN PCWCH CommandLine,
IN PCWCH CurrentDirectory,
IN PANSI_STRING AnsiEnvironment,
- IN PCSR_API_MESSAGE Msg,
+ IN PCSR_API_MESSAGE ApiMessage,
IN OUT PULONG iTask,
IN DWORD CreationFlags,
IN LPSTARTUPINFOW StartupInfo)
IN ULONG IndexInfo,
IN ULONG BinaryType)
{
+#if 0 // Unimplemented in BASESRV
NTSTATUS Status;
- CSR_API_MESSAGE Msg;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_UPDATE_VDM_ENTRY UpdateVdmEntry = &ApiMessage.Data.UpdateVdmEntry;
/* Check what update is being sent */
switch (UpdateIndex)
case VdmEntryUndo:
/* Tell the server how far we had gotten along */
- Msg.Data.UpdateVdmEntry.iTask = (ULONG)*WaitHandle;
- Msg.Data.UpdateVdmEntry.VDMCreationState = IndexInfo;
+ UpdateVdmEntry->iTask = (ULONG)*WaitHandle;
+ UpdateVdmEntry->VDMCreationState = IndexInfo;
break;
/* VDM is ready with a new process handle */
case VdmEntryUpdateProcess:
/* Send it the process handle */
- Msg.Data.UpdateVdmEntry.VDMProcessHandle = *WaitHandle;
- Msg.Data.UpdateVdmEntry.iTask = IndexInfo;
+ UpdateVdmEntry->VDMProcessHandle = *WaitHandle;
+ UpdateVdmEntry->iTask = IndexInfo;
break;
}
if (BinaryType == BINARY_TYPE_WOW)
{
/* Magic value for 16-bit apps */
- Msg.Data.UpdateVdmEntry.ConsoleHandle = (HANDLE)-1;
+ UpdateVdmEntry->ConsoleHandle = (HANDLE)-1;
}
- else if (Msg.Data.UpdateVdmEntry.iTask)
+ else if (UpdateVdmEntry->iTask)
{
/* No handle for true VDM */
- Msg.Data.UpdateVdmEntry.ConsoleHandle = 0;
+ UpdateVdmEntry->ConsoleHandle = 0;
}
else
{
/* Otherwise, send the regular consoel handle */
- Msg.Data.UpdateVdmEntry.ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle;
+ UpdateVdmEntry->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle;
}
/* Finally write the index and binary type */
- Msg.Data.UpdateVdmEntry.EntryIndex = UpdateIndex;
- Msg.Data.UpdateVdmEntry.BinaryType = BinaryType;
+ UpdateVdmEntry->EntryIndex = UpdateIndex;
+ UpdateVdmEntry->BinaryType = BinaryType;
/* Send the message to CSRSS */
- Status = CsrClientCallServer(&Msg,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX, BasepUpdateVDMEntry),
- sizeof(Msg));
- if (!(NT_SUCCESS(Status)) || !(NT_SUCCESS(Msg.Status)))
+ sizeof(BASE_UPDATE_VDM_ENTRY));
+ if (!(NT_SUCCESS(Status)) || !(NT_SUCCESS(ApiMessage.Status)))
{
/* Handle failure */
- BaseSetLastNTError(Msg.Status);
+ BaseSetLastNTError(ApiMessage.Status);
return FALSE;
}
if (UpdateIndex == VdmEntryUpdateProcess)
{
/* Return it to the caller */
- *WaitHandle = Msg.Data.UpdateVdmEntry.WaitObjectForParent;
+ *WaitHandle = UpdateVdmEntry->WaitObjectForParent;
}
-
+#endif
/* We made it */
return TRUE;
}
BaseCheckForVDM(IN HANDLE ProcessHandle,
OUT LPDWORD ExitCode)
{
+#if 0 // Unimplemented in BASESRV
NTSTATUS Status;
EVENT_BASIC_INFORMATION EventBasicInfo;
- CSR_API_MESSAGE Msg;
+ BASE_API_MESSAGE ApiMessage;
+ PBASE_GET_VDM_EXIT_CODE GetVdmExitCode = &ApiMessage.Data.GetVdmExitCode;
/* It's VDM if the process is actually a wait handle (an event) */
Status = NtQueryEvent(ProcessHandle,
if (!NT_SUCCESS(Status)) return FALSE;
/* Setup the input parameters */
- Msg.Data.GetVdmExitCode.ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle;
- Msg.Data.GetVdmExitCode.hParent = ProcessHandle;
+ GetVdmExitCode->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle;
+ GetVdmExitCode->hParent = ProcessHandle;
/* Call CSRSS */
- Status = CsrClientCallServer(&Msg,
+ Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
- CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX, BasepCheckVDM /* BasepGetVDMExitCode */),
- sizeof(Msg));
+ CSR_CREATE_API_NUMBER(BASESRV_SERVERDLL_INDEX, BasepGetVDMExitCode /* BasepCheckVDM */),
+ sizeof(BASE_GET_VDM_EXIT_CODE));
if (!NT_SUCCESS(Status)) return FALSE;
/* Get the exit code from the reply */
- *ExitCode = Msg.Data.GetVdmExitCode.ExitCode;
+ *ExitCode = GetVdmExitCode->ExitCode;
+#endif
return TRUE;
}