SMAPI(SmInvalid)
{
DPRINT("SM: %s called\n",__FUNCTION__);
- Request->Status = STATUS_NOT_IMPLEMENTED;
+ Request->SmHeader.Status = STATUS_NOT_IMPLEMENTED;
return STATUS_SUCCESS;
}
PSM_CONNECT_DATA ConnectData = SmpGetConnectData (Request);
UNICODE_STRING CallbackPortName;
ULONG CallbackPortNameLength = SM_SB_NAME_MAX_LENGTH; /* TODO: compute length */
+ SB_CONNECT_DATA SbConnectData;
+ ULONG SbConnectDataLength = sizeof SbConnectData;
DPRINT("SM: %s called\n", __FUNCTION__);
- if(IMAGE_SUBSYSTEM_NATIVE == ConnectData->Subsystem)
+ if(IMAGE_SUBSYSTEM_NATIVE == ConnectData->SubSystemId)
{
DPRINT("SM: %s: we do not need calling back SM!\n",
__FUNCTION__);
CallbackPortNameLength);
RtlInitUnicodeString (& CallbackPortName,
ClientData->SbApiPortName);
+
+ SbConnectData.SmApiMax = (sizeof SmApi / sizeof SmApi[0]);
Status = NtConnectPort (& ClientData->SbApiPort,
& CallbackPortName,
NULL,
NULL,
NULL,
NULL,
- NULL,
- NULL);
+ & SbConnectData,
+ & SbConnectDataLength);
return Status;
}
Reply = NULL;
break;
default:
- if ((Request.ApiIndex) &&
- (Request.ApiIndex < (sizeof SmApi / sizeof SmApi[0])))
+ if ((Request.SmHeader.ApiIndex) &&
+ (Request.SmHeader.ApiIndex < (sizeof SmApi / sizeof SmApi[0])))
{
- Status = SmApi[Request.ApiIndex](&Request);
+ Status = SmApi[Request.SmHeader.ApiIndex](&Request);
Reply = (PLPC_MESSAGE) & Request;
} else {
- Request.Status = STATUS_NOT_IMPLEMENTED;
+ Request.SmHeader.Status = STATUS_NOT_IMPLEMENTED;
Reply = (PLPC_MESSAGE) & Request;
}
}
PVOID Context = NULL;
DPRINT("SM: %s called:\n SubSystemID=%d\n SbName=\"%S\"\n",
- __FUNCTION__, ConnectData->Subsystem, ConnectData->SbName);
+ __FUNCTION__, ConnectData->SubSystemId, ConnectData->SbName);
if(sizeof (SM_CONNECT_DATA) == Request->Header.DataSize)
{
- if(IMAGE_SUBSYSTEM_UNKNOWN == ConnectData->Subsystem)
+ if(IMAGE_SUBSYSTEM_UNKNOWN == ConnectData->SubSystemId)
{
/*
* This is not a call to register an image set,
* Reject GUIs classes: only odd subsystem IDs are
* allowed to register here (tty mode images).
*/
- if(1 == (ConnectData->Subsystem % 2))
+ if(1 == (ConnectData->SubSystemId % 2))
{
- DPRINT("SM: %s: id = %d\n", __FUNCTION__, ConnectData->Subsystem);
+ DPRINT("SM: %s: id = %d\n", __FUNCTION__, ConnectData->SubSystemId);
/*
* SmCreateClient/2 is called here explicitly to *fail*.
* If it succeeds, there is something wrong in the
} else {
DPRINT("SM: %s: SmpCallbackServer failed (Status=%08lx)\n",
__FUNCTION__, Status);
- Status = SmDestroyClient (ConnectData->Subsystem);
+ Status = SmDestroyClient (ConnectData->SubSystemId);
}
}
}