PnpGetObjectPropertyLocalesWorker

NTSTATUS __stdcall PnpGetObjectPropertyLocalesWorker(
        HPNPCTX *hPnpCtx,
        WCHAR *ObjectName,
        PNP_OBJECT_TYPE ObjectType,
        VOID *ObjectBaseKey,
        _DEVPROPKEY *PropertyKey,
        WCHAR *Buffer,
        UINT64 BufferLength,
        UINT64 *RequiredLength,
        UINT64 Flags){
  CHAR *v9; 
  NTSTATUS MappedPropertyLocalesDispatch; 
  WCHAR *v14; 
  int v15; 
  INT64 v17; 
  INT64 v18; 
  INT64 v19; 
  VOID *Handle; 

  Handle = 0i64;
  v9 = (CHAR *)ObjectBaseKey;
  if( (_WORD)Flags )
    return -1073741811;
  v14 = Buffer;
  if( Buffer )
  {
    v15 = BufferLength;
    v14 = (WCHAR *)(-(__int64)((_DWORD)BufferLength != 0) & (unsigned __int64)Buffer);
  }
  else
  {
    v15 = 0;
  }
  LODWORD(v19) = Flags;
  *(_DWORD *)RequiredLength = 0;
  LODWORD(v18) = v15;
  MappedPropertyLocalesDispatch = PnpGetMappedPropertyLocalesDispatch(
                                    hPnpCtx,
                                    ObjectName,
                                    ObjectType,
                                    ObjectBaseKey,
                                    PropertyKey,
                                    v14,
                                    v18,
                                    RequiredLength,
                                    v19);
  if( MappedPropertyLocalesDispatch == -1073741802 )
  {
    if( !v9 )
    {
      MappedPropertyLocalesDispatch = PnpOpenObjectRegKey(
                                        (__int64)hPnpCtx,
                                        (__int64)ObjectName,
                                        ObjectType,
                                        33554433,
                                        0,
                                        (__int64)&Handle);
      if( MappedPropertyLocalesDispatch < 0 )
        goto LABEL_11;
      v9 = (CHAR *)Handle;
    }
    LODWORD(v17) = v15;
    MappedPropertyLocalesDispatch = PnpGetGenericStorePropertyLocales(
                                      (INT64)hPnpCtx,
                                      v9,
                                      (INT64)PropertyKey,
                                      v14,
                                      v17,
                                      RequiredLength);
  }
LABEL_11:
  if( Handle )
    ZwClose((_HANDLE)Handle);
  return MappedPropertyLocalesDispatch;
}

Referenced by:

PnpGetObjectPropertyLocales