This seems to work. Perhaps cache in the future?

This commit is contained in:
gibbed 2014-01-20 07:40:57 -08:00
parent 8e5da8d853
commit 5a5a93d62d
1 changed files with 14 additions and 4 deletions

View File

@ -422,8 +422,18 @@ SHIM_CALL NtQueryInformationFile_shim(
case XFileXctdCompressionInformation: case XFileXctdCompressionInformation:
// Read timeout. // Read timeout.
if (length == 4) { if (length == 4) {
info = 4; uint32_t magic;
SHIM_SET_MEM_32(file_info_ptr, 0); // TODO(gibbed): determine how we figure this out size_t bytes_read;
result = file->Read(&magic, sizeof(magic), 0, &bytes_read);
if (XSUCCEEDED(result)) {
if (bytes_read == sizeof(magic)) {
info = 4;
SHIM_SET_MEM_32(file_info_ptr, magic == XESWAP32BE(0x0FF512ED));
}
else {
result = X_STATUS_UNSUCCESSFUL;
}
}
} else { } else {
result = X_STATUS_INFO_LENGTH_MISMATCH; result = X_STATUS_INFO_LENGTH_MISMATCH;
} }
@ -532,12 +542,12 @@ SHIM_CALL NtQueryDirectoryFile_shim(
file_info_ptr, file_info_ptr,
length, length,
file_name_ptr, file_name_ptr,
!file_name ? "(null)" : file_name, !file_name ? "(null)" : file_name,
restart_scan); restart_scan);
if (length < 72) { if (length < 72) {
SHIM_SET_RETURN_32(X_STATUS_INFO_LENGTH_MISMATCH); SHIM_SET_RETURN_32(X_STATUS_INFO_LENGTH_MISMATCH);
xe_free(file_name); xe_free(file_name);
return; return;
} }