"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "dlls/ntoskrnl.exe/tests/driver.c" between
wine-5.12.tar.xz and wine-5.13.tar.xz

About: Wine is an Open Source implementation of the MS Windows API on top of X, OpenGL, and Unix. Think of Wine as a compatibility layer for running Windows programs. Development release.

driver.c  (wine-5.12.tar.xz):driver.c  (wine-5.13.tar.xz)
skipping to change at line 2026 skipping to change at line 2026
{ {
KeStackAttachProcess((PKPROCESS)process, &state); KeStackAttachProcess((PKPROCESS)process, &state);
todo_wine ok(!strcmp(teststr, (char *)(base + test_input->teststr_offset )), todo_wine ok(!strcmp(teststr, (char *)(base + test_input->teststr_offset )),
"Strings do not match.\n"); "Strings do not match.\n");
*test_input->modified_value = modified_value; *test_input->modified_value = modified_value;
KeUnstackDetachProcess(&state); KeUnstackDetachProcess(&state);
} }
ObDereferenceObject(process); ObDereferenceObject(process);
} }
static void test_permanence(void)
{
OBJECT_ATTRIBUTES attr;
HANDLE handle, handle2;
UNICODE_STRING str;
NTSTATUS status;
RtlInitUnicodeString(&str, L"\\BaseNamedObjects\\wine_test_dir");
InitializeObjectAttributes(&attr, &str, 0, 0, NULL);
status = ZwCreateDirectoryObject( &handle, GENERIC_ALL, &attr );
ok(!status, "got %#x\n", status);
status = ZwClose( handle );
ok(!status, "got %#x\n", status);
status = ZwOpenDirectoryObject( &handle, 0, &attr );
ok(status == STATUS_OBJECT_NAME_NOT_FOUND, "got %#x\n", status);
attr.Attributes = OBJ_PERMANENT;
status = ZwCreateDirectoryObject( &handle, GENERIC_ALL, &attr );
ok(!status, "got %#x\n", status);
status = ZwClose( handle );
ok(!status, "got %#x\n", status);
attr.Attributes = 0;
status = ZwOpenDirectoryObject( &handle, 0, &attr );
ok(!status, "got %#x\n", status);
status = ZwMakeTemporaryObject( handle );
ok(!status, "got %#x\n", status);
status = ZwMakeTemporaryObject( handle );
ok(!status, "got %#x\n", status);
status = ZwClose( handle );
ok(!status, "got %#x\n", status);
status = ZwOpenDirectoryObject( &handle, 0, &attr );
ok(status == STATUS_OBJECT_NAME_NOT_FOUND, "got %#x\n", status);
status = ZwCreateDirectoryObject( &handle, GENERIC_ALL, &attr );
ok(!status, "got %#x\n", status);
attr.Attributes = OBJ_PERMANENT;
status = ZwOpenDirectoryObject( &handle2, 0, &attr );
ok(status == STATUS_SUCCESS, "got %#x\n", status);
status = ZwClose( handle2 );
ok(!status, "got %#x\n", status);
status = ZwClose( handle );
ok(!status, "got %#x\n", status);
attr.Attributes = 0;
status = ZwOpenDirectoryObject( &handle, 0, &attr );
ok(status == STATUS_OBJECT_NAME_NOT_FOUND, "got %#x\n", status);
}
static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st ack) static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st ack)
{ {
ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength; ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength;
void *buffer = irp->AssociatedIrp.SystemBuffer; void *buffer = irp->AssociatedIrp.SystemBuffer;
struct test_input *test_input = (struct test_input *)buffer; struct test_input *test_input = (struct test_input *)buffer;
OBJECT_ATTRIBUTES attr = {0}; OBJECT_ATTRIBUTES attr = {0};
UNICODE_STRING pathU; UNICODE_STRING pathU;
IO_STATUS_BLOCK io; IO_STATUS_BLOCK io;
if (!buffer) if (!buffer)
skipping to change at line 2082 skipping to change at line 2130
test_resource(); test_resource();
test_lookup_thread(); test_lookup_thread();
test_IoAttachDeviceToDeviceStack(); test_IoAttachDeviceToDeviceStack();
test_object_name(); test_object_name();
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
test_executable_pool(); test_executable_pool();
#endif #endif
test_affinity(); test_affinity();
test_dpc(); test_dpc();
test_process_memory(test_input); test_process_memory(test_input);
test_permanence();
if (main_test_work_item) return STATUS_UNEXPECTED_IO_ERROR; if (main_test_work_item) return STATUS_UNEXPECTED_IO_ERROR;
main_test_work_item = IoAllocateWorkItem(lower_device); main_test_work_item = IoAllocateWorkItem(lower_device);
ok(main_test_work_item != NULL, "main_test_work_item = NULL\n"); ok(main_test_work_item != NULL, "main_test_work_item = NULL\n");
IoMarkIrpPending(irp); IoMarkIrpPending(irp);
IoQueueWorkItem(main_test_work_item, main_test_task, DelayedWorkQueue, irp); IoQueueWorkItem(main_test_work_item, main_test_task, DelayedWorkQueue, irp);
return STATUS_PENDING; return STATUS_PENDING;
 End of changes. 2 change blocks. 
0 lines changed or deleted 49 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)